示例#1
0
        modules.append("signalAnalysis")
    if doSummerPAS:
        modules.append("signalAnalysisRtau0MET70")
    if doRtau0:
        modules.append("signalAnalysisRtau0")
    if doOptimisation:
        modules.extend(variationModuleNames)
    return modules

# To have tau embedding like preselection
if doTauEmbeddingLikePreselection:
    # Preselection similar to tau embedding selection (genuine tau+3 jets+lepton vetoes), no tau+MET trigger required
    process.tauEmbeddingLikeSequence = cms.Sequence(process.commonSequence)
    module = process.signalAnalysis.clone()
    counters = additionalCounters[:]
    counters.extend(tauEmbeddingCustomisations.addEmbeddingLikePreselection(process, process.tauEmbeddingLikeSequence, module))
    addAnalysis(process, "signalAnalysisTauEmbeddingLikePreselection", module,
                preSequence=process.tauEmbeddingLikeSequence,
                additionalCounters=counters, signalAnalysisCounters=True)

    # Preselection similar to tau embedding selection (genuine tau+3 jets+lepton vetoes), tau+MET trigger required
    process.tauEmbeddingLikeTriggeredSequence = cms.Sequence(process.commonSequence)
    module = process.signalAnalysis.clone()
    counters = additionalCounters[:]
    counters.extend(tauEmbeddingCustomisations.addEmbeddingLikePreselection(process, process.tauEmbeddingLikeTriggeredSequence, module, prefix="embeddingLikeTriggeredPreselection", disableTrigger=False))
    addAnalysis(process, "signalAnalysisTauEmbeddingLikeTriggeredPreselection", module,
                preSequence=process.tauEmbeddingLikeTriggeredSequence,
                additionalCounters=counters, signalAnalysisCounters=True)    

    process.genuineTauSequence = cms.Sequence(process.commonSequence)
    module = process.signalAnalysis.clone()
示例#2
0
    # To optimise, perform the generator level preselection before running PAT
    counters = tauEmbeddingCustomisations.addGenuineTauPreselection(
        process, process.commonSequence, param, pileupWeight=firstPuWeight)
    process.commonSequence.remove(process.genuineTauPreselectionSequence)
    puModule = getattr(process, firstPuWeight)
    process.commonSequence.replace(
        puModule, puModule * process.genuineTauPreselectionSequence)
    additionalCounters = counters + additionalCounters

process.preselectionSequence = cms.Sequence()
preselectionCounters = additionalCounters[:]
preselectionCounters.extend(
    tauEmbeddingCustomisations.addEmbeddingLikePreselection(
        process,
        process.preselectionSequence,
        param,
        pileupWeight=firstPuWeight,
        selectOnlyFirstGenTau=True,
    ))

# Add type 1 MET
#import HiggsAnalysis.HeavyChHiggsToTauNu.HChMetCorrection as MetCorrection
#sequence = MetCorrection.addCorrectedMet(process, param, postfix=PF2PATVersion)
#process.commonSequence *= sequence

import HiggsAnalysis.HeavyChHiggsToTauNu.tauEmbedding.analysisConfig as analysisConfig
import HiggsAnalysis.HeavyChHiggsToTauNu.Ntuple as Ntuple
ntuple = cms.EDAnalyzer(
    "HPlusTauNtupleAnalyzer",
    eventCounter=param.eventCounter.clone(),
    histogramAmbientLevel=cms.untracked.string("Vital"),
param.setPileupWeightFor2011(dataVersion, era=puweight) # Reweight by true PU distribution 
param.setDataTriggerEfficiency(dataVersion, era=puweight)

#param.trigger.selectionType = "disabled"

import HiggsAnalysis.HeavyChHiggsToTauNu.tauEmbedding.customisations as tauEmbeddingCustomisations
if options.tauEmbeddingInput != 0:
    #tauEmbeddingCustomisations.addMuonIsolationEmbeddingForSignalAnalysis(process, process.commonSequence)
    tauEmbeddingCustomisations.setCaloMetSum(process, process.commonSequence, options, dataVersion)
    tauEmbeddingCustomisations.customiseParamForTauEmbedding(param, options, dataVersion)
    if tauEmbeddingFinalizeMuonSelection:
        applyIsolation = not doTauEmbeddingMuonSelectionScan
        additionalCounters.extend(tauEmbeddingCustomisations.addFinalMuonSelection(process, process.commonSequence, param,
                                                                                   enableIsolation=applyIsolation))
if doTauEmbeddingLikePreselection:
    additionalCounters.extend(tauEmbeddingCustomisations.addEmbeddingLikePreselection(process, process.commonSequence, param))

# Signal analysis module for the "golden analysis"
process.signalAnalysis = cms.EDFilter("HPlusSignalAnalysisInvertedTauFilter",
    trigger = param.trigger,
    triggerEfficiencyScaleFactor = param.triggerEfficiencyScaleFactor,
    primaryVertexSelection = param.primaryVertexSelection,
    GlobalElectronVeto = param.GlobalElectronVeto,
    GlobalMuonVeto = param.GlobalMuonVeto,
#    GlobalMuonVeto = param.NonIsolatedMuonVeto,
    # Change default tau algorithm here as needed
    tauSelection = param.tauSelectionHPSTightTauBased,
    jetSelection = param.jetSelection,
    MET = param.MET,
    bTagging = param.bTagging,
    fakeMETVeto = param.fakeMETVeto,
param.setPileupWeightFor2011(dataVersion, era="EPS")
insertPSetContentsTo(param.vertexWeight.clone(), process.pileupWeightEPS)
param.setPileupWeightFor2011(dataVersion, era="Run2011A-EPS")
insertPSetContentsTo(param.vertexWeight.clone(),
                     process.pileupWeightRun2011AnoEPS)
param.setPileupWeightFor2011(dataVersion, era="Run2011A")
insertPSetContentsTo(param.vertexWeight.clone(), process.pileupWeightRun2011A)

process.commonSequence *= (process.pileupWeightEPS *
                           process.pileupWeightRun2011AnoEPS *
                           process.pileupWeightRun2011A)

# Embedding-like preselection
import HiggsAnalysis.HeavyChHiggsToTauNu.tauEmbedding.customisations as tauEmbeddingCustomisations
additionalCounters.extend(
    tauEmbeddingCustomisations.addEmbeddingLikePreselection(
        process, process.commonSequence, param))

ntuple = cms.EDAnalyzer(
    "HPlusTauNtupleAnalyzer",
    selectedPrimaryVertexSrc=cms.InputTag("selectedPrimaryVertex"),
    goodPrimaryVertexSrc=cms.InputTag("goodPrimaryVertices"),
    tauSrc=cms.InputTag(param.tauSelection.src.value()
                        ),  # this is set in addEmbeddingLikePreselection()
    tauFunctions=cms.PSet(),
    jetSrc=cms.InputTag(param.jetSelection.src.value()),
    jetFunctions=cms.PSet(
        tche=cms.string("bDiscriminator('trackCountingHighEffBJetTags')"), ),
    genParticleSrc=cms.InputTag("genParticles"),
    mets=cms.PSet(pfMet_p4=cms.InputTag("patMETsPF"), ),
    doubles=cms.PSet(
        weightPileup_EPS=cms.InputTag("pileupWeightEPS"),
    modules = ["signalAnalysis"]
    if doSummerPAS:
        modules.append("signalAnalysisRtau0MET70")
    if doRtau0:
        modules.append("signalAnalysisRtau0")
    return modules


# To have tau embedding like preselection
if doTauEmbeddingLikePreselection:
    # Preselection similar to tau embedding selection (genuine tau+3 jets+lepton vetoes), no tau+MET trigger required
    process.tauEmbeddingLikeSequence = cms.Sequence(process.commonSequence)
    module = process.signalAnalysis.clone()
    counters = additionalCounters[:]
    counters.extend(
        tauEmbeddingCustomisations.addEmbeddingLikePreselection(
            process, process.tauEmbeddingLikeSequence, module))
    addAnalysis(process,
                "signalAnalysisTauEmbeddingLikePreselection",
                module,
                preSequence=process.tauEmbeddingLikeSequence,
                additionalCounters=counters,
                signalAnalysisCounters=True)

    # Preselection similar to tau embedding selection (genuine tau+3 jets+lepton vetoes), tau+MET trigger required
    process.tauEmbeddingLikeTriggeredSequence = cms.Sequence(
        process.commonSequence)
    module = process.signalAnalysis.clone()
    counters = additionalCounters[:]
    counters.extend(
        tauEmbeddingCustomisations.addEmbeddingLikePreselection(
            process,