## Analysis of Christensen et al. experiment using Graft's data-files
##
## Christensen, B.G., McCusker, K.T., Altepeter, J.B., Calkins, B.,
## Lim, C.C.W., Gisin, N., and Kwiat, P.G. (2013),
## "Detection-Loophole-Free Test of Quantum Nonlocality, and Applications",
## Phys. Rev. Lett. 111, 130406.
## Donald A. Graft (2014)
## "Analysis of the Christensen et al. Clauser-Horne
## (CH)-Inequality-Based Test of Local Realism",
## http://arxiv.org/abs/1409.5158
## https://pubpeer.com/publications/E0F8384FC19A6034E86D516D03BB38
## Step 1: save (small) significant part of data in binary "RData" files
## Christensen's optimal delays, less half of coincidence window
## The file "summary.csv", created in Step 0,
## contains the names of the data-files and their lengths
## Note: data1.txt was earlier renamed to data01.txt, ...
## ... data9.txt to data09.txt
summary <- read.csv("summary.csv", stringsAsFactors = FALSE)
Names <- summary$Name
lengths <- summary$length
windowDiamMS <- 2.4 * 10^{-6}
delayA <- (2.65 * 10^{-6} - windowDiamMS/2) / (156.25 * 10^{-12})
delayB <- (2.525 * 10^{-6} - windowDiamMS/2) / (156.25 * 10^{-12})
delayA <- as.integer(round(delayA))
delayB <- as.integer(round(delayB))
Window <- windowDiamMS / (156.25 * 10^{-12})
Window <- as.integer(round(Window))
for (i in 1:20) {
Name <- Names[i]
cat("\n", "\n", Name)
x <- read.table(Name, nrow = lengths[i], stringsAsFactors = FALSE,
col.names = c("time", "setting", "event"), colClasses = c("double", "integer", "integer"))
Events <- x$event
Settings <- x$setting
Times <- as.double(x$time)
Times[Events == 1] <- Times[Events == 1] - delayA
Times[Events == 2] <- Times[Events == 2] - delayB
Events[Events == 15] <- 0
X <- data.frame(Times = Times, Settings = Settings, Events = Events)
rm(x)
Ordering <- order(Times, Events)
Events <- Events[Ordering]
Settings <- Settings[Ordering]
Diffs <- diff(Times)
Times <- Times[-length(Events)]
NextEvent <- Events[-1]
Events <- Events[-length(Events)]
Settings <- Settings[-length(Events)]
nWindows <- integer(4)
Set <- c(11, 12, 21, 22)
for(i in 1:4) nWindows[i] <- sum(Events == 0 & Settings == Set[i])
Keep <- !(Events == 0 & NextEvent == 0)
Events <- Events[Keep]
Times <- Times[Keep]
Diffs <- Diffs[Keep]
Settings <- Settings[Keep]
OutFile <- paste(substr(Name, 1, 6), ".RData", sep ="")
save(Times, Diffs, Settings, Events, nWindows, Window, Name, Set, file = OutFile)
cat("\n", OutFile)
}
##
##
## data01.txt
## data01.RData
##
## data02.txt
## data02.RData
##
## data03.txt
## data03.RData
##
## data04.txt
## data04.RData
##
## data05.txt
## data05.RData
##
## data06.txt
## data06.RData
##
## data07.txt
## data07.RData
##
## data08.txt
## data08.RData
##
## data09.txt
## data09.RData
##
## data10.txt
## data10.RData
##
## data11.txt
## data11.RData
##
## data12.txt
## data12.RData
##
## data13.txt
## data13.RData
##
## data14.txt
## data14.RData
##
## data15.txt
## data15.RData
##
## data16.txt
## data16.RData
##
## data17.txt
## data17.RData
##
## data18.txt
## data18.RData
##
## data19.txt
## data19.RData
##
## data20.txt
## data20.RData