Exemple #1
0
#add per-jet b-tag systematic weight
import os
import numpy as np
from PhysicsTools.Heppy.physicsutils.BTagWeightCalculator import BTagWeightCalculator
import ROOT

csvpath = os.environ['CMSSW_BASE'] + "/src/PhysicsTools/Heppy/data"
bweightcalc = BTagWeightCalculator(csvpath + "/csv_rwt_fit_hf_2015_12_14.root",
                                   csvpath + "/csv_rwt_fit_lf_2015_12_14.root")
bweightcalc.btag = "btag"


class Jet:
    pass


inf = open("jets.csv")

systs = [
    "nominal",
    "JESUp",
    "JESDown",
    "HFUp",
    "HFDown",
    "LFUp",
    "LFDown",
    "Stats1Up",
    "Stats1Down",
    "Stats2Up",
    "Stats2Down",
]
    NTupleVariable("axis2",   lambda x : getattr(x,'axis2', -20) , float, mcOnly=False,help="QG input variable: axis2"),
    NTupleVariable("mult",   lambda x : getattr(x,'mult', -20) , int, mcOnly=False,help="QG input variable: total multiplicity"),
    NTupleVariable("numberOfDaughters",   lambda x : x.numberOfDaughters(), int, mcOnly=False,help="number of daughters"),
    NTupleVariable("btagIdx",   lambda x : x.btagIdx, int, mcOnly=False,help="ranking in btag"),
    NTupleVariable("mcIdx",   lambda x : x.mcJet.index if hasattr(x,"mcJet") and x.mcJet is not None else -1, int, mcOnly=False,help="index of the matching gen jet"),
    NTupleVariable("pt_reg",lambda x : getattr(x,"pt_reg",-99), help="Regression"),
    NTupleVariable("pt_regVBF",lambda x : getattr(x,"pt_regVBF",-99), help="Regression for VBF"),
    NTupleVariable("blike_VBF",lambda x : getattr(x,"blike_VBF",-2), help="VBF blikelihood for SingleBtag dataset")
 ])


#add per-jet b-tag systematic weight
from PhysicsTools.Heppy.physicsutils.BTagWeightCalculator import BTagWeightCalculator
csvpath = os.environ['CMSSW_BASE']+"/src/HighMassVHbbAnalysis/Heppy/data/csv"
bweightcalc = BTagWeightCalculator(
    csvpath + "/csv_rwt_hf_IT_FlatSF_2015_07_27.root",
    csvpath + "/csv_rwt_lf_IT_FlatSF_2015_07_27.root"
)

for syst in ["JES", "LF", "HF", "Stats1", "Stats2", "cErr1", "cErr2"]:
    for sdir in ["Up", "Down"]:
        jetTypeVHbb.variables += [NTupleVariable("bTagWeight"+syst+sdir,
            lambda jet, sname=syst+sdir,bweightcalc=bweightcalc: bweightcalc.calcJetWeight(
                jet, kind="final", systematic=sname
            ), float, mcOnly=True, help="b-tag CSV weight, variating "+syst + " "+sdir
        )]
jetTypeVHbb.variables += [NTupleVariable("bTagWeight",
    lambda jet, bweightcalc=bweightcalc: bweightcalc.calcJetWeight(
        jet, kind="final", systematic="nominal",
    ), float, mcOnly=True, help="b-tag CSV weight, nominal"
)]
#add per-jet b-tag systematic weight
import os
import numpy as np
from PhysicsTools.Heppy.physicsutils.BTagWeightCalculator import BTagWeightCalculator
import ROOT

csvpath = os.environ['CMSSW_BASE']+"/src/PhysicsTools/Heppy/data"
bweightcalc = BTagWeightCalculator(
    csvpath + "/csv_rwt_fit_hf_2015_12_14.root",
    csvpath + "/csv_rwt_fit_lf_2015_12_14.root"
)
bweightcalc.btag = "btag"

class Jet:
    pass

inf = open("jets.csv")

systs = ["nominal", "JESUp", "JESDown", "HFUp", "HFDown", "LFUp", "LFDown", "Stats1Up", "Stats1Down", "Stats2Up", "Stats2Down",]

hs = {
    s: ROOT.TH1D("weight_"+s, "weight", 100, 0, 2) for s in systs
}

ws = {
    s: 1.0 for s in systs
}
iev_prev = 0
for line in inf.readlines():
    iev, ij, pt, eta, csv, fl = map(float, line.split(","))
    iev = int(iev)
from CMGTools.TTHAnalysis.treeReAnalyzer import *
from CMGTools.MonoXAnalysis.tools.PileUpReWeighter import PileUpReWeighter
from PhysicsTools.Heppy.physicsutils.BTagWeightCalculator import BTagWeightCalculator
import types

BTagReweight74X = lambda : BTagWeightCalculator("/afs/cern.ch/work/e/emanuele/public/monox/leptonsf/csv_rwt_fit_hf_2015_11_20.root",
                                                "/afs/cern.ch/work/e/emanuele/public/monox/leptonsf/csv_rwt_fit_lf_2015_11_20.root")

class EventVarsMonojet:
    def __init__(self):
        self.branches = [ "nMu10V", "nMu20T", "nEle10V", "nEle40T", "nTau18V", "nGamma15V", "nGamma175T", "nBTag15",
                          "dphijj", "dphijm", "weight", "events_ntot", "phmet_pt", "phmet_phi","SF_BTag"
                          ]
        btagreweight = BTagReweight74X()
        self._btagreweight = (btagreweight() if type(btagreweight) == types.FunctionType else btagreweight)
        self._btagreweight.btag = "btagCSV"
    def initSampleNormalization(self,sample_nevt):
        self.sample_nevt = sample_nevt        
    def listBranches(self):
        biglist = [ ("nJetClean", "I"), ("nTauClean", "I"), ("nLepSel", "I"),
                    ("iL","I",10,"nLepSel"), ("iJ","I",10,"nJetClean"), ("iT","I",3,"nTauClean"),
                    ("nJetClean30", "I"), ("nTauClean18V", "I") ] 
        for jfloat in "pt eta phi mass btagCSV rawPt leadClean".split():
            biglist.append( ("JetClean"+"_"+jfloat,"F",10,"nJetClean") )
        for tfloat in "pt eta phi".split():
            biglist.append( ("TauClean"+"_"+tfloat,"F",3,"nTauClean") )
        self.branches = self.branches + biglist
        return self.branches[:]
    # physics object multiplicity with the monojet analysis specific selections
    def lepIdVeto(self,lep):
        if lep.pt <= 10: return False