def makeJets( event, sample, level ): ''' Add a list of filtered jets to the event (full list is required for lepton cross cleaning) ''' # 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 )} # Add extra vectors for p in [event.bj0, event.bj1]: addTransverseVector( p ) addTLorentzVector( p ) event.ht = sum( [ j["pt"] for j in event.jets ] ) # 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 ) if len(event.jets) > 1: event.foundBj1 = isGoodJet( event.bj1 ) else: event.foundBj1 = True # choose your selection on b-jets event.passing_bjets = event.foundBj0 and event.foundBj1
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