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()
# 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,