# List of samples and their plotting colours # ------------------------------------------- topSample = Sample("Top", kGreen - 9) # topSample.setNormFactor("mu_Top",1.,0.,5.) wzSample = Sample("WZ", kAzure + 1) # wzSample.setNormFactor("mu_WZ",1.,0.,5.) dataSample = Sample("Data", kBlack) dataSample.setData() # ************** # Exclusion fit # ************** # Fit config instance exclusionFitConfig = configMgr.addTopLevelXML("Exclusion") meas = exclusionFitConfig.addMeasurement(name="NormalMeasurement", lumi=1.0, lumiErr=0.039) meas.addPOI("mu_SIG") # Samples exclusionFitConfig.addSamples([topSample, wzSample, dataSample]) # Systematics exclusionFitConfig.getSample("Top").addSystematic(topKtScale) exclusionFitConfig.getSample("WZ").addSystematic(wzKtScale) exclusionFitConfig.addSystematic(jes) # Channel srBin = exclusionFitConfig.addChannel("met/meff2Jet", ["SR"], 6, 0.1, 0.7) srBin.useOverflowBin = True srBin.useUnderflowBin = True
# Exclusion fit #************** # First define HistFactory attributes configMgr.analysisName = "ZLMB" + "_" + str( nbin) + "bin_" + anaName + "_" + grid + "_" + allpoints[0] #ATT #configMgr.analysisName = "ZLMB"+"_"+anaName+"_"+grid configMgr.histCacheFile = "data/" + configMgr.analysisName + ".root" configMgr.outputFileName = "results/" + configMgr.analysisName + "_Output.root" for point in allpoints: if point == "": continue #Fit config instance name = "Fit_" + "_" + point myFitConfig = configMgr.addTopLevelXML(name) if useStat: myFitConfig.statErrThreshold = 0.05 else: myFitConfig.statErrThreshold = None meas = myFitConfig.addMeasurement(name="NormalMeasurement", lumi=1.0, lumiErr=0.039) meas.addPOI("mu_SIG") meas.addParamSetting("mu_Diboson", True, 1) # fix diboson to MC prediction #Samples myFitConfig.addSamples([ gammaSample, topSample, wSample, zSample, qcdSample, dibosonSample, dataSample
sigSample = Sample("Sig", kPink) sigSample.setNormFactor("mu_Sig", 1.0, 0.0, 100.0) sigSample.setStatConfig(False) sigSample.setNormByTheory(False) sigSample.buildHisto([nsig], "UserRegion", "cuts") # sigSample.buildStatErrors([nsigErr],"UserRegion","cuts") # sigSample.addSystematic(cors) # sigSample.addSystematic(ucs) dataSample = Sample("Data", kBlack) dataSample.setData() dataSample.buildHisto([ndata], "UserRegion", "cuts") # Define top-level ana = configMgr.addTopLevelXML("SPlusB") ana.addSamples([bkgSample, sigSample, dataSample]) ana.setSignalSample(sigSample) # Define measurement meas = ana.addMeasurement(name="NormalMeasurement", lumi=1.0, lumiErr=lumiError) meas.addPOI("mu_Sig") meas.addParamSetting("Lumi", True, 1) # Add the channel chan = ana.addChannel("cuts", ["UserRegion"], 1, 0.0, 1.0) ana.setSignalChannels([chan]) # These lines are needed for the user analysis to run # Make sure file is re-made when executing HistFactory if configMgr.executeHistFactory:
# Exclusion fit #************** # First define HistFactory attributes #configMgr.analysisName = "ZeroLepton"+"_"+anaName+"_"+grid+"_"+allpoints[0] #ATT configMgr.analysisName = "ZeroLepton"+"_"+anaName+"_"+grid configMgr.histCacheFile = "data/"+configMgr.analysisName+".root" configMgr.outputFileName = "results/"+configMgr.analysisName+"_Output.root" for point in allpoints: if point=="":continue #Fit config instance name="Fit_"+"_"+point myFitConfig = configMgr.addTopLevelXML(name) if useStat: myFitConfig.statErrThreshold=0.05 else: myFitConfig.statErrThreshold=None meas=myFitConfig.addMeasurement(name="NormalMeasurement",lumi=1.0,lumiErr=0.039) meas.addPOI("mu_SIG") meas.addParamSetting("mu_Diboson",True,1) # fix diboson to MC prediction #Samples myFitConfig.addSamples([gammaSample,topSample,wSample,zSample,qcdSample,dibosonSample,dataSample]) #------------------------------------------------- # signal #-------------------------------------------------
data.setData() commonSamples = [ttbargamma, Wgamma, Wjets, ttbarDilep, ttbarLepjets, st, Zgamma, Zleplep, diboson, data] ## Parameters of the Measurement measName = "BasicMeasurement" measLumi = 1. measLumiError = 0.039 ## Parameters of Channels cutsNBins = 1 cutsBinLow = 0.0 cutsBinHigh = 1.0 ## Bkg-only fit (add the common systematics, which also affect the signal when cloning) bkgOnly = configMgr.addTopLevelXML("LepPhoton_BkgOnly") print '============',bkgOnly.name bkgOnly.statErrThreshold=0.0#None #0.5 bkgOnly.addSamples(commonSamples) meas = bkgOnly.addMeasurement(measName,measLumi,measLumiError) meas.addPOI("mu_SIG") #meas.addParamSetting("mu_Top","const",1.0) SREl = bkgOnly.addChannel("cuts",["SREl"],cutsNBins,cutsBinLow,cutsBinHigh) SRMu = bkgOnly.addChannel("cuts",["SRMu"],cutsNBins,cutsBinLow,cutsBinHigh) bkgOnly.setSignalChannels([SREl, SRMu]) SREl.addSample(diphotons)
topSample = Sample("Top", kGreen - 9) #topSample.setNormFactor("mu_Top",1.,0.,5.) wzSample = Sample("WZ", kAzure + 1) #wzSample.setNormFactor("mu_WZ",1.,0.,5.) dataSample = Sample("Data", kBlack) dataSample.setData() dataSample.buildHisto([3.], "SR", "cuts", 0.5) #************** # Discovery fit #************** if myFitType == FitType.Discovery: #Fit config instance discoveryFitConfig = configMgr.addTopLevelXML("Discovery") meas = discoveryFitConfig.addMeasurement(name="NormalMeasurement", lumi=1.0, lumiErr=0.039) meas.addPOI("mu_Discovery") #Samples discoveryFitConfig.addSamples([topSample, wzSample, dataSample]) #Systematics discoveryFitConfig.getSample("Top").addSystematic(topKtScale) discoveryFitConfig.getSample("WZ").addSystematic(wzKtScale) discoveryFitConfig.addSystematic(jes) #Channel srBin = discoveryFitConfig.addChannel("cuts", ["SR"], 1, 0.5, 1.5) discoveryFitConfig.setSignalChannels([srBin])
ddSample = Sample("DataDriven", kGreen + 2) ddSample.addShapeFactor("DDShape") sigSample = Sample("Sig", kPink) sigSample.setNormFactor("mu_Sig", 1., 0.2, 1.5) sigSample.buildHisto(nSigSR, "SR", "cuts") sigSample.setNormByTheory(True) sigSample.addSystematic(sigxsec) dataSample = Sample("Data", kBlack) dataSample.setData() dataSample.buildHisto(nDataCR, "CR", "cuts") dataSample.buildHisto(nDataSR, "SR", "cuts") # Define top-level ana = configMgr.addTopLevelXML("SPlusB") ana.addSamples([bkgSample, ddSample, dataSample]) # Define measurement meas = ana.addMeasurement(name="NormalMeasurement", lumi=1.0, lumiErr=0.039) meas.addPOI("mu_Sig") meas.addParamSetting("Lumi", True) # Add the channels chanCR = ana.addChannel("cuts", ["CR"], 2, 0., 2.) chanSR = ana.addChannel("cuts", ["SR"], 2, 0., 2.) chanSR.addSample(sigSample) chanSR.getSample("DataDriven").addSystematic(xtrap) ana.setBkgConstrainChannels([chanCR])
commonSamples = [allbkgSample,dataSample] configMgr.plotColours = [kGreen,kBlack] ## Parameters of the Measurement measName = "BasicMeasurement" measLumi = 1. measLumiError = 0.039 ## Parameters of Channels cutsRegions = ["SR"] cutsNBins = 1 cutsBinLow = 0.0 cutsBinHigh = 1.0 ## Bkg-only fit bkgOnly = configMgr.addTopLevelXML("SimpleChannel_BkgOnly") bkgOnly.statErrThreshold=None #0.5 bkgOnly.addSamples(commonSamples) bkgOnly.addSystematic(jes) meas = bkgOnly.addMeasurement(measName,measLumi,measLumiError) meas.addPOI("mu_SIG") cutsChannel = bkgOnly.addChannel("cuts",cutsRegions,cutsNBins,cutsBinLow,cutsBinHigh) ## Discovery fit #discovery = configMgr.addTopLevelXMLClone(bkgOnly,"SimpleChannel_Discovery") #discovery.clearSystematics() #sigSample = Sample("discoveryMode",kBlue) #sigSample.setNormFactor("mu_SIG",0.5,0.,1.) #sigSample.setNormByTheory() #discovery.addSamples(sigSample) #discovery.setSignalSample(sigSample)
commonSamples = [allbkgSample, dataSample] configMgr.plotColours = [kGreen, kBlack] ## Parameters of the Measurement measName = "BasicMeasurement" measLumi = 1. measLumiError = 0.039 ## Parameters of Channels cutsRegions = ["SR"] cutsNBins = 1 cutsBinLow = 0.0 cutsBinHigh = 1.0 ## Bkg-only fit bkgOnly = configMgr.addTopLevelXML("SimpleChannel_BkgOnly") bkgOnly.statErrThreshold = None #0.5 bkgOnly.addSamples(commonSamples) bkgOnly.addSystematic(jes) meas = bkgOnly.addMeasurement(measName, measLumi, measLumiError) meas.addPOI("mu_SIG") cutsChannel = bkgOnly.addChannel("cuts", cutsRegions, cutsNBins, cutsBinLow, cutsBinHigh) ## Discovery fit #discovery = configMgr.addTopLevelXMLClone(bkgOnly,"SimpleChannel_Discovery") #discovery.clearSystematics() #sigSample = Sample("discoveryMode",kBlue) #sigSample.setNormFactor("mu_SIG",0.5,0.,1.) #sigSample.setNormByTheory() #discovery.addSamples(sigSample)
# List of samples and their plotting colours #------------------------------------------- topSample = Sample("Top",kGreen-9) #topSample.setNormFactor("mu_Top",1.,0.,5.) wzSample = Sample("WZ",kAzure+1) #wzSample.setNormFactor("mu_WZ",1.,0.,5.) dataSample = Sample("Data",kBlack) dataSample.setData() #************** # Discovery fit #************** #Fit config instance discoveryFitConfig = configMgr.addTopLevelXML("Discovery") meas=discoveryFitConfig.addMeasurement(name="NormalMeasurement",lumi=1.0,lumiErr=0.039) meas.addPOI("mu_SIG") #Samples discoveryFitConfig.addSamples([topSample,wzSample,dataSample]) # Systematics discoveryFitConfig.getSample("Top").addSystematic(topKtScale) discoveryFitConfig.getSample("WZ").addSystematic(wzKtScale) discoveryFitConfig.addSystematic(jes) #Channel srBin = discoveryFitConfig.addChannel("cuts",["SR"],1,0.5,1.5) discoveryFitConfig.setSignalChannels([srBin]) srBin.addDiscoverySamples(["BLAH"],[1.],[0.],[100.],[kMagenta])
#------------------------------------------- # List of samples and their plotting colours #------------------------------------------- topSample = Sample("Top", kGreen - 9) #topSample.setNormFactor("mu_Top",1.,0.,5.) wzSample = Sample("WZ", kAzure + 1) #wzSample.setNormFactor("mu_WZ",1.,0.,5.) dataSample = Sample("Data", kBlack) dataSample.setData() #************** # Exclusion fit #************** #Fit config instance exclusionFitConfig = configMgr.addTopLevelXML("Exclusion") meas = exclusionFitConfig.addMeasurement(name="NormalMeasurement", lumi=1.0, lumiErr=0.039) meas.addPOI("mu_SIG") #Samples exclusionFitConfig.addSamples([topSample, wzSample, dataSample]) # Systematics exclusionFitConfig.getSample("Top").addSystematic(topKtScale) exclusionFitConfig.getSample("WZ").addSystematic(wzKtScale) exclusionFitConfig.addSystematic(jes) #Channel srBin = exclusionFitConfig.addChannel("met/meff2Jet", ["SR"], 6, 0.1, 0.7)
topSample = Sample("Top",kGreen-9) #topSample.setNormFactor("mu_Top",1.,0.,5.) wzSample = Sample("WZ",kAzure+1) #wzSample.setNormFactor("mu_WZ",1.,0.,5.) dataSample = Sample("Data",kBlack) dataSample.setData() dataSample.buildHisto([3.],"SR","cuts",0.5) #************** # Discovery fit #************** if myFitType==FitType.Discovery: #Fit config instance discoveryFitConfig = configMgr.addTopLevelXML("Discovery") meas=discoveryFitConfig.addMeasurement(name="NormalMeasurement",lumi=1.0,lumiErr=0.039) meas.addPOI("mu_Discovery") #Samples discoveryFitConfig.addSamples([topSample,wzSample,dataSample]) #Systematics discoveryFitConfig.getSample("Top").addSystematic(topKtScale) discoveryFitConfig.getSample("WZ").addSystematic(wzKtScale) discoveryFitConfig.addSystematic(jes) #Channel srBin = discoveryFitConfig.addChannel("cuts",["SR"],1,0.5,1.5) discoveryFitConfig.setSignalChannels([srBin]) srBin.addDiscoverySamples(["Discovery"],[1.],[0.],[10000.],[kMagenta])