#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