Example #1
0
    def init(self):
        self.jetGetter = JetGetter("PFAK4CHS")
        self.dr = ROOT.Math.VectorUtil.DeltaR
        self.normFactor = self.getNormalizationFactor()

        self.var = {}
        self.var["recoEta"] = array('d', [0])
        self.var["recoPt"] = array('d', [0])
        #self.var["hltEta"] = array('d', [0])
        self.var["hltPt"] = array('d', [0])
        #self.var["l1Eta"] = array('d', [0])
        self.var["l1Pt"] = array('d', [0])
        #self.var["s1l1Eta"] = array('d', [0])
        self.var["s1l1Pt"] = array('d', [0])
        self.var["PUNumInteractions"] = array('d', [0])
        self.var["puTrueNumInteractions"] = array('d', [0])
        self.var["weight"] = array('d', [0])

        # for the PU file run
        # utils/GetFlatPUDist.py
        puFile = edm.FileInPath(
            "CommonFSQFramework.Core/test/mnTrgAnalyzer/PUhists.root"
        ).fullPath()

        self.newlumiWeighters = {}
        #'''
        self.newlumiWeighters["flat010toflat010"] = edm.LumiReWeighting(
            puFile, puFile, "Flat0to10/pileup", "Flat0to10/pileup")
        self.newlumiWeighters["flat010toPU1"] = edm.LumiReWeighting(
            puFile, puFile, "Flat0to10/pileup", "PU1/pileup")
        #self.newlumiWeighters["flat010toPU2"] = edm.LumiReWeighting(puFile, puFile, "Flat0to10/pileup", "PU2/pileup")
        #self.newlumiWeighters["flat010toPU3"] = edm.LumiReWeighting(puFile, puFile, "Flat0to10/pileup", "PU3/pileup")
        #self.newlumiWeighters["flat010toPU4"] = edm.LumiReWeighting(puFile, puFile, "Flat0to10/pileup", "PU4/pileup")
        self.newlumiWeighters["flat010toPU5"] = edm.LumiReWeighting(
            puFile, puFile, "Flat0to10/pileup", "PU5/pileup")
        self.newlumiWeighters["flat010toPU10"] = edm.LumiReWeighting(
            puFile, puFile, "Flat0to10/pileup", "PU10/pileup")
        #'''
        '''
        self.newlumiWeighters["flat2050toPU20"] = edm.LumiReWeighting(puFile, puFile, "Flat20to50/pileup", "PU20/pileup")
        self.newlumiWeighters["flat2050toPU25"] = edm.LumiReWeighting(puFile, puFile, "Flat20to50/pileup", "PU25/pileup")
        self.newlumiWeighters["flat2050toPU30"] = edm.LumiReWeighting(puFile, puFile, "Flat20to50/pileup", "PU30/pileup")
        #'''
        '''
        self.newlumiWeighters["PU20to15"] = edm.LumiReWeighting(puFile, puFile, "PU20/pileup", "PU15/pileup")
        self.newlumiWeighters["PU20to18"] = edm.LumiReWeighting(puFile, puFile, "PU20/pileup", "PU18/pileup")
        self.newlumiWeighters["PU20to19"] = edm.LumiReWeighting(puFile, puFile, "PU20/pileup", "PU19/pileup")
        self.newlumiWeighters["PU20to21"] = edm.LumiReWeighting(puFile, puFile, "PU20/pileup", "PU21/pileup")
        self.newlumiWeighters["PU20to22"] = edm.LumiReWeighting(puFile, puFile, "PU20/pileup", "PU22/pileup")
        self.newlumiWeighters["PU20to20"] = edm.LumiReWeighting(puFile, puFile, "PU20/pileup", "PU20/pileup")
        self.newlumiWeighters["PU20to25"] = edm.LumiReWeighting(puFile, puFile, "PU20/pileup", "PU25/pileup")
        #'''
        for l in self.newlumiWeighters.keys():
            self.var[l] = array('d', [0])

        self.tree = ROOT.TTree("data", "data")
        self.GetOutputList().Add(self.tree)

        for v in self.var:
            self.tree.Branch(v, self.var[v], v + "/D")
Example #2
0
    def init( self):

        self.tree = ROOT.TTree("data", "data")
        self.GetOutputList().Add(self.tree)

        self.var = {}
        self.todoShifts = ["_central"]

        if not self.isData and self.doPtShiftsJEC:
            self.todoShifts.append("_ptUp")
            self.todoShifts.append("_ptDown")

        if not self.isData and self.doPtShiftsJER:
            self.todoShifts.append("_jerUp")
            self.todoShifts.append("_jerDown")

        # this is ugly
        #  by mimicking the tree structure of the balance method
        #  we will be able to use same plot/fit util
        for t in self.todoShifts:
            self.var["tagPt"+t] = array('d', [0])
            self.var["tagEta"+t] = array('d', [0])
            self.var["probePt"+t] = array('d', [0])
            self.var["probeEta"+t] = array('d', [0])
            self.var["ptAve"+t] = array('d', [0])
            self.var["balance"+t] = array('d', [0])

            #self.var["jetEta"+t] = array('d', [0])
            #self.var["jetR"+t] = array('d', [0])

        self.var["weight"] = array('d', [0])
        
        for v in self.var:
            self.tree.Branch(v, self.var[v], v+"/D")
        
        jet15FileV2 = edm.FileInPath("CommonFSQFramework/Core/test/MNxsectionAna/data/PUJet15V2.root").fullPath()   # MC gen distribution
        puFiles = {}
        puFiles["dj15_1"] = edm.FileInPath("CommonFSQFramework/Core/test/MNxsectionAna/data/pu_dj15_1_0.root").fullPath()
        puFiles["dj15_1_05"] = edm.FileInPath("CommonFSQFramework/Core/test/MNxsectionAna/data/pu_dj15_1_05.root").fullPath()
        puFiles["dj15_0_95"] = edm.FileInPath("CommonFSQFramework/Core/test/MNxsectionAna/data/pu_dj15_0_95.root").fullPath()
        puFiles["j15_1"] = edm.FileInPath("CommonFSQFramework/Core/test/MNxsectionAna/data/pu_j15_1_0.root").fullPath()
        puFiles["j15_1_05"] = edm.FileInPath("CommonFSQFramework/Core/test/MNxsectionAna/data/pu_j15_1_05.root").fullPath()
        puFiles["j15_0_95"] = edm.FileInPath("CommonFSQFramework/Core/test/MNxsectionAna/data/pu_j15_0_95.root").fullPath()

        self.lumiWeighters = {}
        self.lumiWeighters["_jet15_central"] = edm.LumiReWeighting(jet15FileV2, puFiles["j15_1"], "MC", "pileup")
        self.lumiWeighters["_jet15_puUp"] = edm.LumiReWeighting(jet15FileV2, puFiles["j15_1_05"], "MC", "pileup")
        self.lumiWeighters["_jet15_puDown"] = edm.LumiReWeighting(jet15FileV2, puFiles["j15_0_95"], "MC", "pileup")

        self.lumiWeighters["_dj15fb_central"] = edm.LumiReWeighting(jet15FileV2, puFiles["dj15_1"], "MC", "pileup")
        self.lumiWeighters["_dj15fb_puUp"] = edm.LumiReWeighting(jet15FileV2, puFiles["dj15_1_05"], "MC", "pileup")
        self.lumiWeighters["_dj15fb_puDown"] = edm.LumiReWeighting(jet15FileV2, puFiles["dj15_0_95"], "MC", "pileup")


        self.jetGetter = JetGetter("PF")
        if hasattr(self, "jetUncFile"):
            self.jetGetter.setJecUncertainty(self.jetUncFile)

        sys.stdout.flush()
Example #3
0
    def init(self):
        print "XXX init - CMS_FWD_11_002", self.datasetName, self.isData

        self.todoShifts = ["_central"]
        if not self.isData and self.doPtShiftsJEC:
            self.todoShifts.append("_ptUp")
            self.todoShifts.append("_ptDown")

        if not self.isData and self.doPtShiftsJER:
            self.todoShifts.append("_jerUp")
            self.todoShifts.append("_jerDown")

        self.hist = {}
        todoTrg = ["_jet15"]

        pedroPtBins = array('d', [35, 45, 57, 72, 90, 120, 150, 200])
        for shift in self.todoShifts:
            for trg in todoTrg:
                t = shift + trg
                self.hist["etaFwd" + t] = ROOT.TH1F("etaFwd" + t, "etaFwd" + t,
                                                    100, -5, 5)
                self.hist["etaCen" + t] = ROOT.TH1F("etaCen" + t, "etaCen" + t,
                                                    100, -5, 5)
                self.hist["vtx" + t] = ROOT.TH1F("vtx" + t, "vtx" + t, 10,
                                                 -0.5, 9.5)
                self.hist["ptFwd" + t] = ROOT.TH1F("ptFwd" + t, "ptFwd" + t,
                                                   len(pedroPtBins) - 1,
                                                   pedroPtBins)
                self.hist["ptCen" + t] = ROOT.TH1F("ptCen" + t, "ptCen" + t,
                                                   len(pedroPtBins) - 1,
                                                   pedroPtBins)
                self.hist["xs" + t] = ROOT.TH1F("xs" + t, "xs" + t, 1, 0, 1)

        # follow the histogram naming convention even if it makes no sense for gen - needed for drawPlots.py
        self.hist["genFwd"] = ROOT.TH1F("genJetFwd_central_jet15",
                                        "genJetFwd_central_jet15",
                                        len(pedroPtBins) - 1, pedroPtBins)
        self.hist["genCen"] = ROOT.TH1F("genJetCen_central_jet15",
                                        "genJetCen_central_jet15",
                                        len(pedroPtBins) - 1, pedroPtBins)
        self.hist["xsGen"] = ROOT.TH1F("genTot_central_jet15",
                                       "genTot_central_jet15", 1, 0, 1)

        for h in self.hist:
            self.hist[h].Sumw2()
            self.GetOutputList().Add(self.hist[h])

        puFiles = {}
        # CommonFSQFramework.Core/test/MNxsectionAna/
        jet15FileV2 = edm.FileInPath(
            "CommonFSQFramework/Core/test/MNxsectionAna/data/PUJet15V2.root"
        ).fullPath()  # MC gen distribution
        puFiles["dj15_1"] = edm.FileInPath(
            "CommonFSQFramework/Core/test/MNxsectionAna/data/pu_dj15_1_0.root"
        ).fullPath()
        puFiles["dj15_1_05"] = edm.FileInPath(
            "CommonFSQFramework/Core/test/MNxsectionAna/data/pu_dj15_1_05.root"
        ).fullPath()
        puFiles["dj15_0_95"] = edm.FileInPath(
            "CommonFSQFramework/Core/test/MNxsectionAna/data/pu_dj15_0_95.root"
        ).fullPath()
        puFiles["j15_1"] = edm.FileInPath(
            "CommonFSQFramework/Core/test/MNxsectionAna/data/pu_j15_1_0.root"
        ).fullPath()
        puFiles["j15_1_05"] = edm.FileInPath(
            "CommonFSQFramework/Core/test/MNxsectionAna/data/pu_j15_1_05.root"
        ).fullPath()
        puFiles["j15_0_95"] = edm.FileInPath(
            "CommonFSQFramework/Core/test/MNxsectionAna/data/pu_j15_0_95.root"
        ).fullPath()

        self.lumiWeighters = {}
        self.lumiWeighters["_jet15_central"] = edm.LumiReWeighting(
            jet15FileV2, puFiles["j15_1"], "MC", "pileup")
        self.lumiWeighters["_jet15_puUp"] = edm.LumiReWeighting(
            jet15FileV2, puFiles["j15_1_05"], "MC", "pileup")
        self.lumiWeighters["_jet15_puDown"] = edm.LumiReWeighting(
            jet15FileV2, puFiles["j15_0_95"], "MC", "pileup")

        self.lumiWeighters["_dj15fb_central"] = edm.LumiReWeighting(
            jet15FileV2, puFiles["dj15_1"], "MC", "pileup")
        self.lumiWeighters["_dj15fb_puUp"] = edm.LumiReWeighting(
            jet15FileV2, puFiles["dj15_1_05"], "MC", "pileup")
        self.lumiWeighters["_dj15fb_puDown"] = edm.LumiReWeighting(
            jet15FileV2, puFiles["dj15_0_95"], "MC", "pileup")

        self.jetGetter = JetGetter("PF")
        if hasattr(self, "jetUncFile"):
            self.jetGetter.setJecUncertainty(self.jetUncFile)
    def init(self):
        #self.pr = cProfile.Profile()

        print "Params:", self.etaMax, self.ptMin

        if not self.isData:
            #self.hltMCWeighter = HLTMCWeighter("HLT_Jet15U")
            self.HLTMCWeighterJ15Raw = HLTMCWeighter("HLT_Jet15U_raw")
            self.HLTMCWeighterJ15L1Raw = HLTMCWeighter(
                "HLT_Jet15U_L1Seeding_raw")
            #self.HLTMCWeighterDJ15FBRaw = HLTMCWeighter("HLT_DoubleJet15U_ForwardBackward_raw")
            #self.HLTMCWeighterDJ15L1FBRaw = HLTMCWeighter("HLT_DoubleJet15U_ForwardBackward_L1Seeding_raw")

        self.normFactor = self.getNormalizationFactor()
        self.dphi = ROOT.Math.VectorUtil.DeltaPhi

        self.tree = ROOT.TTree("data", "data")
        #self.GetOutputList().Add(self.tree)
        self.addToOutput(self.tree)

        self.var = {}
        self.histos = {}
        self.histos["evcnt"] = ROOT.TH1F("evcnt_central_jet15",
                                         "evcnt_central_jet15", 1, -0.5, 0.5)

        self.todoShifts = ["_central"]

        if not self.isData and self.doPtShiftsJEC:
            #self.todoShifts.append("_ptUp")
            #self.todoShifts.append("_ptDown")
            self.todoShifts.append("_jecUp")
            self.todoShifts.append("_jecDown")

        if not self.isData and self.doPtShiftsJER:
            self.todoShifts.append("_jerUp")
            self.todoShifts.append("_jerDown")

        trg = "_jet15"
        for t in self.todoShifts:
            self.var["tagPt" + t] = array('d', [0])
            self.var["tagEta" + t] = array('d', [0])
            self.var["probePt" + t] = array('d', [0])
            self.var["probeEta" + t] = array('d', [0])
            self.var["ptAve" + t] = array('d', [0])
            self.var["balance" + t] = array('d', [0])
            #//self.var["veto1"+t] = array('d', [0])
            self.var["veto2" + t] = array('d', [0])

            histoPostFix = t + trg
            self.histos["ptProbe" + t] = ROOT.TH1F("ptProbe" + histoPostFix,
                                                   "ptProbe" + histoPostFix,
                                                   100, 0, 100)
            self.histos["ptTag" + t] = ROOT.TH1F("ptTag" + histoPostFix,
                                                 "ptTag" + histoPostFix, 100,
                                                 0, 100)
            self.histos["etaProbe" + t] = ROOT.TH1F("etaProbe" + histoPostFix,
                                                    "etaProbe" + histoPostFix,
                                                    35, 1.3, 4.8)
            self.histos["etaTag" + t] = ROOT.TH1F("etaTag" + histoPostFix,
                                                  "etaTag" + histoPostFix, 15,
                                                  0, 1.5)
            self.histos["nvtx" + t] = ROOT.TH1F("nvtx" + histoPostFix,
                                                "nvtx" + histoPostFix, 10,
                                                -0.5, 9.5)

        for t in self.histos:
            #self.histos[t][1] = ROOT.TH1F(name, name, nbins, self.histos[t][2], self.histos[t][3])
            self.histos[t].Sumw2()
            #self.GetOutputList().Add(self.histos[t])
            self.addToOutput(self.histos[t])

        self.var["weight"] = array('d', [0])
        for v in self.var:
            self.tree.Branch(v, self.var[v], v + "/D")

        jet15FileV2 = edm.FileInPath(
            "CommonFSQFramework/Core/test/MNxsectionAna/data/PUJet15V2.root"
        ).fullPath()  # MC gen distribution
        puFiles = {}
        puFiles["dj15_1"] = edm.FileInPath(
            "CommonFSQFramework/Core/test/MNxsectionAna/data/pu_dj15_1_0.root"
        ).fullPath()
        puFiles["dj15_1_05"] = edm.FileInPath(
            "CommonFSQFramework/Core/test/MNxsectionAna/data/pu_dj15_1_05.root"
        ).fullPath()
        puFiles["dj15_0_95"] = edm.FileInPath(
            "CommonFSQFramework/Core/test/MNxsectionAna/data/pu_dj15_0_95.root"
        ).fullPath()
        puFiles["j15_1"] = edm.FileInPath(
            "CommonFSQFramework/Core/test/MNxsectionAna/data/pu_j15_1_0.root"
        ).fullPath()
        puFiles["j15_1_05"] = edm.FileInPath(
            "CommonFSQFramework/Core/test/MNxsectionAna/data/pu_j15_1_05.root"
        ).fullPath()
        puFiles["j15_0_95"] = edm.FileInPath(
            "CommonFSQFramework/Core/test/MNxsectionAna/data/pu_j15_0_95.root"
        ).fullPath()

        self.lumiWeighters = {}
        self.lumiWeighters["_jet15_central"] = edm.LumiReWeighting(
            jet15FileV2, puFiles["j15_1"], "MC", "pileup")
        self.lumiWeighters["_jet15_puUp"] = edm.LumiReWeighting(
            jet15FileV2, puFiles["j15_1_05"], "MC", "pileup")
        self.lumiWeighters["_jet15_puDown"] = edm.LumiReWeighting(
            jet15FileV2, puFiles["j15_0_95"], "MC", "pileup")

        self.lumiWeighters["_dj15fb_central"] = edm.LumiReWeighting(
            jet15FileV2, puFiles["dj15_1"], "MC", "pileup")
        self.lumiWeighters["_dj15fb_puUp"] = edm.LumiReWeighting(
            jet15FileV2, puFiles["dj15_1_05"], "MC", "pileup")
        self.lumiWeighters["_dj15fb_puDown"] = edm.LumiReWeighting(
            jet15FileV2, puFiles["dj15_0_95"], "MC", "pileup")

        if self.HLT2015TempWorkaround:
            #self.jetGetter = JetGetter("PFAK4CHS", jetColOverride="recoPFAK4ChsCorrectedMyRhop4")
            #self.jetGetter = JetGetter("PFAK4CHS", jetColOverride="recoPFAK4ChsCorrectedp4")
            self.jetGetter = JetGetter(
                "PFAK4CHS", jetColOverride="hltAK4PFJetsCorrectedp4")
            #self.jetGetter = JetGetter("PFAK4CHS")
            #self.jetGetter = JetGetter("PFAK5CHS")
            #self.jetGetter = JetGetter("PF")
            self.jetGetter.disableGenJet()
            self.jetGetter.disableJetId()
            #self.jetGetter = GenJetProxy()
        else:
            self.jetGetter = JetGetter("PFAK5")
            #self.jetGetter = JetGetter("PFlegacy")
            self.jetGetter.disableGenJet()

        #self.jetGetter = BetterJetGetter("PFAK5")
        #self.jetGetter = BetterJetGetter("Calo")
        '''
        if self.isData:
            self.jetGetter = JetGetter("PFAK5") 
        else:
            self.jetGetter = JetGetter("PFlegacy") 
        '''

        self.varE = {}
        sys.stdout.flush()