Ejemplo n.º 1
0
    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
Ejemplo n.º 4
0
 def endJob(self):
     Module.endJob(self)
     print "Module ended successfully,", self.nEvent, "events analyzed"
     pass
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
 def beginJob(self, histFile=None, histDirName=None):
     """begin job"""
     Module.beginJob(self, histFile, histDirName)
Ejemplo n.º 7
0
 def __init__(self, name):
     Module.__init__(self, name, None)
     self.sf = EventVars2LSS('', 'Recl')
Ejemplo n.º 8
0
 def endJob(self):
     """end Job"""
     Module.endJob(self)
Ejemplo n.º 9
0
    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])
Ejemplo n.º 10
0
 def endJob(self):
     Module.endJob(self)
     print "SkimmerDiMuon module ended successfully"
     pass
Ejemplo n.º 11
0
    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)
Ejemplo n.º 12
0
 def __init__(self, name):
     Module.__init__(self, name, None)
     self.sf1 = ObjTagger("LepPt25", "LepGood",
                          [lambda ob: ob.pt >= 25])