コード例 #1
0
def ElectronPath(process, conf):
    process.elePathPreCount = cms.EDProducer("EventCountProducer")

    process.efficiencyAnalyzerEle = cms.EDAnalyzer(
        'EfficiencyAnalyzer',
        histogrammableCounters=cms.untracked.vstring(["elePath"]),
        elePath=cms.untracked.vstring([
            "PATTotalEventsProcessedCount", "singleTopPathStep1ElePreCount",
            "singleTopPathStep1ElePostCount", "elePathPreCount",
            "elePathStepHLTsyncElePostCount", "elePathOneIsoElePostCount",
            "elePathLooseEleVetoElePostCount",
            "elePathLooseMuVetoElePostCount", "elePathNJetsPostCount",
            "elePathMetEleSequencePostCount", "elePathMBTagsPostCount"
        ]))

    process.elePath = cms.Path(
        process.elePathPreCount * process.stepHLTsyncEle *
        process.muIsoSequence * process.eleIsoSequence *
        process.goodSignalElectrons * process.electronCount *
        process.looseVetoElectrons * process.oneIsoEle * process.singleIsoEle *
        process.looseEleVetoEle * process.looseVetoMuons *
        process.looseMuVetoEle * process.jetSequence * process.nJets *
        process.metEleSequence * process.goodSignalLeptons * process.mBTags *
        process.topRecoSequenceEle
        #        process.efficiencyAnalyzerEle
    )

    #Insert debugging modules for printout
    if conf.doDebug:
        process.elePath.insert(
            process.elePath.index(process.oneIsoEle) + 1, process.oneIsoEleIDs)
        process.elePath.insert(process.elePath.index(process.oneIsoEle),
                               process.electronAnalyzer)
        process.elePath.insert(process.elePath.index(process.looseEleVetoEle),
                               process.electronVetoAnalyzer)
        process.elePath.insert(
            process.elePath.index(process.looseEleVetoEle) + 1,
            process.eleVetoIDs)
        process.elePath.insert(
            process.elePath.index(process.metEleSequence) + 1, process.metIDS)
        process.elePath.insert(
            process.elePath.index(process.nJets) + 1, process.NJetIDs)
        process.elePath.insert(process.elePath.index(process.metEleSequence),
                               process.metAnalyzer)

    if conf.isMC:
        process.elePath.insert(
            process.elePath.index(process.singleIsoEle) + 1,
            process.electronWeightsProducer)

    #Produce the electron parentage decay tree string
    if conf.isMC and not conf.isSherpa:
        process.decayTreeProducerEle = cms.EDProducer(
            'GenParticleDecayTreeProducer<pat::Electron>',
            src=cms.untracked.InputTag("singleIsoEle"))
        process.elePath.insert(
            process.elePath.index(process.singleIsoEle) + 1,
            process.decayTreeProducerEle)

    if conf.isMC and conf.channel == conf.Channel.signal:
        #Put the parton level study after the top reco sequence.
        process.elePath.insert(
            process.elePath.index(process.topRecoSequenceEle) + 1,
            process.partonStudyCompareSequence)

    eventCounting.countAfter(process, process.elePath, [
        "stepHLTsyncEle", "oneIsoEle", "looseEleVetoEle", "looseMuVetoEle",
        "metEleSequence", "nJets", "mBTags"
    ])
コード例 #2
0
ファイル: muons_step2_cfi.py プロジェクト: andresti/stpol
def MuonPath(process, conf):

    process.muPathPreCount = cms.EDProducer("EventCountProducer")

    process.efficiencyAnalyzerMu = cms.EDAnalyzer('EfficiencyAnalyzer'
    , histogrammableCounters = cms.untracked.vstring(["muPath"])
    , muPath = cms.untracked.vstring([
        "PATTotalEventsProcessedCount",
        "singleTopPathStep1MuPreCount",
        "singleTopPathStep1MuPostCount",
        "muPathPreCount",
        "muPathStepHLTsyncMuPostCount",
        "muPathOneIsoMuPostCount",
        "muPathLooseMuVetoMuPostCount",
        "muPathLooseEleVetoMuPostCount",
        "muPathNJetsPostCount",
        "muPathMetMuSequencePostCount",
        "muPathMBTagsPostCount"
        ]
    ))

    process.muPath = cms.Path(

        process.muPathPreCount *

        #Optionally select the HLT
        process.stepHLTsyncMu *

        process.muIsoSequence *
        process.eleIsoSequence *

        #Select one isolated muon and veto additional loose muon/electron
        process.goodSignalMuons *
        process.muonCount *
        process.looseVetoMuons *
        process.looseVetoElectrons *
        process.oneIsoMu *
        process.singleIsoMu *

        #process.looseMuVetoMu *
        #process.looseEleVetoMu *

        #Do general jet cleaning, PU-jet cleaning and select 2 good jets
        process.jetSequence *
        process.nJets *

        #Select mu and MET invariant transverse mass OR the MET
        process.metMuSequence *

        process.mBTags *

        #Reconstruct the neutrino, the top quark and calculate the cosTheta* variable
        process.topRecoSequenceMu
#        process.efficiencyAnalyzerMu
    )

    #Only do the parton identification in the signal channel
    if conf.isMC and conf.channel == conf.Channel.signal:
        process.muPath.insert(
            process.muPath.index(process.topRecoSequenceMu)+1,
            process.partonStudyCompareSequence
        )
    if conf.doDebug:
        process.goodSignalMuAnalyzer = cms.EDAnalyzer("SimpleMuonAnalyzer", interestingCollections=cms.untracked.VInputTag("muonsWithIso", "goodSignalMuons"))
        process.vetoEleAnalyzer = cms.EDAnalyzer("SimpleElectronAnalyzer", interestingCollections=cms.untracked.VInputTag("looseVetoElectrons"))
        process.muPrintOutSequence = cms.Sequence(process.goodSignalMuAnalyzer*process.vetoEleAnalyzer)
        process.muPath.insert(
            process.muPath.index(process.oneIsoMu),
            process.muPrintOutSequence
        )
        process.oneIsoMuID = cms.EDAnalyzer("EventIDAnalyzer", name=cms.untracked.string("oneIsoMuID"))
        process.muPath.insert(
            process.muPath.index(process.oneIsoMu)+1,
            process.oneIsoMuID
        )
        process.nJetID = cms.EDAnalyzer("EventIDAnalyzer", name=cms.untracked.string("nJetID"))
        process.muPath.insert(
            process.muPath.index(process.nJets)+1,
            process.nJetID
        )

    if conf.isMC:
      #Add muon scale factors
      process.muPath.insert(
            process.muPath.index(process.singleIsoMu)+1,
            process.muonWeightsProducer
        )

    if conf.isMC and not conf.isSherpa:
        process.decayTreeProducerMu = cms.EDProducer(
            'GenParticleDecayTreeProducer<pat::Muon>',
            src=cms.untracked.InputTag("singleIsoMu")
        )
        process.muPath.insert(
            process.muPath.index(process.singleIsoMu)+1,
            process.decayTreeProducerMu
        )


    #Count number of events passing the selection filters
    eventCounting.countAfter(process, process.muPath,
        [
        "stepHLTsyncMu",
        "oneIsoMu",
        #"looseMuVetoMu",
        #"looseEleVetoMu",
        #"metMuSequence",
        "nJets",
        "mBTags"
        ]
    )
コード例 #3
0
ファイル: electrons_step2_cfi.py プロジェクト: andresti/stpol
def ElectronPath(process, conf):
    process.elePathPreCount = cms.EDProducer("EventCountProducer")

    process.efficiencyAnalyzerEle = cms.EDAnalyzer('EfficiencyAnalyzer'
    , histogrammableCounters = cms.untracked.vstring(["elePath"])
    , elePath = cms.untracked.vstring([
        "PATTotalEventsProcessedCount",
        "singleTopPathStep1ElePreCount",
        "singleTopPathStep1ElePostCount",
        "elePathPreCount",
        "elePathStepHLTsyncElePostCount",
        "elePathOneIsoElePostCount",
        "elePathLooseEleVetoElePostCount",
        "elePathLooseMuVetoElePostCount",
        "elePathNJetsPostCount",
        "elePathMetEleSequencePostCount",
        "elePathMBTagsPostCount"
        ]
    ))

    process.elePath = cms.Path(

        process.elePathPreCount *

        process.stepHLTsyncEle *

        process.muIsoSequence *
        process.eleIsoSequence *

        process.goodSignalElectrons *
        process.electronCount *
        process.looseVetoElectrons *
        process.oneIsoEle *
        process.singleIsoEle *

        process.looseEleVetoEle *
        process.looseVetoMuons *
        process.looseMuVetoEle *

        process.jetSequence *
        process.nJets *

        process.metEleSequence *
        process.goodSignalLeptons *

        process.mBTags *

        process.topRecoSequenceEle
#        process.efficiencyAnalyzerEle
    )

    #Insert debugging modules for printout
    if conf.doDebug:
        process.elePath.insert(
            process.elePath.index(process.oneIsoEle)+1,
            process.oneIsoEleIDs
        )
        process.elePath.insert(
            process.elePath.index(process.oneIsoEle),
            process.electronAnalyzer
        )
        process.elePath.insert(
            process.elePath.index(process.looseEleVetoEle),
            process.electronVetoAnalyzer
        )
        process.elePath.insert(
            process.elePath.index(process.looseEleVetoEle)+1,
            process.eleVetoIDs
        )
        process.elePath.insert(
            process.elePath.index(process.metEleSequence)+1,
            process.metIDS
        )
        process.elePath.insert(
            process.elePath.index(process.nJets)+1,
            process.NJetIDs
        )
        process.elePath.insert(
            process.elePath.index(process.metEleSequence),
            process.metAnalyzer
        )

    if conf.isMC:
        process.elePath.insert(
            process.elePath.index(process.singleIsoEle)+1,
            process.electronWeightsProducer
            )

    #Produce the electron parentage decay tree string
    if conf.isMC and not conf.isSherpa:
        process.decayTreeProducerEle = cms.EDProducer(
            'GenParticleDecayTreeProducer<pat::Electron>',
            src=cms.untracked.InputTag("singleIsoEle")
        )
        process.elePath.insert(
            process.elePath.index(process.singleIsoEle)+1,
            process.decayTreeProducerEle
        )

    if conf.isMC and conf.channel == conf.Channel.signal:
        #Put the parton level study after the top reco sequence.
        process.elePath.insert(
            process.elePath.index(process.topRecoSequenceEle)+1,
            process.partonStudyCompareSequence
            )

    eventCounting.countAfter(process, process.elePath,
        [
        "stepHLTsyncEle",
        "oneIsoEle",
        "looseEleVetoEle",
        "looseMuVetoEle",
        "metEleSequence",
        "nJets",
        "mBTags"
        ]
    )
コード例 #4
0
def MuonPath(process, conf):

    process.muPathPreCount = cms.EDProducer("EventCountProducer")

    process.efficiencyAnalyzerMu = cms.EDAnalyzer(
        'EfficiencyAnalyzer',
        histogrammableCounters=cms.untracked.vstring(["muPath"]),
        muPath=cms.untracked.vstring([
            "PATTotalEventsProcessedCount", "singleTopPathStep1MuPreCount",
            "singleTopPathStep1MuPostCount", "muPathPreCount",
            "muPathStepHLTsyncMuPostCount", "muPathOneIsoMuPostCount",
            "muPathLooseMuVetoMuPostCount", "muPathLooseEleVetoMuPostCount",
            "muPathNJetsPostCount", "muPathMetMuSequencePostCount",
            "muPathMBTagsPostCount"
        ]))

    process.muPath = cms.Path(
        process.muPathPreCount *

        #Optionally select the HLT
        process.stepHLTsyncMu * process.muIsoSequence *
        process.eleIsoSequence *

        #Select one isolated muon and veto additional loose muon/electron
        process.goodSignalMuons * process.muonCount * process.looseVetoMuons *
        process.looseVetoElectrons * process.oneIsoMu * process.singleIsoMu *

        #process.looseMuVetoMu *
        #process.looseEleVetoMu *

        #Do general jet cleaning, PU-jet cleaning and select 2 good jets
        process.jetSequence * process.nJets *

        #Select mu and MET invariant transverse mass OR the MET
        process.metMuSequence * process.mBTags *

        #Reconstruct the neutrino, the top quark and calculate the cosTheta* variable
        process.topRecoSequenceMu
        #        process.efficiencyAnalyzerMu
    )

    #Only do the parton identification in the signal channel
    if conf.isMC and conf.channel == conf.Channel.signal:
        process.muPath.insert(
            process.muPath.index(process.topRecoSequenceMu) + 1,
            process.partonStudyCompareSequence)
    if conf.doDebug:
        process.goodSignalMuAnalyzer = cms.EDAnalyzer(
            "SimpleMuonAnalyzer",
            interestingCollections=cms.untracked.VInputTag(
                "muonsWithIso", "goodSignalMuons"))
        process.vetoEleAnalyzer = cms.EDAnalyzer(
            "SimpleElectronAnalyzer",
            interestingCollections=cms.untracked.VInputTag(
                "looseVetoElectrons"))
        process.muPrintOutSequence = cms.Sequence(
            process.goodSignalMuAnalyzer * process.vetoEleAnalyzer)
        process.muPath.insert(process.muPath.index(process.oneIsoMu),
                              process.muPrintOutSequence)
        process.oneIsoMuID = cms.EDAnalyzer(
            "EventIDAnalyzer", name=cms.untracked.string("oneIsoMuID"))
        process.muPath.insert(
            process.muPath.index(process.oneIsoMu) + 1, process.oneIsoMuID)
        process.nJetID = cms.EDAnalyzer("EventIDAnalyzer",
                                        name=cms.untracked.string("nJetID"))
        process.muPath.insert(
            process.muPath.index(process.nJets) + 1, process.nJetID)

    if conf.isMC:
        #Add muon scale factors
        process.muPath.insert(
            process.muPath.index(process.singleIsoMu) + 1,
            process.muonWeightsProducer)

    if conf.isMC and not conf.isSherpa:
        process.decayTreeProducerMu = cms.EDProducer(
            'GenParticleDecayTreeProducer<pat::Muon>',
            src=cms.untracked.InputTag("singleIsoMu"))
        process.muPath.insert(
            process.muPath.index(process.singleIsoMu) + 1,
            process.decayTreeProducerMu)

    #Count number of events passing the selection filters
    eventCounting.countAfter(
        process,
        process.muPath,
        [
            "stepHLTsyncMu",
            "oneIsoMu",
            #"looseMuVetoMu",
            #"looseEleVetoMu",
            #"metMuSequence",
            "nJets",
            "mBTags"
        ])