def getHistogram(plot,runRange,backgrounds,region): path = locations[runRange.era].dataSetPath treesEE = readTrees(path,"EE") treesEM = readTrees(path,"EMu") treesMM = readTrees(path,"MuMu") eventCounts = totalNumberOfGeneratedEvents(path) processes = [] for background in backgrounds: processes.append(Process(getattr(Backgrounds[runRange.era],background),eventCounts)) triggerSF_EE,_ = getTriggerScaleFactor("EE", region, runRange) triggerSF_MM,_ = getTriggerScaleFactor("MuMu", region, runRange) triggerSF_EM,_ = getTriggerScaleFactor("EMu", region, runRange) histoEE = TheStack(processes,runRange.lumi,plot,treesEE,"None",1.0,triggerSF_EE,1.0,useTriggerEmulation=True).theHistogram histoMM = TheStack(processes,runRange.lumi,plot,treesMM,"None",1.0,triggerSF_MM,1.0,useTriggerEmulation=True).theHistogram histoEM = TheStack(processes,runRange.lumi,plot,treesEM,"None",1.0,triggerSF_EM,1.0,useTriggerEmulation=True).theHistogram histSF = histoEE.Clone() histSF.Add(histoMM.Clone(), 1) histSF.Add(histoEM.Clone(), -1) return histSF
treesEE = readTrees(path,"EE") treesEM = readTrees(path,"EMu") treesMM = readTrees(path,"MuMu") histoEE = TheStack(processes,runRange.lumi,plot,treesEE,"None",1.0,1.0,1.0).theHistogram histoMM = TheStack(processes,runRange.lumi,plot,treesMM,"None",1.0,1.0,1.0).theHistogram histoEM = TheStack(processes,runRange.lumi,plot,treesEM,"None",1.0,1.0,1.0).theHistogram #~ histoEE.Scale(getattr(triggerEffs,"central").effEE.valMC) #~ histoMM.Scale(getattr(triggerEffs,"central").effMM.valMC) #~ histoEM.Scale(getattr(triggerEffs,"central").effEM.valMC) histoSF = histoEE.Clone() histoSF.Add(histoMM) hCanvas = TCanvas("hCanvas", "Distribution", 800,800) plotPad = ROOT.TPad("plotPad","plotPad",0,0.3,1,1) ratioPad = ROOT.TPad("ratioPad","ratioPad",0,0.,1,0.3) setTDRStyle() plotPad.UseCurrentStyle() ratioPad.UseCurrentStyle() plotPad.Draw() ratioPad.Draw() plotPad.cd() legend = TLegend(0.7, 0.55, 0.95, 0.95)