def beginJob(self, histFile=None, histDirName=None): Module.beginJob(self, histFile, histDirName) # Pt self.hTauPt_LooseTau = ROOT.TH1F('TauPt_LooseTau' , 'TauPt_LooseTau ; #tau_{h} p_{T} (GeV); Occur', 20, 0.0, 100.0) self.hTauEta_LooseTau = ROOT.TH1F('TauEta_LooseTau', 'TauEta_LooseTau; #tau_{h} #eta; Occur' , 50, -2.5, 2.5) self.hTauDM_LooseTau = ROOT.TH1F('TauDM_LooseTau' , 'TauDM_LooseTau ; #tau_{h} decay mode; Occur' , 12, 0.0, 12.0) self.hTauPtJetPtRatio_LooseTau = ROOT.TH1F('TauPtJetPtRatio_LooseTau', 'TauPtJetPtRatio_LooseTau ; #tau_{h} p_{T} / jet p_{T}; Occur', 100, 0.0, 5.0) self.hTauPt_TightTau = ROOT.TH1F('TauPt_TightTau' , 'TauPt_TightTau ; #tau_{h} p_{T} (GeV); Occur', 20, 0.0, 100.0) self.hTauEta_TightTau = ROOT.TH1F('TauEta_TightTau' , 'TauEta_TightTau ; #tau_{h} #eta; Occur' , 50, -2.5, 2.5) self.hTauDM_TightTau = ROOT.TH1F('TauDM_TightTau' , 'TauDM_TightTau ; #tau_{h} decay mode; Occur' , 12, 0.0, 12.0) self.hTauPtJetPtRatio_TightTau = ROOT.TH1F('TauPtJetPtRatio_TightTau', 'TauPtJetPtRatio_TightTau ; #tau_{h} p_{T} / jet p_{T}; Occur', 100, 0.0, 5.0) # Dimuon self.hDimuonPt = ROOT.TH1F('DimuonPt' , 'DiumuonPt ; #mu#mu p_{T}; Occur', 40, 0.0, 200.0) self.hDimuonMass = ROOT.TH1F('DimuonMass', 'DiumuonMass; #mu#mu invariant mass; Occur', 40, 0.0, 200.0) self.hDimuonDeltaEta = ROOT.TH1F('DimuonDeltaEta', 'DiumuonDeltaEta; #mu#mu #Delta#eta; Occur', 50, 0.0, 5.0) self.hDimuonDeltaPhi = ROOT.TH1F('DimuonDeltaPhi', 'DiumuonDeltaPhi; #mu#mu #Delta#phi (rads); Occur', 32, 0.0, 3.2) self.hDimuonDeltaR = ROOT.TH1F('DimuonDeltaR' , 'DiumuonDeltaR ; #mu#mu #DeltaR; Occur', 50, 0.0, 5.0) # Closest muon self.hMuonDeltaPt_MinDeltaR = ROOT.TH1F('MuonDeltaPt_MinDeltaR' , 'MuonDeltaPt_MinDeltaR ; (p_{T}^{#tau_{h}} - p_{T}^{#mu})/ p_{T}^{#tau_{h}}; Occur', 50, -5.0, 5.0) self.hMuonDeltaR_MinDeltaR = ROOT.TH1F('MuonDeltaR_MinDeltaR' , 'MuonDeltaR_MinDeltaR ; #DeltaR(#tau_{h}, #mu); Occur', 50, 0.0, 5.0) self.hMuonPt_MinDeltaR = ROOT.TH1F('MuonPt_MinDeltaR' , 'MuonPt_MinDeltaR ; #mu p_{T} (GeV); Occur', 40, 0.0, 200.0) self.hMuonEta_MinDeltaR = ROOT.TH1F('MuonEta_MinDeltaR' , 'MuonEta_MinDeltaR ; #mu #eta; Occur' , 50, -2.5, 2.5) self.hMuonDxy_MinDeltaR = ROOT.TH1F('MuonDxy_MinDeltaR' , 'MuonDxy_MinDeltaR ; d_{xy} (cm);Occur' , 200, 0.0, 0.1); self.hMuonDz_MinDeltaR = ROOT.TH1F('MuonDz_MinDeltaR' , 'MuonDz_MinDeltaR ; d_{z} (cm);Occur' , 200, 0.0, 0.1); self.hMuonSIP3D_MinDeltaR = ROOT.TH1F('MuonSIP3D_MinDeltaR' , 'MuonSIP3D_MinDeltaR ; SIP_{3D}=|IP/#sigma_{IP}^{3D}|;Occur', 50, 0.0, 5.0); self.hMuonMvaID_MinDeltaR = ROOT.TH1F('MuonMvaID_MinDeltaR' , 'MuonMvaID_MinDeltaR ; MVA ID;Occur' , 5, 0.0, 5.0); self.hMuonIsPFCand_MinDeltaR = ROOT.TH1F('MuonIsPFCand_MinDeltaR' , 'MuonIsPFCand_MinDeltaR ; is PF cand;Occur', 2, 0.0, 2.0); self.hMuonIsTracker_MinDeltaR = ROOT.TH1F('MuonIsTracker_MinDeltaR' , 'MuonIsTracker_MinDeltaR ; is tracker;Occur', 2, 0.0, 2.0); self.hMuonIsGlobal_MinDeltaR = ROOT.TH1F('MuonIsGlobal_MinDeltaR' , 'MuonIsGlobal_MinDeltaR ; is Global;Occur' , 2, 0.0, 2.0); self.hMuonJetPtRelv2_MinDeltaR = ROOT.TH1F('MuonJetPtRelv2_MinDeltaR', 'MuonJetPtRelv2_MinDeltaR; jet p_{T}^{rel};Occur', 20, 0.0, 100.0); self.hMuonJetRelIso_MinDeltaR = ROOT.TH1F('MuonJetRelIso_MinDeltaR' , 'MuonJetRelIso_MinDeltaR ; jet rel iso;Occur', 100, -0.5, 0.5); self.hMuonPFRelIso03_MinDeltaR = ROOT.TH1F('MuonPFRelIso03_MinDeltaR', 'MuonPFRelIso03_MinDeltaR; PF rel iso ;Occur', 100, 0.0, 0.5); hList = [] hList.append(self.hTauPt_LooseTau) hList.append(self.hTauEta_LooseTau) hList.append(self.hTauDM_LooseTau) hList.append(self.hTauPtJetPtRatio_LooseTau) # hList.append(self.hTauPt_TightTau) hList.append(self.hTauEta_TightTau) hList.append(self.hTauDM_TightTau) hList.append(self.hTauPtJetPtRatio_TightTau) # hList.append(self.hDimuonPt) hList.append(self.hDimuonMass) hList.append(self.hDimuonDeltaEta) hList.append(self.hDimuonDeltaPhi) hList.append(self.hDimuonDeltaR) # hList.append(self.hMuonDeltaPt_MinDeltaR) hList.append(self.hMuonDeltaR_MinDeltaR) hList.append(self.hMuonPt_MinDeltaR) hList.append(self.hMuonEta_MinDeltaR) hList.append(self.hMuonDxy_MinDeltaR) hList.append(self.hMuonDz_MinDeltaR) hList.append(self.hMuonSIP3D_MinDeltaR) hList.append(self.hMuonMvaID_MinDeltaR) hList.append(self.hMuonIsPFCand_MinDeltaR) hList.append(self.hMuonIsTracker_MinDeltaR) hList.append(self.hMuonIsGlobal_MinDeltaR) hList.append(self.hMuonJetPtRelv2_MinDeltaR) hList.append(self.hMuonJetRelIso_MinDeltaR) hList.append(self.hMuonPFRelIso03_MinDeltaR) # For-loop: All histograms for h in hList: h.Sumw2() self.addObject(h) return
def beginJob(self, histFile, histDirName): Module.beginJob(self, histFile, histDirName) self.isttbar = True #False if 'TTJets_' in histFile or 'TTToSemiLeptonic' in histFile or '94XNanoV0-TTbar_SemiLep' in histFile: self.isttbar = True if self.isttbar: print "This is a ttbar MC dataset!" ### Set bins for Pt dependent scale factor calculation self.TopcandPtBins = [[200, 300], [300, 400], [400, 500], [500, float("inf")]] # e.g. h_WcandSubjetpt_Tptbin0 is a 1D histogram for W candidate subjets (most massive SD subjet) within Top candidates of pt 200-300 GeV self.WcandPtBins = [[200, 300], [300, 500], [500, float("inf")]] # e.g. h_WcandSubjetpt_ptbin0 1D histogram is for W candidate subjets (most massive SD subjet) with pt 200-300 GeV self.minMupt = 53. self.maxMuEta = 2.4 self.maxRelIso = 0.1 self.minMuMETPt = 40. ### Figure our tree branch for HighPtMuon ??? #is High Pt #remove AK8 jet within 1.0 of lepton self.mindRLepJet = 1.0 #veto: # High pT muon ID #pT > 20 GeV, eta < 2.4?? #relIso < 0.1 self.minElpt = 120. self.minElMETPt = 80. #self.goodElEta = if eta < 1.44, 1.56 < eta < 2.5 # HEEP v7 + iso #veto # HEEP + iso pt > 35 remove ecal crack region eta < 1.44, 1.56 < eta < 2.5 # self.minLepWPt = 150. self.minJetPt = 350. self.maxJetEta = 2.4 self.minTopmass = 105. self.maxTopmass = 250. self.maxtau32Top = 0.7 self.minBDisc = 0.8484 ### Medium https://twiki.cern.ch/twiki/bin/view/CMS/BtagRecommendation80XReReco #>= 1 CSVmedium akt4 jet self.minAK4Pt = 50. ### 2-D cut ### ### dR OR PtRel ### self.mindRlepAK4 = 0.4 self.minPtRel_lepAK4 = 30. #Angular selection (not used by Thea now): #dR( lepton, leading AK8 jet) > pi/2 #dPhi(leading AK8 jet, MET) > 2 #dPhi (leading AK8 jet, leptonic W) >2 #self.minDPhiWJet = 2. # This is a loose selection to select events for T Tbar semileptonic events where # Type 1 and Type 2 events are included in the selection: # In SF code the final cuts need to be made to choose either type 1 or type 2 selection: # e.g. for type 1 the W leptonic Pt cut should be tightened to 200 GeV and dPhi cuts applied # e.g. for type 2 the AK8 Pt cut should be tightened to 400 GeV and dPhi cuts applied # Type 1 - martially merged Hadronic Top Quark (W is AK8, b is AK4) #(AK8 Pt > 200 GeV) # Type 2 - fully merged Top (Top is AK8, W is most massive SD subjet, b is less massive subjet, require 1 subjet b-tag) #(AK8 Pt > 400 GeV): # selection aligned with previous SF measurement standard selection # https://www.evernote.com/shard/s282/sh/7e5d6baa-d100-4025-8bf8-a61bf1adfbc1/f7e86fde2c2a165e # 1 AK8 Pt > 200 GeV, |eta| < 2.5 , dR(Ak8, lep) > 1.0 # 1 AK4 Pt > 30 GeV, |eta| < 2.5 # 1 lepton , mu pt > 53 GeV or el pt > 120 GeV # MET Pt > 40(mu) or 80(el) GeV #Leptonic W - lepton + MET has Pt > 150 GeV # did not apply this since we are missing MET eta self.addObject(ROOT.TH1D('h_lep0pt', 'h_lep0pt', 40, 0, 200)) self.addObject(ROOT.TH1D('h_lep0eta', 'h_lep0eta', 48, -3, 3)) self.addObject(ROOT.TH1D('h_lep0phi', 'h_lep0phi', 100, -5, 5)) self.addObject(ROOT.TH1D('h_hadToppt', 'h_hadToppt', 100, 0, 500)) self.addObject(ROOT.TH1D('h_hadTopeta', 'h_hadTopeta', 48, -3, 3)) self.addObject(ROOT.TH1D('h_hadTopphi', 'h_hadTopphi', 100, -5, 5)) self.addObject(ROOT.TH1D('h_hadTopmass', 'h_hadTopmass', 60, 140, 200)) #self.addObject( ROOT.TH1D('h_lepToppt', 'h_lepToppt', 100, 0, 500 ) ) #self.addObject( ROOT.TH1D('h_lepTopeta', 'h_lepTopeta', 48, -3, 3 ) ) #self.addObject( ROOT.TH1D('h_lepTopphi', 'h_lepTopphi', 100, -5, 5 ) ) #self.addObject( ROOT.TH1D('h_lepTopmass', 'h_lepTopmass', 60, 140, 200 ) ) self.addObject( ROOT.TH1D('h_WcandSubjetpt', 'h_WcandSubjetpt', 100, 0, 500)) self.addObject( ROOT.TH1D('h_WcandSubjeteta', 'h_WcandSubjeteta', 48, -3, 3)) self.addObject( ROOT.TH1D('h_WcandSubjetphi', 'h_WcandSubjetphi', 100, -5, 5)) self.addObject( ROOT.TH1D('h_WcandSubjetmass', 'h_WcandSubjetmass', 100, 50, 150)) self.addObject( ROOT.TH1D('h_WcandSubjettau21', 'h_WcandSubjettau21', 100, 0, 1)) self.addObject( ROOT.TH1D('h_WcandSubjetpt_ptbin0', 'h_WcandSubjetpt_ptbin0', 100, 0, 500)) self.addObject( ROOT.TH1D('h_WcandSubjeteta_ptbin0', 'h_WcandSubjeteta_ptbin0', 48, -3, 3)) self.addObject( ROOT.TH1D('h_WcandSubjetphi_ptbin0', 'h_WcandSubjetphi_ptbin0', 100, -5, 5)) self.addObject( ROOT.TH1D('h_WcandSubjetmass_ptbin0', 'h_WcandSubjetmass_ptbin0', 100, 50, 150)) self.addObject( ROOT.TH1D('h_WcandSubjettau21_ptbin0', 'h_WcandSubjettau21_ptbin0', 100, 0, 1)) self.addObject( ROOT.TH1D('h_WcandSubjetpt_ptbin1', 'h_WcandSubjetpt_ptbin1', 100, 0, 500)) self.addObject( ROOT.TH1D('h_WcandSubjeteta_ptbin1', 'h_WcandSubjeteta_ptbin1', 48, -3, 3)) self.addObject( ROOT.TH1D('h_WcandSubjetphi_ptbin1', 'h_WcandSubjetphi_ptbin1', 100, -5, 5)) self.addObject( ROOT.TH1D('h_WcandSubjetmass_ptbin1', 'h_WcandSubjetmass_ptbin1', 100, 50, 150)) self.addObject( ROOT.TH1D('h_WcandSubjettau21_ptbin1', 'h_WcandSubjettau21_ptbin1', 100, 0, 1)) self.addObject( ROOT.TH1D('h_WcandSubjetpt_ptbin2', 'h_WcandSubjetpt_ptbin2', 100, 0, 500)) self.addObject( ROOT.TH1D('h_WcandSubjeteta_ptbin2', 'h_WcandSubjeteta_ptbin2', 48, -3, 3)) self.addObject( ROOT.TH1D('h_WcandSubjetphi_ptbin2', 'h_WcandSubjetphi_ptbin2', 100, -5, 5)) self.addObject( ROOT.TH1D('h_WcandSubjetmass_ptbin2', 'h_WcandSubjetmass_ptbin2', 100, 50, 150)) self.addObject( ROOT.TH1D('h_WcandSubjettau21_ptbin2', 'h_WcandSubjettau21_ptbin2', 100, 0, 1)) self.WcandSubjetpt = [ self.h_WcandSubjetpt_ptbin0, self.h_WcandSubjetpt_ptbin1, self.h_WcandSubjetpt_ptbin2 ] self.WcandSubjeteta = [ self.h_WcandSubjeteta_ptbin0, self.h_WcandSubjeteta_ptbin1, self.h_WcandSubjeteta_ptbin2 ] self.WcandSubjetphi = [ self.h_WcandSubjetphi_ptbin0, self.h_WcandSubjetphi_ptbin1, self.h_WcandSubjetphi_ptbin2 ] self.WcandSubjetmass = [ self.h_WcandSubjetmass_ptbin0, self.h_WcandSubjetmass_ptbin1, self.h_WcandSubjetmass_ptbin2 ] self.WcandSubjettau21 = [ self.h_WcandSubjettau21_ptbin0, self.h_WcandSubjettau21_ptbin1, self.h_WcandSubjettau21_ptbin2 ] #self.addObject( ROOT.TH1D('h_WcandSubjetpt_Tptbin0', 'h_WcandSubjetpt_Tptbin0', 100, 0, 500 ) ) #self.addObject( ROOT.TH1D('h_WcandSubjeteta_Tptbin0', 'h_WcandSubjeteta_Tptbin0', 48, -3, 3 ) ) #self.addObject( ROOT.TH1D('h_WcandSubjetphi_Tptbin0', 'h_WcandSubjetphi_Tptbin0', 100, -5, 5 ) ) #self.addObject( ROOT.TH1D('h_WcandSubjetmass_Tptbin0', 'h_WcandSubjetmass_Tptbin0', 100, 50, 150 ) ) #self.addObject( ROOT.TH1D('h_WcandSubjetpt_Tptbin1', 'h_WcandSubjetpt_Tptbin1', 100, 0, 500 ) ) #self.addObject( ROOT.TH1D('h_WcandSubjeteta_Tptbin1', 'h_WcandSubjeteta_Tptbin1', 48, -3, 3 ) ) #self.addObject( ROOT.TH1D('h_WcandSubjetphi_Tptbin1', 'h_WcandSubjetphi_Tptbin1', 100, -5, 5 ) ) #self.addObject( ROOT.TH1D('h_WcandSubjetmass_Tptbin1', 'h_WcandSubjetmass_Tptbin1', 100, 50, 150 ) ) #self.addObject( ROOT.TH1D('h_WcandSubjetpt_Tptbin2', 'h_WcandSubjetpt_Tptbin2', 100, 0, 500 ) ) #self.addObject( ROOT.TH1D('h_WcandSubjeteta_Tptbin2', 'h_WcandSubjeteta_Tptbin2', 48, -3, 3 ) ) #self.addObject( ROOT.TH1D('h_WcandSubjetphi_Tptbin2', 'h_WcandSubjetphi_Tptbin2', 100, -5, 5 ) ) #self.addObject( ROOT.TH1D('h_WcandSubjetmass_Tptbin2', 'h_WcandSubjetmass_Tptbin2', 100, 50, 150 ) ) #self.addObject( ROOT.TH1D('h_genjetpt', 'h_genjetpt', 100, 0, 500 ) ) #self.addObject( ROOT.TH1D('h_genjeteta', 'h_genjeteta', 48, -3, 3 ) ) #self.addObject( ROOT.TH1D('h_genjetphi', 'h_genjetphi', 100, -5, 5 ) ) #self.addObject( ROOT.TH1D('h_genjetmass', 'h_genjetmass', 300, 0, 300 ) ) self.addObject(ROOT.TH1D('h_Wleppt', 'h_Wleppt', 100, 0, 500)) self.addObject(ROOT.TH1D('h_Wlepeta', 'h_Wlepeta', 48, -3, 3)) self.addObject(ROOT.TH1D('h_Wlepphi', 'h_Wlepphi', 100, -5, 5)) self.addObject(ROOT.TH1D('h_Wlepmass', 'h_Wlepmass', 100, 50, 150)) if self.isttbar: self.addObject( ROOT.TH1D('h_matchedAK8Subjetpt', 'h_matchedAK8Subjetpt', 100, 0, 500)) self.addObject( ROOT.TH1D('h_matchedAK8Subjeteta', 'h_matchedAK8Subjeteta', 48, -3, 3)) self.addObject( ROOT.TH1D('h_matchedAK8Subjetphi', 'h_matchedAK8Subjetphi', 100, -5, 5)) self.addObject( ROOT.TH1D('h_matchedAK8Subjetmass', 'h_matchedAK8Subjetmass', 300, 0, 300)) self.addObject( ROOT.TH1D('h_unmatchedAK8Subjetpt', 'h_unmatchedAK8Subjetpt', 100, 0, 500)) self.addObject( ROOT.TH1D('h_unmatchedAK8Subjeteta', 'h_unmatchedAK8Subjeteta', 48, -3, 3)) self.addObject( ROOT.TH1D('h_unmatchedAK8Subjetphi', 'h_unmatchedAK8Subjetphi', 100, -5, 5)) self.addObject( ROOT.TH1D('h_unmatchedAK8Subjetmass', 'h_unmatchedAK8jetmass', 300, 0, 300))
def endJob(self): Module.endJob(self) pass
def endJob(self): Module.endJob(self) print "Module ended successfully,", self.nEvent, "events analyzed" pass
def beginJob(self, histFile=None, histDirName=None): self.hName = histFile if self.fillHists == False: Module.beginJob(self, None, None) else: if histFile == None or histDirName == None: raise RuntimeError( "fillHists set to True, but no histFile or histDirName specified" ) # Module.beginJob(self,histFile,histDirName) ###Inherited from Module prevdir = ROOT.gDirectory self.histFile = histFile self.histFile.cd() self.dir = self.histFile.mkdir(histDirName + "_Stitcher") prevdir.cd() self.objs = [] self.stitch_PCond_nGenJets = ROOT.TH1D( "stitch_PCond_nGenJets", "nGenJet (pt > 30) Pass condition (weightMagnitude=genWeight*{0}); nGenJets; Events" .format(self.weightMagnitude), self.nGenJetBins, self.nGenJetMin, self.nGenJetMax) self.addObject(self.stitch_PCond_nGenJets) self.stitch_PCond_GenHT = ROOT.TH1D( "stitch_PCond_GenHT", "GenHT (pt > 30, |#eta| < 2.4) Pass condition (weightMagnitude=genWeight*{0}); Gen HT (GeV); Events" .format(self.weightMagnitude), self.HTBins, self.HTMin, self.HTMax) self.addObject(self.stitch_PCond_GenHT) self.stitch_PCond_nGenLeps = ROOT.TH1D( "stitch_PCond_nGenLeps", "nGenLeps (LHE level) Pass condition (weightMagnitude=genWeight*{0}); nGenLeps; Events" .format(self.weightMagnitude), self.nGenLepBins, self.nGenLepMin, self.nGenLepMax) self.addObject(self.stitch_PCond_nGenLeps) self.stitch_PCond_2DJetHT = ROOT.TH2D( "stitch_PCond_2DJetHT", "nGenJets, GenHT Fail condition (weightMagnitude=genWeight*{0}); nGenJets; GenHT " .format(self.weightMagnitude), self.nGenJetBins, self.nGenJetMin, self.nGenJetMax, self.HTBins, self.HTMin, self.HTMax) self.addObject(self.stitch_PCond_2DJetHT) self.stitch_PCond_AllVar = ROOT.TH3D( "stitch_PCond_AllVar", "nGenLeps, nGenJets, GenHT Pass condition (weightMagnitude=genWeight*{0}); nGenLeps; nGenJets; GenHT " .format(self.weightMagnitude), self.nGenLepBins, self.nGenLepMin, self.nGenLepMax, self.nGenJetBins, self.nGenJetMin, self.nGenJetMax, self.HTBins, self.HTMin, self.HTMax) self.addObject(self.stitch_PCond_AllVar) self.stitch_FCond_nGenJets = ROOT.TH1D( "stitch_FCond_nGenJets", "nGenJet (pt > 30) Fail condition (weightMagnitude=genWeight*{0}); nGenJets; Events" .format(self.weightMagnitude), self.nGenJetBins, self.nGenJetMin, self.nGenJetMax) self.addObject(self.stitch_FCond_nGenJets) self.stitch_FCond_GenHT = ROOT.TH1D( "stitch_FCond_GenHT", "GenHT (pt > 30, |#eta| < 2.4) Fail condition (weightMagnitude=genWeight*{0}); Gen HT (GeV); Events" .format(self.weightMagnitude), self.HTBins, self.HTMin, self.HTMax) self.addObject(self.stitch_FCond_GenHT) self.stitch_FCond_nGenLeps = ROOT.TH1D( "stitch_FCond_nGenLeps", "nGenLeps (LHE level) Fail condition (weightMagnitude=genWeight*{0}); nGenLeps; Events" .format(self.weightMagnitude), self.nGenLepBins, self.nGenLepMin, self.nGenLepMax) self.addObject(self.stitch_FCond_nGenLeps) self.stitch_FCond_2DJetHT = ROOT.TH2D( "stitch_FCond_2DJetHT", "nGenJets, GenHT Fail condition (weightMagnitude=genWeight*{0}); nGenJets; GenHT " .format(self.weightMagnitude), self.nGenJetBins, self.nGenJetMin, self.nGenJetMax, self.HTBins, self.HTMin, self.HTMax) self.addObject(self.stitch_FCond_2DJetHT) self.stitch_FCond_AllVar = ROOT.TH3D( "stitch_FCond_AllVar", "nGenLeps, nGenJets, GenHT Fail condition (weightMagnitude=genWeight*{0}); nGenLeps; nGenJets; GenHT " .format(self.weightMagnitude), self.nGenLepBins, self.nGenLepMin, self.nGenLepMax, self.nGenJetBins, self.nGenJetMin, self.nGenJetMax, self.HTBins, self.HTMin, self.HTMax) self.addObject(self.stitch_FCond_AllVar)
def beginJob(self, histFile=None, histDirName=None): """begin job""" Module.beginJob(self, histFile, histDirName)
def __init__(self, name): Module.__init__(self, name, None) self.sf = EventVars2LSS('', 'Recl')
def endJob(self): """end Job""" Module.endJob(self)
def beginJob(self, histFile=None, histDirName=None): if histFile == None or histDirName == None: Module.beginJob(self, None, None) else: Module.beginJob(self, histFile, histDirName) self.ctrl_Muons = {} self.ctrl_Electrons = {} self.ctrl_Leptons = {} self.ctrl_Jets = {} self.ctrl_FatJets = {} self.cutflow = {} self.ctrl_met_phi = {} self.ctrl_met_pt = {} self.ctrl_HT = {} self.ctrl_nJets = {} for weight in self.weightList: self.cutflow[weight] = ROOT.TH1F( "h_base_cutflow[{0:s}]".format(weight), "Cutflow in the baseline event selector;; Events[{0:s}]". format(weight), 1, 0, 1) self.addObject(self.cutflow[weight]) self.ctrl_met_phi[weight] = ROOT.TH1F( "ctrl_met_phi[{0:s}]".format(weight), "MET;MET #phi; Events[{0:s}]".format(weight), 100, -math.pi, math.pi) self.addObject(self.ctrl_met_phi[weight]) self.ctrl_met_pt[weight] = ROOT.TH1F( "ctrl_met_pt[{0:s}]".format(weight), "MET;MET Pt (GeV); Events[{0:s}]".format(weight), 400, 0, 2000) self.addObject(self.ctrl_met_pt[weight]) self.ctrl_HT[weight] = ROOT.TH1F( "ctrl_HT[{0:s}]".format(weight), "HT; HT (GeV); Events[{0:s}]".format(weight), 600, 0, 3000) self.addObject(self.ctrl_HT[weight]) self.ctrl_nJets[weight] = ROOT.TH1F( "ctrl_nJets[{0:s}]".format(weight), "Jets; nJets; Events[{0:s}]".format(weight), 20, 0, 20) self.addObject(self.ctrl_nJets[weight]) self.ctrl_Jets[weight] = {} self.jetPlotVars = [ self.jetPtVar, "eta", "phi", self.jetMVar, "btagCSVV2", "btagDeepB", "btagDeepFlavB" ] for i in xrange(10): self.ctrl_Jets[weight][i] = {} for var in self.jetPlotVars: if var == self.jetPtVar: xmin = 0 xmax = 1000 elif var == "eta": xmin = -3.0 xmax = 3.0 elif var == "phi": xmin = -math.pi xmax = math.pi elif var == self.jetMVar: xmin = 0 xmax = 300 elif var == "btagCSVV2" or var == "btagDeepB" or var == "btagDeepFlavB": xmin = 0 xmax = 1 self.ctrl_Jets[weight][i][var] = ROOT.TH1F( "ctrl_Jets[{2:s}][{0:d}][{1:s}]".format( i, var, weight), "Pt Sorted Jet [{0:d}]; {1:s}; Events[{2:s}]". format(i, var, weight), 100, xmin, xmax) self.addObject(self.ctrl_Jets[weight][i][var]) self.ctrl_FatJets[weight] = {} self.jetAK8PlotVars = [ "pt", "eta", "phi", "mass", "btagCSVV2", "btagDeepB", "deepTag_TvsQCD", "deepTag_WvsQCD", "deepTag_MD_bbvsLight" ] for i in xrange(4): self.ctrl_FatJets[weight][i] = {} for var in self.jetAK8PlotVars: if var == "pt": xmin = 0 xmax = 1500 elif var == "eta": xmin = -3.0 xmax = 3.0 elif var == "phi": xmin = -math.pi xmax = math.pi elif var == "mass": xmin = 0 xmax = 300 elif var in [ "btagCSVV2", "btagDeepB", "deepTag_TvsQCD", "deepTag_WvsQCD", "deepTag_MD_bbvsLight" ]: xmin = 0 xmax = 1 self.ctrl_FatJets[weight][i][var] = ROOT.TH1F( "ctrl_FatJets[{2:s}][{0:d}][{1:s}]".format( i, var, weight), "AK8 Jet [{0:d}]; {1:s}; Events[{2:s}]".format( i, var, weight), 100, xmin, xmax) self.addObject(self.ctrl_FatJets[weight][i][var]) self.ctrl_Muons[weight] = {} self.ctrl_Electrons[weight] = {} self.ctrl_Leptons[weight] = {} self.leptonPlotVars = [ "pt", "eta", "phi", "mass", "dz", "dxy", "jetRelIso", "ip3d" ] for i in xrange(4): self.ctrl_Muons[weight][i] = {} self.ctrl_Electrons[weight][i] = {} self.ctrl_Leptons[weight][i] = {} for var in self.leptonPlotVars: if var == "pt": xmin = 0 xmax = 500 elif var == "eta": xmin = -3.0 xmax = 3.0 elif var == "phi": xmin = -math.pi xmax = math.pi elif var == "mass": xmin = 0 xmax = 5 elif var == "dz": xmin = 0 xmax = 0.02 elif var == "dxy" or var == "ip3d": xmin = 0 xmax = 0.2 elif var in ["jetRelIso"]: xmin = 0 xmax = 1 # self.ctrl_Muons[weight][i][var] = ROOT.TH1F("ctrl_Muons[{2:s}][{0:d}][{1:s}]".format(i, var, weight), # "Selected Muon [{0:d}]; {1:s}; Events[{2:s}]".format(i, var, weight), 100, xmin, xmax) # self.addObject(self.ctrl_Muons[weight][i][var]) # self.ctrl_Electrons[weight][i][var] = ROOT.TH1F("ctrl_Electrons[{2:s}][{0:d}][{1:s}]".format(i, var, weight), # "Selected Electron [{0:d}]; {1:s}; Events[{2:s}]".format(i, var, weight), 100, xmin, xmax) # self.addObject(self.ctrl_Electrons[weight][i][var]) self.ctrl_Leptons[weight][i][var] = ROOT.TH1F( "ctrl_Leptons[{2:s}][{0:d}][{1:s}]".format( i, var, weight), "Selected Lepton [{0:d}]; {1:s}; Events[{2:s}]". format(i, var, weight), 100, xmin, xmax) self.addObject(self.ctrl_Leptons[weight][i][var])
def endJob(self): Module.endJob(self) print "SkimmerDiMuon module ended successfully" pass
def beginJob(self, histFile=None, histDirName=None): Module.beginJob(self, histFile, histDirName) self.h_vpt = ROOT.TH1F('sumpt', 'sumpt', 100, 0, 1000) self.addObject(self.h_vpt)
def __init__(self, name): Module.__init__(self, name, None) self.sf1 = ObjTagger("LepPt25", "LepGood", [lambda ob: ob.pt >= 25])