def loadDataCampaign(self, campaign): self.dataCampaign = campaign configuration = Configuration.ConfigurationReader(campaign) for run in self.dataCampaign.runs: print "Looking at run " + str(run.runNumber) settings = configuration.loadSettings(run.runNumber) vth = settings.getVTh() for discModRun in self.discModuleRuns: discModule = DiscriminatorModule() discModule.setVThreshold(vth) discModRun.modules.append(discModule) print "Added a disc module with vth = " + str(vth) i = 0 for run in self.dataCampaign.runs: run.setup() settings = configuration.loadSettings(run.runNumber) vth = settings.getVTh() readeri = Base.DATEReader(self.dataCampaign.fileNames[i]) print "Starting to analyse file:" print self.dataCampaign.fileNames[i] readeri.readBinary(run) for channel in run.channelRuns: discModRun = self.findDiscriminatorModuleRun( channel.board, channel.module, channel.trip) discMod = discModRun.getDiscriminatorModule(vth) discMod.addChannelFiredRatio(channel.getDiscriminatorRatio()) if (channel.getDiscriminatorRatio() != 0.0): print "ratio = " + str(channel.getDiscriminatorRatio()) i = i + 1 run.clear()
fileName = str(file) if (string.count(fileName,"gdc")): fileName = string.lstrip(fileName,"gdc") if (string.count(fileName,"dat")): fileName = string.rstrip(fileName,".dat") if (string.count(fileName,".000")): fileName = string.rstrip(fileName,".000") tfile = ROOT.TFile(fileName + ".root","recreate") # Create Run run = Base.Run() run.setName(file) run.setup() # Create file reader reader = Base.DATEReader(path + file) print file # Read file into Run reader.readBinary(run, "cosmic") # Add peak finders and measure pedestals run.addPedestalFinders(fit=1) run.writePeakLocations() run.qualityCheck() run.save(c1) run.clear() tfile.Write() tfile.Close()
def loadDataCampaign(self, campaign, useLEDFile=0): # Campaign assumes a list of files in format LED(bias1), noLED(bias1), LED(bias2), noLED(bias2)... # This should be enforced by retrieving the runs and files from the database configuration = Configuration.ConfigurationReader(campaign) self.dataCampaign = campaign # Loop over the noLED files, get the bias entry from the configuration file # Create a module object with this bias for runnumber in range(1, len(self.dataCampaign.runs), 2): run = self.dataCampaign.runs[runnumber] settings = configuration.loadDBSettings(run.runNumber) bias = settings.getBias() for mrun in self.moduleRuns: mrun.addRun(bias) i = 0 # Loop over the noLED files, picking up the LED files with n-1 for runnum in range(1, len(self.dataCampaign.runs), 2): # Get the runs and setup runnoled = self.dataCampaign.runs[runnum] runled = self.dataCampaign.runs[runnum - 1] runled.setup() runnoled.setup() i = runnum # Create the reader objects - needs to be binary - and read into run readernoled = Base.DATEReader(self.dataCampaign.path + self.dataCampaign.fileNames[i]) readerled = Base.DATEReader(self.dataCampaign.path + self.dataCampaign.fileNames[i - 1]) print "Reading files " + str(runnum) readerled.readBinary(runled) readernoled.readBinary(runnoled) # Add the pedestal finders - find the peaks runled.addPedestalFinders() runnoled.addPedestalFinders() settings = configuration.loadDBSettings(runnoled.runNumber) bias = settings.getBias() for findernum in range(len(runled.peakFinders)): ledfinder = runled.peakFinders[findernum] noledfinder = runnoled.peakFinders[findernum] board = ledfinder.channel.board module = ledfinder.channel.module uniqueModuleNo = module + (board) * modulesPerBoard if (useLEDFile == 1): onePEPeak = settings.getPeak(uniqueModuleNo, 1) modR = self.getModuleRun(board, module) if (modR): mod = modR.getRun(bias) if (useLEDFile == 1): mod.addDarkCountRatio( noledfinder.getDarkCount(peakLocation=onePEPeak)) else: mod.addDarkCountRatio(noledfinder.getDarkCount()) mod.totalCounts.append(noledfinder.getDarkCount() * noledfinder.getTotalCounts()) mod.addPE(ledfinder.getPE() - noledfinder.getPE()) #print "added PE " + str(ledfinder.getPE() - noledfinder.getPE() ) runled.clear() runnoled.clear() del runled del runnoled i = i + 1