rm(list=ls())
wrangle <- function(dirX){
require(jsonlite)
files <- list.files(path=paste0(dirX),
pattern="*json",
full.names=T,
recursive=TRUE)
j <- fromJSON(files[1])
#print("---------------------------------------------------------------------------------")
#print(paste0("Processing jsons to list:"))
L <- length(files)
for(i in 2:L){
#print(100*(i/L))
f <- fromJSON(files[i])
j <- c(j,f)
}
j
}
#define a function to recursively add actual run numbers and concatenate lists
recursive_add <- function(run_number){
run_number <- paste0("000",run_number)
dirX <- paste0("C:/Users/gerhard/Documents/msc-thesis-data/processed/",run_number)
dat_ <- wrangle(dirX)
for(i in 1:length(dat_)){
dat_[[i]]$RunNumber <- run_number
}
gc()
return(dat_)
}
#add first run to initialize dataset
dirX = "C:/Users/gerhard/Documents/msc-thesis-data/processed/000265309"
dat <- wrangle(dirX)
for(i in 1:length(dat)){
dat[[i]]$RunNumber <- "000265309"
}
runs1 <- c("265332","265334","265335")
runs2 <- c("265336","265338","265339")
runs3 <- c("265342","265343","265344")
runs4 <- c("265377","265378","265381")
runs5 <- c("265383","265385","265388")
runs6 <- c("265419","265420","265425")
runs7 <- c("265426","265499")
for(i in runs1){
print(paste0("RUN: ", i))
dat <- c(dat,recursive_add(i))
print(length(dat))
}
## [1] "RUN: 265332"
## [1] 16370
## [1] "RUN: 265334"
## [1] 33711
## [1] "RUN: 265335"
## [1] 63034
names(dat[[1]])
## [1] "Eta" "Event" "P" "PT"
## [5] "Phi" "RunNumber" "Theta" "V0TrackID"
## [9] "col0" "dEdX" "det0" "nSigmaElectron"
## [13] "nSigmaPion" "pdgCode" "row0" "track"
Eta <- sapply(dat, `[[`,"Eta")
P <- sapply(dat, `[[`,"P")
PT <- sapply(dat, `[[`,"PT")
Phi <- sapply(dat, `[[`,"Phi")
Theta <- sapply(dat, `[[`,"Theta")
dEdX <- sapply(dat, `[[`,"dEdX")
nSigmaElectron <- sapply(dat, `[[`,"nSigmaElectron")
nSigmaPion <- sapply(dat, `[[`,"nSigmaPion")
pdgCode <- sapply(dat, `[[`,"pdgCode")
RunNumber <- sapply(dat, `[[`,"RunNumber")
dat <- data.frame(cbind(Eta,P,PT,
Phi,Theta,dEdX,
nSigmaElectron,nSigmaPion,
pdgCode,RunNumber))
dat$particleID <- ifelse(abs(as.numeric(as.character(dat$pdgCode)))==211,"pion","electron")
dat$RunNumber <- as.factor(dat$RunNumber)
for(i in 1:8){
dat[,i] <- as.numeric(as.character(dat[,i]))
}
dat$particleID <- as.factor(dat$particleID)
require(ggplot2)
ggplot(dat,aes(x=factor(particleID),colour=factor(particleID),fill=factor(particleID)))+
geom_bar()+
ggtitle("Number of Electrons and Pions")+facet_wrap(~RunNumber)

#ggplot(dat,aes(x=P,y=PT,colour=factor(particleID),alpha=0.2))+geom_point()+facet_wrap(~RunNumber)
ggplot(dat,aes(x=P,y=dEdX,colour=factor(particleID),alpha=0))+geom_point()+facet_wrap(~RunNumber)

ggplot(dat,aes(x=PT,y=dEdX,colour=factor(particleID),alpha=0))+geom_point()+facet_wrap(~RunNumber)

#ggplot(dat,aes(x=Theta,y=Eta,colour=factor(particleID),alpha=0.2))+geom_point()+facet_wrap(~RunNumber)
# ggplot(dat[dat$nSigmaElectron!=-999,],aes(x=P[dat$nSigmaElectron!=-999],
# y=nSigmaElectron[dat$nSigmaElectron!=-999],
# colour=factor(particleID[dat$nSigmaElectron!=-999]),
# alpha=0.1))+geom_line()+facet_wrap(~RunNumber)
# ggplot(dat[dat$nSigmaPion!=-999,],aes(x=P[dat$nSigmaPion!=-999],
# y=nSigmaPion[dat$nSigmaPion!=-999],
# colour=factor(particleID[dat$nSigmaPion!=-999]),
# alpha=0.1))+geom_line()+facet_wrap(~RunNumber)
# ggplot(dat[dat$nSigmaElectron!=-999,],aes(x=dEdX[dat$nSigmaElectron!=-999],
# y=nSigmaElectron[dat$nSigmaElectron!=-999],
# colour=factor(particleID[dat$nSigmaElectron!=-999]),
# alpha=0.1))+geom_line()+facet_wrap(~RunNumber)
# ggplot(dat[dat$nSigmaPion!=-999,],aes(x=dEdX[dat$nSigmaPion!=-999],
# y=nSigmaPion[dat$nSigmaPion!=-999],
# colour=factor(particleID[dat$nSigmaPion!=-999]),
# alpha=0.1))+geom_line()+facet_wrap(~RunNumber)