def makeJets(event, sample, level): ''' Add a list of filtered jets to the event (full list is required for lepton cross cleaning) ''' preTag = 'reco' if level == 'reco' else 'gen' tag = 'reco' if level == 'reco' else 'genLep' # load jets btag = 'bTag' if level == 'reco' else 'matchBParton' event.jets = getCollection(event, '%sJet' % preTag, ['pt', 'eta', 'phi', btag], 'n%sJet' % preTag) event.bjets = list(filter(lambda j: j[btag], event.jets)) # get (second) hardest bjets event.bj0 = { 'pt': getattr(event, '%sBj0_pt' % preTag), 'phi': getattr(event, '%sBj0_phi' % preTag), 'eta': getattr(event, '%sBj0_eta' % preTag) } event.bj1 = { 'pt': getattr(event, '%sBj1_pt' % preTag), 'phi': getattr(event, '%sBj1_phi' % preTag), 'eta': getattr(event, '%sBj1_eta' % preTag) } # Define leptonic b-jets event.bj0lep = getObjDict( event, '%sJet_' % preTag, ['pt', 'eta', 'phi'], getattr(event, '%sBjLeadlep_index' % preTag)) if getattr(event, '%sBjLeadlep_index' % preTag) >= 0 else nanJet() # event.bj0had = getObjDict( event, '%sJet_'%preTag, ['pt', 'eta', 'phi'], getattr( event, '%sBjLeadhad_index'%preTag ) ) if getattr( event, '%sBjLeadlep_index'%preTag ) >= 0 else nanJet() # Add extra vectors for p in [event.bj0, event.bj1, event.bj0lep]: addTransverseVector(p) addTLorentzVector(p) # Import additional functions/classes specified for the level of reconstruction if level == 'reco': from TTXPheno.Tools.objectSelection import isGoodRecoJet as isGoodJet else: from TTXPheno.Tools.objectSelection import isGoodGenJet as isGoodJet # selection checks event.foundBj0 = isGoodJet(event.bj0) # event.foundBj0lep = getattr( event, '%sBjLeadlep_index'%preTag ) >= 0 and isGoodJet( event.bj0lep ) # choose your selection on b-jets event.passing_bjets = event.foundBj0
def makeJets( event, sample, level ): ''' Add a list of filtered jets to the event (full list is required for lepton cross cleaning) ''' preTag = 'reco' if level == 'reco' else 'gen' tag = 'reco' if level == 'reco' else 'genLep' # Import additional functions/classes specified for the level of reconstruction if level == 'reco': from TTXPheno.Tools.objectSelection import isGoodRecoJet as isGoodJet else: from TTXPheno.Tools.objectSelection import isGoodGenJet as isGoodJet # load jets btag = 'bTag_medium' if level == 'reco' else 'matchBParton' event.jets = getCollection( event, '%sJet'%preTag, ['pt', 'eta', 'phi', btag, 'nNeutrals', 'nCharged' ], 'n%sJet'%preTag ) # event.jets = list( filter( lambda j: isGoodJet(j), event.jets ) ) # Define leptonic b-jets event.bj0lep = getObjDict( event, '%sJet_'%preTag, ['pt', 'eta', 'phi', 'nNeutrals', 'nCharged'], getattr( event, '%sBjLeadlep_index'%preTag ) ) if getattr( event, '%sBjLeadlep_index'%preTag ) >= 0 else nanJet() event.bj0had = getObjDict( event, '%sJet_'%preTag, ['pt', 'eta', 'phi', 'nNeutrals', 'nCharged'], getattr( event, '%sBjLeadhad_index'%preTag ) ) if getattr( event, '%sBjLeadhad_index'%preTag ) >= 0 else nanJet() # Define non-Z b-jets event.bjNonZlep = getObjDict( event, '%sJet_'%preTag, ['pt', 'eta', 'phi', 'nNeutrals', 'nCharged'], getattr( event, '%sBjNonZlep_index'%preTag ) ) if getattr( event, '%sBjNonZlep_index'%preTag ) >= 0 else nanJet() event.bjNonZhad = getObjDict( event, '%sJet_'%preTag, ['pt', 'eta', 'phi', 'nNeutrals', 'nCharged'], getattr( event, '%sBjNonZhad_index'%preTag ) ) if getattr( event, '%sBjNonZhad_index'%preTag ) >= 0 else nanJet() # get (second) hardest bjets event.bj0 = {'pt':getattr( event, '%sBj0_pt'%preTag ), 'phi':getattr( event, '%sBj0_phi'%preTag ), 'eta':getattr( event, '%sBj0_eta'%preTag ), 'nNeutrals':getattr( event, '%sBj0_nNeutrals'%preTag ), 'nCharged':getattr( event, '%sBj0_nCharged'%preTag )} event.bj1 = {'pt':getattr( event, '%sBj1_pt'%preTag ), 'phi':getattr( event, '%sBj1_phi'%preTag ), 'eta':getattr( event, '%sBj1_eta'%preTag ), 'nNeutrals':getattr( event, '%sBj0_nNeutrals'%preTag ), 'nCharged':getattr( event, '%sBj0_nCharged'%preTag )} # Add extra vectors for p in [event.bj0, event.bj1, event.bj0lep, event.bj0had, event.bjNonZlep, event.bjNonZhad]: addTransverseVector( p ) addTLorentzVector( p )