def addChannel(self, variableName, regions, nBins, binLow, binHigh): """ Build a channel object from this fitConfig @param variableName The variable name to use in this channel @param regions Region to use @param nBins Number of bins @param binLow Left edge of lower bin @param binHight Right edge of upper bin """ if variableName == "cuts": nBins = len(regions) #binLow = 0.5 binHigh = nBins + binLow pass chanObj = Channel(variableName, regions, self.prefix, nBins, binLow, binHigh, self.statErrThreshold) # Verify that this name is not already used for chan in self.channels: if chan.name == chanObj.name: log.info( "Not gonna add the region, because it exists in fitConfig --> channel-List follows:" ) for chan in self.channels: print " chan.name = ", chan.name raise RuntimeError( "Channel %s already exists in fitConfig %s. Please use a different name." % (chanObj.name, self.name)) #set channel parent chanObj.parentTopLvl = self #set stat error type chanObj.statErrorType = self.statErrorType # Channel doesn't have weights so add them chanObj.setWeights(self.weights) # Propagate systematics into channel for (systName, syst) in self.systDict.items(): chanObj.addSystematic(syst) # Put samples owned by this fitConfig into the channel for s in self.sampleList: chanObj.addSample(s.Clone()) # Add channel to the list self.channels.append(chanObj) return self.channels[len(self.channels) - 1]
def addChannel(self, variableName, regions, nBins, binLow, binHigh): """ Build a channel object from this fitConfig @param variableName The variable name to use in this channel @param regions Region to use @param nBins Number of bins @param binLow Left edge of lower bin @param binHight Right edge of upper bin """ if variableName == "cuts": nBins = len(regions) #binLow = 0.5 binHigh = nBins + binLow pass chanObj = Channel(variableName, regions, self.prefix, nBins, binLow, binHigh, self.statErrThreshold) # Verify that this name is not already used for chan in self.channels: if chan.name == chanObj.name: log.info("Not gonna add the region, because it exists in fitConfig --> channel-List follows:" ) for chan in self.channels: print " chan.name = ", chan.name raise RuntimeError("Channel %s already exists in fitConfig %s. Please use a different name." % (chanObj.name, self.name)) #set channel parent chanObj.parentTopLvl = self #set stat error type chanObj.statErrorType = self.statErrorType # Channel doesn't have weights so add them chanObj.setWeights(self.weights) # Propagate systematics into channel for (systName, syst) in self.systDict.items(): chanObj.addSystematic(syst) # Put samples owned by this fitConfig into the channel for s in self.sampleList: chanObj.addSample(s.Clone()) # Add channel to the list self.channels.append(chanObj) return self.channels[len(self.channels) - 1]
def addChannel(self, variableName, regions, nBins, binLow, binHigh): """ Build a channel object from this TopLevel """ if variableName == "cuts": nBins = len(regions) #binLow = 0.5 binHigh = nBins + binLow pass chanObj = Channel(variableName, regions, self.prefix, nBins, binLow, binHigh, self.statErrThreshold) # Verify that this name is not already used for chan in self.channels: if chan.name == chanObj.name: raise RuntimeError("Channel %s already exists in TopLevelXML %s. Please use a different name." % (chanObj.name, self.name)) #set channel parent chanObj.parentTopLvl = self #set stat error type chanObj.statErrorType = self.statErrorType # Channel doesn't have weights so add them chanObj.setWeights(self.weights) # Propagate systematics into channel for (systName, syst) in self.systDict.items(): chanObj.addSystematic(syst) # Put samples owned by this TopLevel into the channel for s in self.sampleList: chanObj.addSample(s.Clone()) # Add channel to the list self.channels.append(chanObj) return self.channels[len(self.channels) - 1]