Ejemplo n.º 1
0
def addPUWeightVariation(name):
    # Up variation
    module = getattr(process, name).clone()
    module.Tree.fill = False
    param.setPileupWeight(dataVersion,
                          process,
                          process.commonSequence,
                          pset=module.vertexWeight,
                          psetReader=module.pileupWeightReader,
                          era=puweight,
                          suffix="up")
    addAnalysis(process,
                name + "PUWeightPlus",
                module,
                preSequence=process.commonSequence,
                additionalCounters=additionalCounters,
                signalAnalysisCounters=True)
    # Down variation
    module = module.clone()
    param.setPileupWeight(dataVersion,
                          process,
                          process.commonSequence,
                          pset=module.vertexWeight,
                          psetReader=module.pileupWeightReader,
                          era=puweight,
                          suffix="down")
    addAnalysis(process,
                name + "PUWeightMinus",
                module,
                preSequence=process.commonSequence,
                additionalCounters=additionalCounters,
                signalAnalysisCounters=True)
Ejemplo n.º 2
0
def addPUWeightVariation(name):
    # Up variation
    module = getattr(process, name).clone()
    module.Tree.fill = False
    param.setPileupWeight(dataVersion, process, process.commonSequence, pset=module.vertexWeight, psetReader=module.pileupWeightReader, era=puweight, suffix="up")
    addAnalysis(process, name+"PUWeightPlus", module,
                preSequence=process.commonSequence,
                additionalCounters=additionalCounters,
                signalAnalysisCounters=True)
    # Down variation
    module = module.clone()
    param.setPileupWeight(dataVersion, process, process.commonSequence, pset=module.vertexWeight, psetReader=module.pileupWeightReader, era=puweight, suffix="down")
    addAnalysis(process, name+"PUWeightMinus", module,
                preSequence=process.commonSequence,
                additionalCounters=additionalCounters,
                signalAnalysisCounters=True)
Ejemplo n.º 3
0
# Set tau sources to trigger matched tau collections
#param.setAllTauSelectionSrcSelectedPatTaus()
param.setAllTauSelectionSrcSelectedPatTausTriggerMatched()

# Switch to PF2PAT objects
#param.changeCollectionsToPF2PAT()
param.changeCollectionsToPF2PAT(postfix=PF2PATVersion)

# Trigger with scale factors (at the moment hard coded)
if applyTriggerScaleFactor and dataVersion.isMC():
    param.triggerEfficiencyScaleFactor.mode = "scaleFactor"

# Set the data scenario for vertex/pileup weighting
if len(options.puWeightEra) > 0:
    puweight = options.puWeightEra
param.setPileupWeight(dataVersion, process=process, commonSequence=process.commonSequence, pset=param.vertexWeight, psetReader=param.pileupWeightReader, era=puweight) # Reweight by true PU distribution
param.setDataTriggerEfficiency(dataVersion, era=puweight)
print "PU weight 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 dataVersion.isMC():
        process.muonTriggerFixSequence = cms.Sequence()
        additionalCounters.extend(tauEmbeddingCustomisations.addMuonTriggerFix(process, dataVersion, process.muonTriggerFixSequence, options))
        process.commonSequence.replace(process.patSequence, process.muonTriggerFixSequence*process.patSequence)
    if tauEmbeddingFinalizeMuonSelection:
Ejemplo n.º 4
0
# Vertex selection
from HiggsAnalysis.HeavyChHiggsToTauNu.HChPrimaryVertex import addPrimaryVertexSelection
addPrimaryVertexSelection(process, process.commonSequence)

# Pileup weights
import HiggsAnalysis.HeavyChHiggsToTauNu.HChSignalAnalysisParameters_cff as param
puWeights = [
    "Run2011A",
    "Run2011B",
    "Run2011AB",
]
puWeightNames = []
for era in puWeights:
    prodName = param.setPileupWeight(dataVersion,
                                     process=process,
                                     commonSequence=process.commonSequence,
                                     era=era)
    puWeightNames.append(prodName)
    process.commonSequence.remove(getattr(process, prodName))
    process.commonSequence.insert(0, getattr(process, prodName))

# FIXME: this is only a consequence of the swiss-knive effect...
process.commonSequence.remove(process.goodPrimaryVertices)
process.commonSequence.insert(0, process.goodPrimaryVertices)

# Switch to PF2PAT objects
#PF2PATVersion = "PFlow"
#param.changeCollectionsToPF2PAT(postfix=PF2PATVersion)

muons = cms.InputTag("tauEmbeddingMuons")
#taus = cms.InputTag("selectedPatTausShrinkingConePFTau")
Ejemplo n.º 5
0
                                                  patArgs=patArgs)
del process.out

# Pileup weighting
from HiggsAnalysis.HeavyChHiggsToTauNu.HChTools import *
import HiggsAnalysis.HeavyChHiggsToTauNu.HChSignalAnalysisParameters_cff as param

process.pileupWeight = cms.EDProducer(
    "HPlusVertexWeightProducer",
    alias=cms.string("pileupWeight"),
)
puweight = "Run2011AB"
if len(options.puWeightEra) > 0:
    puweight = options.puWeightEra
param.setPileupWeight(dataVersion,
                      process=process,
                      commonSequence=process.commonSequence,
                      era=puweight)
insertPSetContentsTo(param.vertexWeight, process.pileupWeight)
process.pileupWeight.vertexSrc = "offlinePrimaryVertices"
if dataVersion.isData():
    process.pileupWeight.enabled = False

process.commonSequence.insert(0, process.pileupWeight)
counterProto = cms.EDProducer("EventCountProducer")

# All events (after trigger)
process.allEventsCount = counterProto.clone()
process.eventPreSelection *= process.allEventsCount
counters.append("allEventsCount")

# Primary vertex
from HiggsAnalysis.HeavyChHiggsToTauNu.HChTools import *

# Vertex selection
from HiggsAnalysis.HeavyChHiggsToTauNu.HChPrimaryVertex import addPrimaryVertexSelection
addPrimaryVertexSelection(process, process.commonSequence)

# Pileup weights
import HiggsAnalysis.HeavyChHiggsToTauNu.HChSignalAnalysisParameters_cff as param
puWeights = [
    "Run2011A",
    "Run2011B",
    "Run2011AB",
    ]
puWeightNames = []
for era in puWeights:
    prodName = param.setPileupWeight(dataVersion, process=process, commonSequence=process.commonSequence, era=era)
    puWeightNames.append(prodName)
    process.commonSequence.remove(getattr(process, prodName))
    process.commonSequence.insert(0, getattr(process, prodName))

# FIXME: this is only a consequence of the swiss-knive effect...
process.commonSequence.remove(process.goodPrimaryVertices)
process.commonSequence.insert(0, process.goodPrimaryVertices)

# Switch to PF2PAT objects
#PF2PATVersion = "PFlow"
#param.changeCollectionsToPF2PAT(postfix=PF2PATVersion)

muons = cms.InputTag("tauEmbeddingMuons")
#taus = cms.InputTag("selectedPatTausShrinkingConePFTau")
taus = cms.InputTag("selectedPatTausHpsPFTau")
Ejemplo n.º 7
0
    outputCommands = cms.untracked.vstring(),
)
process.commonSequence, counters = addPatOnTheFly(process, options, dataVersion, patArgs=patArgs)
del process.out

# Pileup weighting
from HiggsAnalysis.HeavyChHiggsToTauNu.HChTools import *
import HiggsAnalysis.HeavyChHiggsToTauNu.HChSignalAnalysisParameters_cff as param

process.pileupWeight = cms.EDProducer("HPlusVertexWeightProducer",
    alias = cms.string("pileupWeight"),
)
puweight = "Run2011AB"
if len(options.puWeightEra) > 0:
        puweight = options.puWeightEra
param.setPileupWeight(dataVersion, process=process, commonSequence=process.commonSequence, era=puweight)
insertPSetContentsTo(param.vertexWeight, process.pileupWeight)
process.pileupWeight.vertexSrc = "offlinePrimaryVertices"
if dataVersion.isData():
    process.pileupWeight.enabled = False

process.commonSequence.insert(0, process.pileupWeight)
counterProto = cms.EDProducer( "EventCountProducer")

# All events (after trigger)
process.allEventsCount = counterProto.clone()
process.eventPreSelection *= process.allEventsCount
counters.append("allEventsCount")

# Primary vertex
process.firstPrimaryVertex = cms.EDProducer("HPlusFirstVertexSelector",
Ejemplo n.º 8
0
param.setAllTauSelectionSrcSelectedPatTausTriggerMatched()

# Switch to PF2PAT objects
#param.changeCollectionsToPF2PAT()
param.changeCollectionsToPF2PAT(postfix=PF2PATVersion)

# Trigger with scale factors (at the moment hard coded)
if applyTriggerScaleFactor and dataVersion.isMC():
    param.triggerEfficiencyScaleFactor.mode = "scaleFactor"

# Set the data scenario for vertex/pileup weighting
if len(options.puWeightEra) > 0:
    puweight = options.puWeightEra
param.setPileupWeight(dataVersion,
                      process=process,
                      commonSequence=process.commonSequence,
                      pset=param.vertexWeight,
                      psetReader=param.pileupWeightReader,
                      era=puweight)  # Reweight by true PU distribution
param.setDataTriggerEfficiency(dataVersion, era=puweight)
print "PU weight 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 dataVersion.isMC():