Пример #1
0
def addTaus(process, coll, **kwargs):
    isMC = kwargs.pop('isMC', False)
    tSrc = coll['taus']
    pvSrc = coll['vertices']
    genSrc = coll['prunedgen']
    # customization path
    process.tauCustomization = cms.Path()

    # embed pv
    process.tPV = cms.EDProducer(
        "TauPVEmbedder",
        src=cms.InputTag(tSrc),
        vertexSrc=cms.InputTag(pvSrc),
    )
    tSrc = 'tPV'
    process.tauCustomization *= process.tPV

    ## embed trigger matching
    #process.tTrig = cms.EDProducer(
    #    "TauHLTMatchEmbedder",
    #    src = cms.InputTag(tSrc),
    #    triggerResults = cms.InputTag('TriggerResults', '', 'HLT'),
    #    triggerObjects = cms.InputTag("selectedPatTrigger"),
    #    deltaR = cms.double(0.5),
    #    labels = cms.vstring(
    #    ),
    #    paths = cms.vstring(
    #    ),
    #)
    #tSrc = 'tTrig'
    #process.tauCustomization *= process.tTrig

    # embed gen tau jets
    if isMC:
        from PhysicsTools.JetMCAlgos.TauGenJets_cfi import tauGenJets
        process.tauGenJets = tauGenJets.clone(
            GenParticles=cms.InputTag(genSrc))
        process.tauCustomization *= process.tauGenJets
        process.tGenJetMatching = cms.EDProducer(
            "TauMatchedGenJetEmbedder",
            src=cms.InputTag(tSrc),
            genJets=cms.InputTag("tauGenJets"),
            srcIsTaus=cms.bool(True),
            deltaR=cms.double(0.5),
        )
        tSrc = "tGenJetMatching"
        process.tauCustomization *= process.tGenJetMatching

    # add to schedule
    process.schedule.append(process.tauCustomization)
    coll['taus'] = tSrc
    return coll
Пример #2
0
def customizeTaus(process, coll, **kwargs):
    '''Customize taus'''
    isMC = kwargs.pop('isMC', False)
    tSrc = coll['taus']
    rhoSrc = coll['rho']
    pvSrc = coll['vertices']
    genSrc = coll['genParticles']

    # customization path
    process.tauCustomization = cms.Path()

    #################
    ### embed rho ###
    #################
    process.tRho = cms.EDProducer(
        "TauRhoEmbedder",
        src=cms.InputTag(tSrc),
        rhoSrc=cms.InputTag(rhoSrc),
        label=cms.string("rho"),
    )
    tSrc = 'tRho'

    process.tauCustomization *= process.tRho

    ################
    ### embed pv ###
    ################
    process.tPV = cms.EDProducer(
        "TauIpEmbedder",
        src=cms.InputTag(tSrc),
        vertexSrc=cms.InputTag(pvSrc),
    )
    tSrc = 'tPV'

    process.tauCustomization *= process.tPV

    ##############################
    ### embed trigger matching ###
    ##############################
    process.tTrig = cms.EDProducer(
        "TauHLTMatchEmbedder",
        src=cms.InputTag(tSrc),
        triggerResults=cms.InputTag('TriggerResults', '', 'HLT'),
        triggerObjects=cms.InputTag("selectedPatTrigger"),
        deltaR=cms.double(0.5),
        labels=cms.vstring(
            # double tau
            'matches_DoubleMediumIsoPFTau35_Trk1_eta2p1_Reg',
            'matches_DoubleMediumIsoPFTau40_Trk1_eta2p1_Reg',
            # muon tau
            'matches_IsoMu17_eta2p1_LooseIsoPFTau20',
            'matches_IsoMu20_eta2p1_LooseIsoPFTau20',
            # electron tau
            'matches_Ele22_eta2p1_WPLoose_Gsf_LooseIsoPFTau20',
            'matches_Ele27_eta2p1_WPLoose_Gsf_LooseIsoPFTau20',
        ),
        paths=cms.vstring(
            # double tau
            'HLT_DoubleMediumIsoPFTau35_Trk1_eta2p1_Reg_v\\[0-9]+',
            'HLT_DoubleMediumIsoPFTau40_Trk1_eta2p1_Reg_v\\[0-9]+',
            # muon tau
            'HLT_IsoMu17_eta2p1_LooseIsoPFTau20_v\\[0-9]+',
            'HLT_IsoMu20_eta2p1_LooseIsoPFTau20_v\\[0-9]+',
            # electron tau
            'HLT_Ele22_eta2p1_WPLoose_Gsf_LooseIsoPFTau20_v\\[0-9]+',
            'HLT_Ele27_eta2p1_WPLoose_Gsf_LooseIsoPFTau20_v\\[0-9]+',
        ),
    )
    tSrc = 'tTrig'

    process.tauCustomization *= process.tTrig

    ##########################
    ### embed tau gen jets ###
    ##########################
    if isMC:
        from PhysicsTools.JetMCAlgos.TauGenJets_cfi import tauGenJets
        process.tauGenJets = tauGenJets.clone(
            GenParticles=cms.InputTag(genSrc))
        process.tauCustomization *= process.tauGenJets

        process.tGenJetMatching = cms.EDProducer(
            "TauGenJetEmbedder",
            src=cms.InputTag(tSrc),
            genJets=cms.InputTag("tauGenJets"),
            excludeLeptons=cms.bool(True),
            deltaR=cms.double(0.5),
        )
        tSrc = "tGenJetMatching"
        process.tauCustomization *= process.tGenJetMatching

    # add to schedule
    process.schedule.append(process.tauCustomization)

    coll['taus'] = tSrc

    return coll
Пример #3
0
import FWCore.ParameterSet.Config as cms
from Validation.RecoTau.RecoTauValidation_cfi import *

from PhysicsTools.JetMCAlgos.TauGenJets_cfi import tauGenJets
from PhysicsTools.HepMCCandAlgos.genParticles_cfi import *
import PhysicsTools.PatAlgos.tools.helpers as helpers

tauGenJetsForVal = tauGenJets.clone()

# require generated tau to decay hadronically
objectTypeSelectedTauValDenominatorModuleZTT = cms.EDFilter(
    "TauGenJetDecayModeSelector",
    src=cms.InputTag("tauGenJetsForVal"),
    select=cms.vstring('oneProng0Pi0', 'oneProng1Pi0', 'oneProng2Pi0',
                       'oneProngOther', 'threeProng0Pi0', 'threeProng1Pi0',
                       'threeProngOther', 'rare'),
    filter=cms.bool(False))

# require generator level hadrons produced in tau-decay to have transverse momentum above threshold
kinematicSelectedTauValDenominatorZTT = cms.EDFilter(
    "GenJetSelector",  #"GenJetSelector"
    src=cms.InputTag('objectTypeSelectedTauValDenominatorModuleZTT'),
    cut=
    kinematicSelectedTauValDenominatorCut,  #cms.string('pt > 5. && abs(eta) < 2.5'), #Defined: Validation.RecoTau.RecoTauValidation_cfi 
    filter=cms.bool(False))

procAttributes = dir(proc)  #Takes a snapshot of what there in the process
helpers.cloneProcessingSnippet(
    proc, proc.TauValNumeratorAndDenominator,
    'ZTT')  #clones the sequence inside the process with ZTT postfix
helpers.cloneProcessingSnippet(
process.TauGenMatchesForEmbedded = cms.Sequence()
tausToMatch = "cleanPatTaus"

if isNonTopEmbeddedSample or isTopEmbeddedSample:
    print "EMBEDDED STUFF "
    from PhysicsTools.PatAlgos.mcMatchLayer0.tauMatch_cfi import tauMatch, tauGenJetMatch
    process.tauMatchEmbeddedRECO = tauMatch.clone(
    src = cms.InputTag(tausToMatch),
    matched = cms.InputTag("genParticles::EmbeddedRECO")
     						)
    process.TauGenMatchesForEmbedded += process.tauMatchEmbeddedRECO

    from PhysicsTools.JetMCAlgos.TauGenJets_cfi import tauGenJets
    process.tauGenJetsEmbeddedRECO = tauGenJets.clone(
    GenParticles = cms.InputTag("genParticles::EmbeddedRECO")
    )
    process.TauGenMatchesForEmbedded += process.tauGenJetsEmbeddedRECO
    from PhysicsTools.JetMCAlgos.TauGenJetsDecayModeSelectorAllHadrons_cfi import tauGenJetsSelectorAllHadrons
    process.tauGenJetsSelectorAllHadronsEmbeddedRECO = tauGenJetsSelectorAllHadrons.clone(
    src = cms.InputTag("tauGenJetsEmbeddedRECO")
    )
    process.TauGenMatchesForEmbedded += process.tauGenJetsSelectorAllHadronsEmbeddedRECO
    process.tauGenJetMatchEmbeddedRECO = tauGenJetMatch.clone(
    src = cms.InputTag(tausToMatch),
    matched = cms.InputTag("tauGenJetsSelectorAllHadronsEmbeddedRECO")
    )
    process.TauGenMatchesForEmbedded += process.tauGenJetMatchEmbeddedRECO

    process.patTausGenMatched = cms.EDProducer("PATTauGenMatchEmbedder",
    src = cms.InputTag(tausToMatch),
Пример #5
0
            doc="Anti-electron MVA discriminator V6 category (2015"),
        idAntiEle=_tauId5WPMask(
            "againstElectron%sMVA6",
            doc="Anti-electron MVA discriminator V6 (2015)"))

run2_miniAOD_80XLegacy.toModify(tauTable.variables, idAntiEleDeadECal=None)
for era in [run2_nanoAOD_92X, run2_nanoAOD_94XMiniAODv1, run2_nanoAOD_94XMiniAODv2, \
            run2_nanoAOD_94X2016, run2_nanoAOD_102Xv1, run2_nanoAOD_106Xv1]:
    era.toModify(
        tauTable.variables,
        idAntiEleDeadECal=Var("tauID('againstElectronDeadECALForNano')",
                              bool,
                              doc="Anti-electron dead-ECal discriminator"),
    )

tauGenJetsForNano = tauGenJets.clone(GenParticles="finalGenParticles",
                                     includeNeutrinos=False)

tauGenJetsSelectorAllHadronsForNano = tauGenJetsSelectorAllHadrons.clone(
    src="tauGenJetsForNano")

genVisTaus = cms.EDProducer(
    "GenVisTauProducer",
    src=cms.InputTag("tauGenJetsSelectorAllHadronsForNano"),
    srcGenParticles=cms.InputTag("finalGenParticles"))

genVisTauTable = cms.EDProducer(
    "SimpleCandidateFlatTableProducer",
    src=cms.InputTag("genVisTaus"),
    cut=cms.string("pt > 10."),
    name=cms.string("GenVisTau"),
    doc=cms.string("gen hadronic taus "),
        'drop *',
        'keep++ pdgId = 15',
    )
)

genTausFromHiggs = cms.EDProducer(
    "GenParticlePruner",
    src = cms.InputTag("higgsBosons"),
    select = cms.vstring(
        'drop *',
        'keep++ pdgId = 15',
    )
)

tauGenJetsFromZs = tauGenJets.clone(
    GenParticles = cms.InputTag('genTausFromZs')
)

tauGenJetsFromHiggs = tauGenJets.clone(
    GenParticles = cms.InputTag('genTausFromHiggs')
)

genEwkTauSelectors = cms.Sequence(
    zBosons
    +wBosons
    +higgsBosons
    +genTausFromZs
    +genTausFromHiggs
    +tauGenJetsFromZs
    +tauGenJetsFromHiggs
)
Пример #7
0
def customizeTaus(process, coll, **kwargs):
    """Customize taus"""
    isMC = kwargs.pop("isMC", False)
    tSrc = coll["taus"]
    rhoSrc = coll["rho"]
    pvSrc = coll["vertices"]
    genSrc = coll["genParticles"]

    # customization path
    process.tauCustomization = cms.Path()

    #################
    ### embed rho ###
    #################
    process.tRho = cms.EDProducer(
        "TauRhoEmbedder", src=cms.InputTag(tSrc), rhoSrc=cms.InputTag(rhoSrc), label=cms.string("rho")
    )
    tSrc = "tRho"

    process.tauCustomization *= process.tRho

    ################
    ### embed pv ###
    ################
    process.tPV = cms.EDProducer("TauIpEmbedder", src=cms.InputTag(tSrc), vertexSrc=cms.InputTag(pvSrc))
    tSrc = "tPV"

    process.tauCustomization *= process.tPV

    ##############################
    ### embed trigger matching ###
    ##############################
    process.tTrig = cms.EDProducer(
        "TauHLTMatchEmbedder",
        src=cms.InputTag(tSrc),
        triggerResults=cms.InputTag("TriggerResults", "", "HLT"),
        triggerObjects=cms.InputTag("selectedPatTrigger"),
        deltaR=cms.double(0.5),
        labels=cms.vstring(
            # double tau
            "matches_DoubleMediumIsoPFTau35_Trk1_eta2p1_Reg",
            "matches_DoubleMediumIsoPFTau40_Trk1_eta2p1_Reg",
            # muon tau
            "matches_IsoMu17_eta2p1_LooseIsoPFTau20",
            "matches_IsoMu20_eta2p1_LooseIsoPFTau20",
            # electron tau
            "matches_Ele22_eta2p1_WPLoose_Gsf_LooseIsoPFTau20",
            "matches_Ele27_eta2p1_WPLoose_Gsf_LooseIsoPFTau20",
        ),
        paths=cms.vstring(
            # double tau
            "HLT_DoubleMediumIsoPFTau35_Trk1_eta2p1_Reg_v\\[0-9]+",
            "HLT_DoubleMediumIsoPFTau40_Trk1_eta2p1_Reg_v\\[0-9]+",
            # muon tau
            "HLT_IsoMu17_eta2p1_LooseIsoPFTau20_v\\[0-9]+",
            "HLT_IsoMu20_eta2p1_LooseIsoPFTau20_v\\[0-9]+",
            # electron tau
            "HLT_Ele22_eta2p1_WPLoose_Gsf_LooseIsoPFTau20_v\\[0-9]+",
            "HLT_Ele27_eta2p1_WPLoose_Gsf_LooseIsoPFTau20_v\\[0-9]+",
        ),
    )
    tSrc = "tTrig"

    process.tauCustomization *= process.tTrig

    ##########################
    ### embed tau gen jets ###
    ##########################
    if isMC:
        from PhysicsTools.JetMCAlgos.TauGenJets_cfi import tauGenJets

        process.tauGenJets = tauGenJets.clone(GenParticles=cms.InputTag(genSrc))
        process.tauCustomization *= process.tauGenJets

        process.tGenJetMatching = cms.EDProducer(
            "TauGenJetEmbedder",
            src=cms.InputTag(tSrc),
            genJets=cms.InputTag("tauGenJets"),
            excludeLeptons=cms.bool(True),
            deltaR=cms.double(0.5),
        )
        tSrc = "tGenJetMatching"
        process.tauCustomization *= process.tGenJetMatching

    # add to schedule
    process.schedule.append(process.tauCustomization)

    coll["taus"] = tSrc

    return coll