Пример #1
0
def config_analysis(alg_list, args):

    alg_list.append(
        build_electron(do_cutflow=False,
                       do_hists=False,
                       evalPID=None,
                       applyCorrections=False))

    alg_list.append(
        build_muon(do_cutflow=False,
                   do_hists=False,
                   evalPID=None,
                   applyCorrections=False))

    alg_list.append(
        build_photon(do_cutflow=False,
                     do_hists=False,
                     evalPID=None,
                     doEVeto=False,
                     applyCorrections=False))

    alg_list.append(build_jet(do_cutflow=False, do_hists=False))

    # just for pileup reweighting
    alg_list.append(weight_event(args))

    alg_list.append(Filter('BuildTriggerBits'))

    trig_filt = Filter('FilterTrigger')
    #trig_filt.cut_trigger = ' ==48 ' #HLT_Photon36_CaloId10_Iso50_Photon22_CaloId10_Iso50_v
    trig_filt.cut_trigger = '==17 | == 18 | == 19 | == 13 | == 14 | == 9 | == 22 '  # HLT_Ele27_WP80 || HLT_IsoMu24_eta2p1 || HLT_IsoMu24 || HLT_Mu17_TkMu8 || HLT_Mu17_Mu8 || HLT_Ele17_CaloIdT_CaloIsoVL_TrkIdVL_TrkIsoVL_Ele8_CaloIdT_CaloIsoVL_TrkIdVL_TrkIsoVL || HLT_Ele17_CaloIdT_TrkIdVL_CaloIsoVL_TrkIsoVL_Ele8_CaloIdT_TrkIdVL_CaloIsoVL_TrkIsoVL

    alg_list.append(trig_filt)
Пример #2
0
def make_final_elel(alg_list, args):

    el_pt = args.get('el_pt', ' > 25 ')

    # order should be muon, electron, photon, jet
    alg_list.append(filter_muon())
    alg_list.append(filter_electron(el_pt))
    alg_list.append(filter_photon())
    alg_list.append(filter_jet())

    filter_trig = filter_trigger()
    filter_trig.cut_bits = ' == 28 | == 48'
    alg_list.append(filter_trig)

    filtermet = filter_met()
    # run the met filter, save the flags but do not filter out events
    #filtermet.cut_metfilter_bits = ' ==1 & ==2 & ==7 & == 10 & ==12 & ==100 & ==101'
    alg_list.append(filtermet)

    filter_event = Filter('FilterEvent')
    filter_event.cut_el_n = ' == 2 '

    alg_list.append(filter_event)

    alg_list.append(Filter('MakePhotonCountVars'))
    alg_list.append(Filter('BuildEventVars'))
    alg_list.append(build_truth(args))
Пример #3
0
def filter_photon( alg_list, args ) :

    pt_cut = args.get('pt_cut' , ' > 10 ' )
    leadpt_cut = args.get('leadpt_cut' , None )
    aeta_cut = args.get('aeta_cut' , None )
    dr_cut = args.get('dr_cut' , None )
    nph_cut = args.get('nph_cut' , ' == 0 ' )
    isPromptFS_cut = args.get('isPromptFS_cut', ' == True ')
    fhpfs_cut = args.get('fhpfs_cut', None)
    isr_cut = args.get('isr_cut' , None )

    filter_event = Filter('FilterPhoton')
    filter_event.cut_genph_pt = pt_cut
    if leadpt_cut:
        filter_event.cut_lead_genph_pt = leadpt_cut
    if aeta_cut:
        filter_event.cut_genph_aeta = aeta_cut
    if dr_cut:
        filter_event.cut_genph_dr = dr_cut
    filter_event.cut_n_gen_phot = nph_cut
    if isPromptFS_cut:
        filter_event.cut_genph_isPromptFS = isPromptFS_cut
    if fhpfs_cut:
        filter_event.cut_genph_FHPFS = fhpfs_cut
    if isr_cut:
        filter_event.cut_genph_isr = isr_cut

    alg_list.append( filter_event )
Пример #4
0
def get_electron_filter(id):

    filt = Filter('FilterElectron')
    setattr(filt, 'cut_el_%s' % id, 'True')
    filt.cut_el_pt = ' > 25'

    return filt
Пример #5
0
def config_analysis(alg_list, args):
    """ Configure analysis modules. Order is preserved """

    jet_filt = Filter('FilterJet')
    jet_filt.cut_pt = '> 15'
    alg_list.append(jet_filt)

    #ele_filt = Filter('FilterElec')
    #ele_filt.cut_pt = '> 10'
    #alg_list.append(ele_filt)

    #mu_filt = Filter('FilterMuon')
    #mu_filt.cut_pt = '> 10'
    #alg_list.append(mu_filt)

    # should work in general, but only using for diphoton data
    evt_filt = Filter('FilterEvent')
    evt_filt.cut_el_ph_mindr = '< 0.1'
    evt_filt.cut_nMunElOlapPt5 = ' > 0 '
    #evt_filt.add_hist( 'cut_el_ph_mindr', 50, 0, 1 )
    #evt_filt.do_cutflow=True

    ##evt_filt.cut_nPho = '> 0'

    alg_list.append(evt_filt)

    trig_filt = Filter('FilterTrigger')
    #trig_filt.cut_trigger = '==1 | ==17 | == 18 | == 19' #diphoton | electron | muon
    #trig_filt.cut_trigger = '==17 | == 18 | == 19' # electron | muon
    #trig_filt.cut_trigger = '== 18 | == 19' #muon
    #trig_filt.cut_trigger = '==17' #electron
    trig_filt.cut_trigger = '==17 | == 18 | == 19 | ==1 | ==4 | == 8 | ==23 | ==48 | ==49 | ==50 | == 51 '  # electron | muon | photon

    alg_list.append(trig_filt)
Пример #6
0
def config_analysis(alg_list, args):

    #alg_list.append( build_electron( do_cutflow=True, do_hists=True, evalPID='mvaNonTrig' ) )
    alg_list.append(
        build_electron(do_cutflow=False,
                       do_hists=False,
                       evalPID=None,
                       applyCorrections=True))
    alg_list.append(
        build_muon(do_cutflow=False, do_hists=False, applyCorrections=True))

    ## filter out a lepton
    #filter_evt = Filter( 'FilterEvent' )
    #filter_evt.cut_mu_n = ' > 0 '
    #alg_list.append(filter_evt)

    alg_list.append(
        build_photon(do_cutflow=False,
                     do_hists=False,
                     evalPID=None,
                     doEVeto=False))
    alg_list.append(build_jet(do_cutflow=False, do_hists=False))

    # just for pileup reweighting
    alg_list.append(weight_event(args))

    trig_filt = Filter('FilterTrigger')
    ##trig_filt.cut_trigger = ' ==48 ' #HLT_Photon36_CaloId10_Iso50_Photon22_CaloId10_Iso50_v
    trig_filt.cut_trigger = '==17 | == 18 | == 19'  # electron | muon
Пример #7
0
def get_photon_filter(id):

    filt = Filter('FilterPhoton')
    filt.cut_ph_eleVeto = ' == False'
    filt.cut_el_ph_dr = ' > 0.2 '
    #setattr( filt, 'cut_ph_%s' %id, 'True' )

    return filt
Пример #8
0
def config_analysis(alg_list):

    evt_filt = Filter('FilterBasicEvent')
    evt_filt.cut_nPhot = '> 0'
    #evt_filt.cut_nPhotLepMom = '== 1'
    evt_filt.cut_nPhotWMom = '== 1'
    evt_filt.cut_nPhotQuarkMom = '== 1'
    alg_list.append(evt_filt)
Пример #9
0
def config_analysis( alg_list ) :
    """ Configure analysis modules. Order is preserved """

    
    filter_event = Filter('FilterEvent')
    #filter_event.cut_mcphoton = ' == True ' #real photons
    filter_event.cut_mcphoton = ' == False ' #fake photons

    alg_list.append( filter_event )
Пример #10
0
def config_analysis(alg_list):
    """ Configure analysis modules. Order is preserved """

    build_photon = Filter('BuildPhoton')
    #build_photon.cut_truth_match = ' == False'
    build_photon.cut_truth_match = ' == True'
    build_photon.cut_truth_match_ptdiff = ' < 5'

    alg_list.append(build_photon)
Пример #11
0
def get_electron_sf(options):

    base_path = '%s/TreeFilter/ApplyScaleFactors/data' % _workarea

    electron_sf = Filter('AddElectronSF')

    electron_sf.add_var('FilePathTrig',
                        '%s/electrons_scale_factors.root' % base_path)

    return electron_sf
Пример #12
0
def filter_mtres(alg_list, args):

    mtres_cut = args.get('mtres_cut', None)

    if mtres_cut is not None:

        filter_event = Filter('FilterMTRes')
        filter_event.cut_mtres = mtres_cut

        alg_list.append(filter_event)
Пример #13
0
def filter_wpt( alg_list, args ) :

    truewpt_cut = args.get('truewpt_cut', None )

    if truewpt_cut is not None :

        filter_event = Filter('FilterTrueWPt')
        filter_event.cut_truewpt = truewpt_cut

        alg_list.append( filter_event )
Пример #14
0
def filter_genht(alg_list, args):

    trueht_cut = args.get('trueht_cut', None)

    if trueht_cut is not None:

        filter_event = Filter('FilterTrueHT')
        filter_event.cut_trueht = trueht_cut

        alg_list.append(filter_event)
Пример #15
0
def make_final_mumu(alg_list, args):

    mu_pt = args.get('mu_pt', ' > 25 ')
    ph_id = args.get('ph_id', 'vid_medium')

    # order should be muon, electron, photon, jet
    alg_list.append(filter_muon(mu_pt, do_cutflow=True, do_hists=True))
    alg_list.append(filter_electron(do_cutflow=True, do_hists=True))
    alg_list.append(filter_photon(do_cutflow=True, do_hists=True,
                                  id_cut=ph_id))
    alg_list.append(filter_jet())

    filter_trig = filter_trigger()
    filter_trig.cut_bits = ' == 9 | == 10 '
    alg_list.append(filter_trig)

    filtermet = filter_met()
    # run the met filter, save the flags but do not filter out events
    #filtermet.cut_metfilter_bits = ' ==1 & ==2 & ==7 & == 10 & ==12 & ==100 & ==101'
    alg_list.append(filtermet)

    filter_event = Filter('FilterEvent')
    filter_event.cut_mu_n = ' == 2 '
    filter_event.do_cutflow = True
    filter_event.add_var('evalCutflow', "true")
    filter_event.evalCutflow = True

    alg_list.append(filter_event)

    alg_list.append(Filter('MakePhotonCountVars'))
    alg_list.append(Filter('BuildEventVars'))
    alg_list.append(build_truth(args))
Пример #16
0
def make_final_mu(alg_list, args):

    el_pt = args.get('el_pt', ' > 10 ')
    mu_pt = args.get('mu_pt', ' > 10 ')
    ph_pt = args.get('ph_pt', ' > 15 ')
    muphtrig = args.get('muphtrig', 'False')
    phot_vars = args.get('phot_vars', ' False ')
    phot_id = args.get('phot_id', 'medium')
    ph_eta = args.get('ph_eta', None)
    sec_lep_veto = args.get('sec_lep_veto', 'True')
    unblind = args.get('unblind', 'False')
    invertIso = args.get('invertIso', False)

    # order should be muon, electron, photon, jet
    alg_list.append(filter_muon(mu_pt, invertIso=invertIso))
    alg_list.append(filter_electron(el_pt))
    alg_list.append(filter_photon(ph_pt, id_cut=phot_id, ieta_cut=ph_eta))
    alg_list.append(filter_jet())

    filter_trig = filter_trigger()
    filter_trig.cut_bits = ' == 23 | == 31 '
    alg_list.append(filter_trig)

    filter_event = Filter('FilterEvent')
    filter_event.cut_mu_n = ' == 1 '
    filter_event.cut_mu_pt30_n = ' == 1 '

    alg_list.append(filter_event)

    alg_list.append(Filter('MakePhotonCountVars'))
    event_vars = Filter('BuildEventVars')
    event_vars.add_var('year', theyear)
    alg_list.append(event_vars)
    alg_list.append(build_truth(args))
Пример #17
0
 def __init__(self, transition_duration, total_duration, fps, width, height, maxzoom, preserve_first, type = SlideTransitionType.alternate, outstreamprefix="ftf"):
     Filter.__init__(self, outstreamprefix)
     self._transition_duration = transition_duration
     self._total_duration = total_duration
     self._width = width
     self._height = height
     self._maxzoom = maxzoom
     self._slide_duration = total_duration - transition_duration
     self._frames = int(math.ceil(self._slide_duration * fps))
     self._preserve_first = preserve_first
     self._type = type
Пример #18
0
def get_bjet_sf(options):

    base_path = '%s/TreeFilter/ApplyScaleFactors/data/' % _workarea

    bjet_sf = Filter('AddBJetSF')
    bjet_sf.add_var('FilePath', '%s/DeepJet_102XSF_WP_V1.csv' % base_path)
    bjet_sf.add_var('HistPath', '%s/2018/btageff2018mu.root' % base_path)
    bjet_sf.add_var('HistLJetEff', "heffl")
    bjet_sf.add_var('HistBJetEff', "heffb")
    bjet_sf.add_var('HistCJetEff', "heffc")

    return bjet_sf
Пример #19
0
def config_analysis( alg_list ) :

    alg_list.append( build_electron( do_cutflow=False, do_hists=False, filtPID='medium' ) )
    alg_list.append( build_muon( do_cutflow=False, do_hists=False) )
    alg_list.append( build_photon( do_cutflow=True, do_hists=False, filtPID='medium') )
    #alg_list.append( build_sl_photon( ) )
    alg_list.append( build_jet( do_cutflow=False, do_hists=False ) )

    # filter out a lepton 
    filter_evt = Filter( 'FilterEvent' )
    filter_evt.cut_lep25_n = ' > 0 '
    alg_list.append(filter_evt)
Пример #20
0
    def __init__(self, maxzoom, frames, type = ZoompanType.alternate, outstreamprefix="pzf"):
        expressions = []
        step = (maxzoom - 1.0) / frames
        if isinstance(type, ZoompanType) == False:
            type = ZoompanType.alternate
        if type & ZoompanType.zoom_in == ZoompanType.zoom_in:
            expressions.append("zoompan=z='min(zoom+{s},{mz})':d={df}".format(df = frames, s = step, mz = maxzoom))
        if type & ZoompanType.zoom_out == ZoompanType.zoom_out:
            expressions.append("zoompan=z='if(lte(zoom,1.0),{mz},max(1.001,zoom-{s}))':d={df}".format(df = frames, s = step, mz = maxzoom))

        Filter.__init__(self, outstreamprefix)
        Combinable.__init__(self, FilterExpressionAccessor(expressions, type == ZoompanType.random))
Пример #21
0
def add_Z_event_weight():

    filt = Filter('ApplyPUBiasWeight')

    #filt.add_var( 'root_file', '/afs/cern.ch/user/j/jkunkle/usercode/Analysis/TreeFilter/UpdateFinalTree/data/EFakeGammaScaleFactorPt.root' )
    filt.add_var(
        'root_file',
        '/afs/cern.ch/user/j/jkunkle/usercode/Analysis/TreeFilter/UpdateFinalTree/data/PUBiasVtxWt.root'
    )
    #filt.add_var( 'hist_name', 'pt')
    #filt.add_var( 'sample_key', 'DYJetsToLL' )

    return filt
Пример #22
0
def config_analysis(alg_list):
    """ Configure analysis modules. Order is preserved """

    # for complicated configurations, define a function
    # that returns the Filter object and append it to the
    # alg list.  Otherwise you can directly append
    # a Filter object to the list
    # There is no restriction on the naming or inputs to these funtions
    filter_event = Filter('FilterEvent')
    filter_event.cut_nLep_muTight_elMed = ' > 0 '
    filter_event.cut_nPh_medium = ' > 0 '

    alg_list.append(filter_event)
Пример #23
0
def config_analysis(alg_list, args):
    """ Configure analysis modules. Order is preserved """

    # for complicated configurations, define a function
    # that returns the Filter object and append it to the
    # alg list.  Otherwise you can directly append
    # a Filter object to the list
    # There is no restriction on the naming or inputs to these funtions
    alg_list.append(build_photon(do_cutflow=True, do_hists=True))

    filter_event = Filter('FilterEvent')
    filter_event.cut_nPho = ' > 0 '

    alg_list.append(filter_event)
Пример #24
0
def make_nofilt(alg_list, args):

    pass_lepton = args.get('pass_lepton', 'False')
    if pass_lepton == 'True':
        alg_list.append(filter_muon(mu_pt=' > 10 '))
        alg_list.append(filter_electron(el_pt=' > 10 '))

    alg_list.append(filter_photon(ph_pt=' > 15 ', id_cut='medium'))

    alg_list.append(filter_trigger())
    alg_list.append(filter_met())

    alg_list.append(Filter('BuildEventVars'))
    alg_list.append(Filter('BuildTruth'))
Пример #25
0
def build_photon( do_cutflow=False, do_hists=False, filtPID=None, evalPID=None ) :

    filt = Filter('BuildPhoton')

    filt.add_var( 'TMVAWeightsFileEB11W', '/afs/cern.ch/user/j/jkunkle/usercode/Analysis/TreeFilter/TrainPhotonMVA/weights/photonMVAWtrainEB_BDT.weights.xml' )
    filt.add_var( 'TMVAWeightsFileEE11W', '/afs/cern.ch/user/j/jkunkle/usercode/Analysis/TreeFilter/TrainPhotonMVA/weights/photonMVAWtrainEE_BDT.weights.xml' )
    #filt.add_var( 'TMVAWeightsFileEB5', '/afs/cern.ch/user/j/jkunkle/usercode/Analysis/TreeFilter/TrainPhotonMVA/weights/photonMVAEB_BDT.weights.xml' )
    #filt.add_var( 'TMVAWeightsFileEE5', '/afs/cern.ch/user/j/jkunkle/usercode/Analysis/TreeFilter/TrainPhotonMVA/weights/photonMVAEE_BDT.weights.xml' )
    #filt.add_var( 'TMVAWeightsFileEB6', '/afs/cern.ch/user/j/jkunkle/usercode/Analysis/TreeFilter/TrainPhotonMVA/weights_6var_v1/photonMVAEB_BDT.weights.xml' )
    #filt.add_var( 'TMVAWeightsFileEE6', '/afs/cern.ch/user/j/jkunkle/usercode/Analysis/TreeFilter/TrainPhotonMVA/weights_6var_v1/photonMVAEE_BDT.weights.xml' )
    #filt.add_var( 'TMVAWeightsFileEB11', '/afs/cern.ch/user/j/jkunkle/usercode/Analysis/TreeFilter/TrainPhotonMVA/weights_11var_v1/photonMVAEB_BDT.weights.xml' )
    #filt.add_var( 'TMVAWeightsFileEE11', '/afs/cern.ch/user/j/jkunkle/usercode/Analysis/TreeFilter/TrainPhotonMVA/weights_11var_v1/photonMVAEE_BDT.weights.xml' )

    return filt
Пример #26
0
def build_truth(args):

    truth_filt = Filter('BuildTruth')

    truth_filt.cut_lep_mother = ' == 23 || == -23 || == 24 || == -24 ||  == 11 || == -11 || == 12 || == -12 || == 13 || == -13 || == 14 || == -14 || == 15 || == -15 || == 16 || == -16 '
    #truth_filt.cut_lep_status = ' != 23 '

    truth_filt.cut_ph_pt = ' > 5 '
    #truth_filt.cut_ph_IsPromptFinalState = ' == True '

    doFHPFS = args.get('doFHPFS', False)
    if doFHPFS == 'true':
        truth_filt.cut_ph_FromHardProcessFinalState = ' == True '

    return truth_filt
Пример #27
0
def config_analysis(alg_list):
    """ Configure analysis modules. Order is preserved """

    # lepton and photon filters must be run
    # before the jet filter
    #alg_list.append( get_electron_filter( 'medium' ) )
    alg_list.append(get_photon_filter('medium'))
    alg_list.append(get_jet_filter(do_hists=False))

    filter_event = Filter('FilterEvent')
    filter_event.cut_nPh = ' > 1 '

    alg_list.append(filter_event)

    alg_list.append(Filter('CalcEventVars'))
Пример #28
0
def filter_event ( nPhPassEleVeto=None ) :

    
    filt_event = Filter( 'FilterEvent' )
    filt_event.cut_el_passtrig_n = ' >0 '
    filt_event.cut_el_n = ' ==1 '
    filt_event.cut_mu_n = ' ==0 '
    filt_event.cut_ph_n = ' ==2 '
    filt_event.cut_ph_phDR = ' > 0.3 '
    filt_event.cut_leadPhot_leadLepDR = ' > 0.7 '
    filt_event.cut_sublPhot_leadLepDR = ' > 0.7 '

    if nPhPassEleVeto is not None :
        filt_event.cut_nPhPassEleVeto = ' == %d ' %nPhPassEleVeto

    return filt_event
Пример #29
0
def get_muon_filter(id='Tight', ptcut=10, etacut=2.1):

    filt = Filter('FilterMuon')

    #filt.add_var( 'PtScaleDownBarrel', '0.94' )
    #filt.add_var( 'PtScaleDownEndcap', '0.985' )
    #filt.add_var( 'PtScaleUpBarrel', '1.06' )
    #filt.add_var( 'PtScaleUpEndcap', '1.015' )

    if id is not None:
        setattr(filt, 'cut_mu_pass%s' % id, ' == True')
    filt.cut_mu_pt = ' > %d' % ptcut
    filt.cut_mu_eta = ' < %.1f ' % etacut
    #filt.cut_mu_corriso = ' < 0.2  '

    return filt
Пример #30
0
def build_jet(do_cutflow=False, do_hists=False):

    filt = Filter('BuildJet')
    filt.do_cutflow = do_cutflow

    filt.cut_pt = ' > 30 '
    filt.cut_abseta = ' < 4.5 '

    if do_hists:
        filt.add_hist('cut_pt', 100, 0, 500)
        filt.add_hist('cut_abseta', 50, 0, 5)

    return filt