Skip to content

Commit

Permalink
Merge pull request cms-sw#148 from gpetruc/multilepUpdates-CMG_MiniAO…
Browse files Browse the repository at this point in the history
…D_Lite_V6_0_from-CMSSW_7_0_6

Tools for gen-level studies, and susy multilepton updates
  • Loading branch information
gpetruc committed Nov 24, 2014
2 parents ac8d36d + 1f15595 commit dd02515
Show file tree
Hide file tree
Showing 20 changed files with 768 additions and 52 deletions.
11 changes: 7 additions & 4 deletions CMGTools/RootTools/python/analyzers/skimAnalyzerCount.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ class skimAnalyzerCount( Analyzer ):

def __init__(self, cfg_ana, cfg_comp, looperName):
super(skimAnalyzerCount, self).__init__(cfg_ana, cfg_comp, looperName)
self.useLumiBlocks = self.cfg_ana.useLumiBlocks if (hasattr(self.cfg_ana,'useLumiBlocks')) else True
self.useLumiBlocks = self.cfg_ana.useLumiBlocks if (hasattr(self.cfg_ana,'useLumiBlocks')) else False

def declareHandles(self):
super(skimAnalyzerCount, self).declareHandles()
Expand All @@ -27,7 +27,8 @@ def beginLoop(self):
self.counters.addCounter('SkimReport')
self.count = self.counters.counter('SkimReport')
self.count.register('All Events')
self.count.register('Sum Weights')
if self.cfg_comp.isMC:
self.count.register('Sum Weights')

if not self.useLumiBlocks:
print 'Will actually count events instead of accessing lumi blocks'
Expand All @@ -47,7 +48,8 @@ def beginLoop(self):

if self.useLumiBlocks:
self.count.inc('All Events',totalEvents)
self.count.inc('Sum Weights',totalEvents)
if self.cfg_comp.isMC:
self.count.inc('Sum Weights',totalEvents)
print 'Done -> proceeding with the analysis'
else:
print 'Failed -> will have to actually count events (this can happen if the input dataset is not a CMG one)'
Expand All @@ -58,5 +60,6 @@ def process(self, iEvent, event):
if not self.useLumiBlocks:
self.readCollections( iEvent )
self.count.inc('All Events')
self.count.inc('Sum Weights', self.mchandles['GenInfo'].product().weight())
if self.cfg_comp.isMC:
self.count.inc('Sum Weights', self.mchandles['GenInfo'].product().weight())
return True
9 changes: 7 additions & 2 deletions CMGTools/RootTools/python/fwlite/Looper.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
# import glob
import logging
import pprint
import time
from DataFormats.FWLite import Events, Handle
from CMGTools.RootTools.fwlite.Event import Event
from CMGTools.RootTools.fwlite.PythonPath import pythonpath
Expand Down Expand Up @@ -35,7 +36,7 @@ def __init__( self, name, cfg_comp, sequence, nEvents=None, firstEvent=0, nPrint
self.classes = {}
#TODO: should be a diclist?
self.analyzers = map( self._buildAnalyzer, sequence )
self.nEvents = nEvents
self.nEvents = getattr(cfg_comp, 'maxEvents', nEvents)
self.firstEvent = firstEvent
self.nPrint = int(nPrint)
# initialize FWLite chain on input file:
Expand Down Expand Up @@ -118,7 +119,11 @@ def loop(self):
# if iEv == nEvents:
# break
if iEv%100 ==0:
print 'event', iEv
if iEv == 100:
print 'event', iEv
self.start_time = time.time()
elif iEv > 100:
print 'event %d (%.1f ev/s)' % (iEv, (iEv-100)/float(time.time() - self.start_time))
self.process( iEv )
if iEv<self.nPrint:
print self.event
Expand Down
141 changes: 141 additions & 0 deletions CMGTools/TTHAnalysis/cfg/run_susyGenLevelMultilepton_cfg.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,141 @@
##########################################################
## CONFIGURATION FOR SUSY MULTILEPTON TREES ##
## skim condition: >= 2 loose leptons, no pt cuts or id ##
##########################################################

import CMGTools.RootTools.fwlite.Config as cfg
from CMGTools.RootTools.fwlite.Config import printComps
from CMGTools.RootTools.RootTools import *

#Load all analyzers
from CMGTools.TTHAnalysis.analyzers.susyCore_modules_cff import *

# --- LEPTON SKIMMING ---
ttHLepSkim.minLeptons = 2
ttHLepSkim.maxLeptons = 999

ttHGenLevel = cfg.Analyzer(
'ttHGenLevelOnlyStudy',
muon_pt_min = 5.,
electron_pt_min = 7.,
)


from CMGTools.TTHAnalysis.samples.samples_8TeV_v517 import triggers_mumu, triggers_ee, triggers_mue, triggers_1mu
# Tree Producer
treeProducer = cfg.Analyzer(
'treeProducerSusyGenLevelOnly',
vectorTree = True,
saveTLorentzVectors = False, # can set to True to get also the TLorentzVectors, but trees will be bigger
PDFWeights = PDFWeights,
# triggerBits = {} # no HLT
)


#-------- SAMPLES AND TRIGGERS -----------
from CMGTools.TTHAnalysis.samples.samples_8TeV_v517 import *
Test = kreator.makePrivateMCComponent('Test', '/store/cmst3/user/gpetrucc/maiani', ['m100_g050_3mu.GEN.root'] )
WZ3l_ascms = kreator.makePrivateMCComponent('WZ3l_ascms', '/store/cmst3/user/gpetrucc/maiani/tests', ['xs_wz_3l_ascms.GEN.root'])
WZ3mu_ascms = kreator.makePrivateMCComponent('WZ3mu_ascms', '/store/cmst3/user/gpetrucc/maiani/tests', ['xs_wz_3mu_ascms.GEN.root'])
WZ3mu_offshell = kreator.makePrivateMCComponent('WZ3mu_offshell', '/store/cmst3/user/gpetrucc/maiani/tests', ['xs_wz_3mu_offshell.GEN.root'])

GEN_S3m_lo = kreator.makePrivateMCComponent('GEN_S3m_lo', '/store/cmst3/user/gpetrucc/lmutau/madtests/', [ 'lmutau_lo_test.GEN.root' ])
GEN_S3m_lo_012j = kreator.makePrivateMCComponent('GEN_S3m_lo_012j', '/store/cmst3/user/gpetrucc/lmutau/madtests/', [ 'lmutau_lo_012j_test.GEN.root' ])
GEN_S3m_lo_01j = kreator.makePrivateMCComponent('GEN_S3m_lo_01j', '/store/cmst3/user/gpetrucc/lmutau/madtests/', [ 'lmutau_lo_01j_test.GEN.root' ])
GEN_S3m_nlo = kreator.makePrivateMCComponent('GEN_S3m_nlo', '/store/cmst3/user/gpetrucc/lmutau/madtests/', [ 'lmutau_nlo_test.GEN.root' ])
GEN_S3m_nlo_01j = kreator.makePrivateMCComponent('GEN_S3m_nlo_01j', '/store/cmst3/user/gpetrucc/lmutau/madtests/', [ 'lmutau_nlo_01j_test.GEN.root', 'lmutau_nlo_01j_test.2.GEN.root' ])
GEN_S3m_lo_direct = kreator.makePrivateMCComponent('GEN_S3m_lo_direct', '/store/cmst3/user/gpetrucc/lmutau/madtests/', [ 'lmutau_lo_direct_test.GEN.root' ])

GEN_Bonly_S3m = kreator.makePrivateMCComponent('GEN_Bonly_S3m', '/store/cmst3/user/gpetrucc/lmutau/', [ 'Bonly_S3m_m100_g050_8TeV.GEN.root' ])
GEN_SBI_S3m_m100_g050 = kreator.makePrivateMCComponent('GEN_SBI_S3m_m100_g050', '/store/cmst3/user/gpetrucc/lmutau/', [ 'SBI_S3m_m100_g050_8TeV.GEN.root' ])
GEN_SBI_S3m_m105_g052 = kreator.makePrivateMCComponent('GEN_SBI_S3m_m105_g052', '/store/cmst3/user/gpetrucc/lmutau/', [ 'SBI_S3m_m105_g052_8TeV.GEN.root' ])
GEN_SBI_S3m_m110_g055 = kreator.makePrivateMCComponent('GEN_SBI_S3m_m110_g055', '/store/cmst3/user/gpetrucc/lmutau/', [ 'SBI_S3m_m110_g055_8TeV.GEN.root' ])
GEN_SBI_S3m_m115_g057 = kreator.makePrivateMCComponent('GEN_SBI_S3m_m115_g057', '/store/cmst3/user/gpetrucc/lmutau/', [ 'SBI_S3m_m115_g057_8TeV.GEN.root' ])
GEN_SBI_S3m_m120_g060 = kreator.makePrivateMCComponent('GEN_SBI_S3m_m120_g060', '/store/cmst3/user/gpetrucc/lmutau/', [ 'SBI_S3m_m120_g060_8TeV.GEN.root' ])
GEN_SBI_S3m_m125_g062 = kreator.makePrivateMCComponent('GEN_SBI_S3m_m125_g062', '/store/cmst3/user/gpetrucc/lmutau/', [ 'SBI_S3m_m125_g062_8TeV.GEN.root' ])
GEN_SBI_S3m_m70_g035 = kreator.makePrivateMCComponent('GEN_SBI_S3m_m70_g035', '/store/cmst3/user/gpetrucc/lmutau/', [ 'SBI_S3m_m70_g035_8TeV.GEN.root' ])
GEN_SBI_S3m_m75_g037 = kreator.makePrivateMCComponent('GEN_SBI_S3m_m75_g037', '/store/cmst3/user/gpetrucc/lmutau/', [ 'SBI_S3m_m75_g037_8TeV.GEN.root' ])
GEN_SBI_S3m_m80_g040 = kreator.makePrivateMCComponent('GEN_SBI_S3m_m80_g040', '/store/cmst3/user/gpetrucc/lmutau/', [ 'SBI_S3m_m80_g040_8TeV.GEN.root' ])
GEN_SBI_S3m_m85_g042 = kreator.makePrivateMCComponent('GEN_SBI_S3m_m85_g042', '/store/cmst3/user/gpetrucc/lmutau/', [ 'SBI_S3m_m85_g042_8TeV.GEN.root' ])
GEN_SBI_S3m_m90_g045 = kreator.makePrivateMCComponent('GEN_SBI_S3m_m90_g045', '/store/cmst3/user/gpetrucc/lmutau/', [ 'SBI_S3m_m90_g045_8TeV.GEN.root' ])
GEN_SBI_S3m_m95_g047 = kreator.makePrivateMCComponent('GEN_SBI_S3m_m95_g047', '/store/cmst3/user/gpetrucc/lmutau/', [ 'SBI_S3m_m95_g047_8TeV.GEN.root' ])
GEN_Sonly_S3m_m100_g050 = kreator.makePrivateMCComponent('GEN_Sonly_S3m_m100_g050', '/store/cmst3/user/gpetrucc/lmutau/v1/', [ 'S3m_m100_g050_8TeV.GEN.root' ])
GEN_Sonly_S3m_m105_g052 = kreator.makePrivateMCComponent('GEN_Sonly_S3m_m105_g052', '/store/cmst3/user/gpetrucc/lmutau/v1/', [ 'S3m_m105_g052_8TeV.GEN.root' ])
GEN_Sonly_S3m_m110_g055 = kreator.makePrivateMCComponent('GEN_Sonly_S3m_m110_g055', '/store/cmst3/user/gpetrucc/lmutau/v1/', [ 'S3m_m110_g055_8TeV.GEN.root' ])
GEN_Sonly_S3m_m115_g057 = kreator.makePrivateMCComponent('GEN_Sonly_S3m_m115_g057', '/store/cmst3/user/gpetrucc/lmutau/v1/', [ 'S3m_m115_g057_8TeV.GEN.root' ])
GEN_Sonly_S3m_m120_g060 = kreator.makePrivateMCComponent('GEN_Sonly_S3m_m120_g060', '/store/cmst3/user/gpetrucc/lmutau/v1/', [ 'S3m_m120_g060_8TeV.GEN.root' ])
GEN_Sonly_S3m_m125_g062 = kreator.makePrivateMCComponent('GEN_Sonly_S3m_m125_g062', '/store/cmst3/user/gpetrucc/lmutau/v1/', [ 'S3m_m125_g062_8TeV.GEN.root' ])
GEN_Sonly_S3m_m70_g035 = kreator.makePrivateMCComponent('GEN_Sonly_S3m_m70_g035', '/store/cmst3/user/gpetrucc/lmutau/v1/', [ 'S3m_m70_g035_8TeV.GEN.root' ])
GEN_Sonly_S3m_m75_g037 = kreator.makePrivateMCComponent('GEN_Sonly_S3m_m75_g037', '/store/cmst3/user/gpetrucc/lmutau/v1/', [ 'S3m_m75_g037_8TeV.GEN.root' ])
GEN_Sonly_S3m_m80_g040 = kreator.makePrivateMCComponent('GEN_Sonly_S3m_m80_g040', '/store/cmst3/user/gpetrucc/lmutau/v1/', [ 'S3m_m80_g040_8TeV.GEN.root' ])
GEN_Sonly_S3m_m85_g042 = kreator.makePrivateMCComponent('GEN_Sonly_S3m_m85_g042', '/store/cmst3/user/gpetrucc/lmutau/v1/', [ 'S3m_m85_g042_8TeV.GEN.root' ])
GEN_Sonly_S3m_m90_g045 = kreator.makePrivateMCComponent('GEN_Sonly_S3m_m90_g045', '/store/cmst3/user/gpetrucc/lmutau/v1/', [ 'S3m_m90_g045_8TeV.GEN.root' ])
GEN_Sonly_S3m_m95_g047 = kreator.makePrivateMCComponent('GEN_Sonly_S3m_m95_g047', '/store/cmst3/user/gpetrucc/lmutau/v1/', [ 'S3m_m95_g047_8TeV.GEN.root' ])


### ====== SUSY: PRIVATE PRODUCTIONS ==========
GEN_T2tt_py8had = kreator.makePrivateMCComponent('GEN_T2tt_py8had', '/store/cmst3/user/gpetrucc/SUSY/TestProd/T2tt/', [ 'T2tt_onshell_pyt8had.root' ] + [ "T2tt_onshell_pyt8had.run_0%d_chunk_%d.root" % (i,j) for i in 2,3,4,5, for j in 0,1,2,3,4 ] )
GEN_T2tt_py8dec_py8had = kreator.makePrivateMCComponent('GEN_T2tt_py8dec_py8had', '/store/cmst3/user/gpetrucc/SUSY/TestProd/T2tt/', [ 'T2tt_onshell_py8decay_pyt8had.root' ] + [ "T2tt_onshell_py8decay_pyt8had.run_0%d_chunk_%d.root" % (i,j) for i in 2,3,4,5, for j in 0,1,2,3,4 ])
GEN_T2tt_mgdec_py8had = kreator.makePrivateMCComponent('GEN_T2tt_mgdec_py8had', '/store/cmst3/user/gpetrucc/SUSY/TestProd/T2tt/', [ 'T2tt_decayed_pyt8had.root' ] + [ "T2tt_decayed_pyt8had.run_0%d_chunk_%d.root" % (i,j) for i in 3,4,5,6, for j in 0,1,2,3,4 ])

GEN_T2tt_py8had_ch = kreator.makePrivateMCComponent('GEN_T2tt_py8had_ch', '/store/cmst3/user/gpetrucc/SUSY/TestProd/T2tt/', [ 'T2tt_onshell_pyt8had_chargino.root' ]+[ "T2tt_onshell_pyt8had_chargino.run_0%d_chunk_0%d.root" % (i,j) for i in 2,3,4,5, for j in 0,1,2,3,4 ] )
GEN_T2tt_mgdec_py8had_ch = kreator.makePrivateMCComponent('GEN_T2tt_mgdec_py8had_ch', '/store/cmst3/user/gpetrucc/SUSY/TestProd/T2tt/', [ "T2tt_decayed_pyt8had_chargino.run_0%d_chunk_0%d.root" % (i,j) for i in (1,) for j in 0,1,2,3,4 ])
GEN_T2tt_mgdec_py8had_both = kreator.makePrivateMCComponent('GEN_T2tt_mgdec_py8had_both', '/store/cmst3/user/gpetrucc/SUSY/TestProd/T2tt/', [ "T2tt_decayed_pyt8had_both.run_0%d_chunk_0%d.root" % (i,j) for i in 1,2 for j in 0,1,2,3,4 ])

GEN_T1tttt_mGo800_mStop300_mChi280_mg5 = kreator.makePrivateMCComponent('GEN_T1tttt_mGo800_mStop300_mChi280_mg5', '/store/cmst3/user/gpetrucc/SUSY/Prod/T1tttt_mGo800_mStop300_mChi280_mg5dec_pythia8/', [ "T1tttt_mGo800_mStop300_mChi280_mg5dec_pythia8.run_%02d_chunk_%02d.root" % (i,j) for i in (1,2) for j in xrange(10) ])
#GEN_T1tttt_mGo1300_mStop300_mChi280_mg5 = kreator.makePrivateMCComponent('GEN_T1tttt_mGo1300_mStop300_mChi280_mg5', '/store/cmst3/user/gpetrucc/SUSY/Prod/T1tttt_mGo1300_mStop300_mChi280_mg5dec_pythia8/', [ "T1tttt_mGo1300_mStop300_mChi280_mg5dec_pythia8.run_%02d_chunk_%02d.root" % (i,j) for i in (1,2) for j in xrange(10) ])
GEN_T1tttt_mGo800_mStop300_mCh285_mChi280_mg5 = kreator.makePrivateMCComponent('GEN_T1tttt_mGo800_mStop300_mCh285_mChi280_mg5', '/store/cmst3/user/gpetrucc/SUSY/Prod/T1tttt_mGo800_mStop300_mCh285_mChi280_mg5dec_pythia8/', [ "T1tttt_mGo800_mStop300_mCh285_mChi280_mg5dec_pythia8.run_%02d_chunk_%d.root" % (i,j) for i in (1,) for j in xrange(20) ])
#GEN_T1tttt_mGo1300_mStop300_mCh285_mChi280_mg5 = kreator.makePrivateMCComponent('GEN_T1tttt_mGo1300_mStop300_mCh285_mChi280_mg5', '/store/cmst3/user/gpetrucc/SUSY/Prod/T1tttt_mGo1300_mStop300_mCh285_mChi280_mg5dec_pythia8/', [ "T1tttt_mGo1300_mStop300_mCh285_mChi280_mg5dec_pythia8.run_%02d_chunk_%02d.root" % (i,j) for i in (1,2) for j in xrange(10) ])

### ====== SUSY: PRIVATE DECAY+HADRONIZATION OF CENTRALLY PRODUCED LHE FILES ==========
eosGenFiles = [ x.strip() for x in open(os.environ["CMSSW_BASE"]+"/src/CMGTools/TTHAnalysis/python/samples/genLevel-susySMS-13TeV", "r") ]
print eosGenFiles
def mkGen(name,what):
return kreator.makePrivateMCComponent(name, '/'+what, [ f for f in eosGenFiles if ("/%s/"%what) in f ] )
GEN_T1tttt_2J_mGo800_mStop300_mChi280_py8 = mkGen('GEN_T1tttt_2J_mGo800_mStop300_mChi280_py8', 'T1ttt_2J_mGo800_mStop300_mChi280_pythia8-4bodydec')
GEN_T1tttt_2J_mGo1300_mStop300_mChi280_py8 = mkGen('GEN_T1tttt_2J_mGo1300_mStop300_mChi280_py8', 'T1ttt_2J_mGo1300_mStop300_mChi280_pythia8-4bodydec')
GEN_T1tttt_2J_mGo800_mStop300_mCh285_mChi280_py8 = mkGen('GEN_T1tttt_2J_mGo800_mStop300_mCh285_mChi280_py8', 'T1ttt_2J_mGo800_mStop300_mCh285_mChi280_pythia8-23bodydec')
GEN_T1tttt_2J_mGo1300_mStop300_mCh285_mChi280_py8 = mkGen('GEN_T1tttt_2J_mGo1300_mStop300_mCh285_mChi280_py8', 'T1ttt_2J_mGo1300_mStop300_mCh285_mChi280_pythia8-23bodydec')
GEN_T1tttt_2J_mGo1300_mStop300_mCh285_mChi280_py8_dilep = mkGen('GEN_T1tttt_2J_mGo1300_mStop300_mCh285_mChi280_py8_dilep', 'T1tttt_2J_mGo1300_mStop300_mCh285_mChi280_23bodydec_dilepfilter')


#selectedComponents = [ GEN_S3m_lo, GEN_S3m_lo_012j, GEN_S3m_lo_01j, GEN_S3m_nlo, GEN_S3m_nlo_01j, GEN_S3m_lo_direct ]
selectedComponents = [ GEN_T2tt_py8had, GEN_T2tt_py8dec_py8had, GEN_T2tt_mgdec_py8had ]
#selectedComponents = [ GEN_Bonly_S3m, GEN_SBI_S3m_m100_g050, GEN_SBI_S3m_m105_g052, GEN_SBI_S3m_m110_g055, GEN_SBI_S3m_m115_g057, GEN_SBI_S3m_m120_g060, GEN_SBI_S3m_m125_g062, GEN_SBI_S3m_m70_g035, GEN_SBI_S3m_m75_g037, GEN_SBI_S3m_m80_g040, GEN_SBI_S3m_m85_g042, GEN_SBI_S3m_m90_g045, GEN_SBI_S3m_m95_g047, GEN_Sonly_S3m_m100_g050, GEN_Sonly_S3m_m105_g052, GEN_Sonly_S3m_m110_g055, GEN_Sonly_S3m_m115_g057, GEN_Sonly_S3m_m120_g060, GEN_Sonly_S3m_m125_g062, GEN_Sonly_S3m_m70_g035, GEN_Sonly_S3m_m75_g037, GEN_Sonly_S3m_m80_g040, GEN_Sonly_S3m_m85_g042, GEN_Sonly_S3m_m90_g045, GEN_Sonly_S3m_m95_g047 ]
#selectedComponents = [ GEN_Bonly_S3m, GEN_SBI_S3m_m110_g055, GEN_Sonly_S3m_m110_g055 ]
selectedComponents = [ GEN_T1tttt_2J_mGo800_mStop300_mChi280_py8, GEN_T1tttt_2J_mGo1300_mStop300_mChi280_py8, GEN_T1tttt_2J_mGo800_mStop300_mCh285_mChi280_py8, GEN_T1tttt_2J_mGo1300_mStop300_mCh285_mChi280_py8 ]
#selectedComponents = [ GEN_T2tt_mgdec_py8had_ch, GEN_T2tt_mgdec_py8had_both, GEN_T2tt_py8had_ch ]
#selectedComponents = [ GEN_T2tt_py8had, GEN_T2tt_mgdec_py8had ]
selectedComponents = [ GEN_T1tttt_2J_mGo1300_mStop300_mCh285_mChi280_py8, GEN_T1tttt_2J_mGo1300_mStop300_mCh285_mChi280_py8_dilep ]

for c in selectedComponents: c.splitFactor = 100
#-------- SEQUENCE

sequence = cfg.Sequence([
skimAnalyzer,
ttHGenLevel,
ttHLepSkim,
treeProducer,
])


#-------- HOW TO RUN
test = 0
if test==1:
# test a single component, using a single thread.
comp = GEN_T2tt_mgdec_py8had_both
comp.files = comp.files[:1]
selectedComponents = [comp]
comp.splitFactor = 1
elif test==2:
# test all components (1 thread per component).
for comp in selectedComponents:
comp.splitFactor = 1
comp.files = comp.files[:1]



config = cfg.Config( components = selectedComponents,
sequence = sequence )

printComps(config.components, True)
1 change: 1 addition & 0 deletions CMGTools/TTHAnalysis/python/analyzers/ntupleTypes.py
Original file line number Diff line number Diff line change
Expand Up @@ -284,6 +284,7 @@
NTupleVariable("eip3d", lambda x : x.d3d.error(), help="Uncertainty on the 3D distance from the PV [cm]"),
NTupleVariable("sip3d", lambda x : x.d3d.significance(), help="S_{ip3d} with respect to PV (absolute value)"),
NTupleVariable("cosTheta", lambda x : x.cosTheta, help="Cosine of the angle between the 3D displacement and the momentum"),
NTupleVariable("mva", lambda x : x.mva, help="MVA discriminator"),
NTupleVariable("jetPt", lambda x : x.jet.pt() if x.jet != None else 0, help="pT of associated jet"),
NTupleVariable("jetBTag", lambda x : x.jet.btag('combinedSecondaryVertexBJetTags') if x.jet != None else -99, help="CSV b-tag of associated jet"),
NTupleVariable("mcMatchNTracks", lambda x : x.mcMatchNTracks, int, mcOnly=True, help="Number of mc-matched tracks in SV"),
Expand Down
Loading

0 comments on commit dd02515

Please sign in to comment.