示例#1
0
    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()
示例#2
0
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()
示例#3
0
    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