File indexing completed on 2025-06-03 00:12:45
0001 import FWCore.ParameterSet.Config as cms
0002 from Validation.RecoTau.RecoTauValidation_cfi import *
0003 import copy
0004
0005 import PhysicsTools.PatAlgos.tools.helpers as helpers
0006
0007 kinematicSelectedPFJets = cms.EDFilter(
0008 "TauValPFJetSelector",
0009 src = cms.InputTag('ak4PFJets'),
0010 cut = cms.string("pt > 15 & abs(eta) < 2.5"),
0011 filter = cms.bool(False)
0012 )
0013
0014 PFJetsId = cms.EDFilter(
0015 "TauValPFJetSelector",
0016 src = cms.InputTag('kinematicSelectedPFJets'),
0017 cut = cms.string("chargedHadronEnergyFraction > 0.0 & neutralHadronEnergyFraction < 0.99 & neutralHadronEnergyFraction < 0.99 & chargedEmEnergyFraction < 0.99 & chargedEmEnergyFraction < 0.99 & neutralEmEnergyFraction < 0.99 & chargedMultiplicity > 0 & nConstituents > 1"),
0018 filter = cms.bool(False)
0019 )
0020
0021 CleanedPFJets = cms.EDProducer("TauValJetViewCleaner",
0022 srcObject = cms.InputTag( "kinematicSelectedPFJets" ),
0023 srcObjectsToRemove = cms.VInputTag( cms.InputTag("muons"), cms.InputTag("gedGsfElectrons") ),
0024 deltaRMin = cms.double(0.15)
0025 )
0026
0027 procAttributes = dir(proc)
0028 helpers.cloneProcessingSnippet( proc, proc.TauValNumeratorAndDenominator, 'RealData')
0029 helpers.cloneProcessingSnippet( proc, proc.TauEfficiencies, 'RealData')
0030 helpers.massSearchReplaceAnyInputTag(proc.TauValNumeratorAndDenominatorRealData, 'kinematicSelectedTauValDenominator', 'CleanedPFJets')
0031
0032
0033 zttLabeler = lambda module : SetValidationExtention(module, 'RealData')
0034 zttModifier = ApplyFunctionToSequence(zttLabeler)
0035 proc.TauValNumeratorAndDenominatorRealData.visit(zttModifier)
0036
0037 binning = cms.PSet(
0038 pt = cms.PSet( nbins = cms.int32(25), min = cms.double(0.), max = cms.double(250.) ),
0039 eta = cms.PSet( nbins = cms.int32(4), min = cms.double(-3.), max = cms.double(3.) ),
0040 phi = cms.PSet( nbins = cms.int32(4), min = cms.double(-180.), max = cms.double(180.) ),
0041 pileup = cms.PSet( nbins = cms.int32(18), min = cms.double(0.), max = cms.double(72.) ),
0042 )
0043 zttModifier = ApplyFunctionToSequence(lambda m: setBinning(m,binning))
0044 proc.TauValNumeratorAndDenominatorRealData.visit(zttModifier)
0045
0046
0047
0048 discs_to_retain = ['ByDecayModeFinding', 'CombinedIsolationDBSumPtCorr3Hits', 'IsolationMVArun2v1DBoldDMwLT', 'IsolationMVArun2v1DBnewDMwLT']
0049 proc.RunHPSValidationRealData.discriminators = cms.VPSet([p for p in proc.RunHPSValidationRealData.discriminators if any(disc in p.discriminator.value() for disc in discs_to_retain) ])
0050
0051
0052 proc.efficienciesRealData.plots = Utils.SetPlotSequence(proc.TauValNumeratorAndDenominatorRealData)
0053 proc.efficienciesRealDataSummary = cms.EDProducer("TauDQMHistEffProducer",
0054 plots = cms.PSet(
0055 Summary = cms.PSet(
0056 denominator = cms.string('RecoTauV/standardValidation/hpsPFTauProducerRealData_Summary/#PAR#PlotDen'),
0057 efficiency = cms.string('RecoTauV/standardValidation/hpsPFTauProducerRealData_Summary/#PAR#Plot'),
0058 numerator = cms.string('RecoTauV/standardValidation/hpsPFTauProducerRealData_Summary/#PAR#PlotNum'),
0059 parameter = cms.vstring('summary'),
0060 stepByStep = cms.bool(True)
0061 ),
0062 )
0063 )
0064
0065
0066 newProcAttributes = [x for x in dir(proc) if (x not in procAttributes) and (x.find('RealData') != -1)]
0067
0068
0069 for newAttr in newProcAttributes:
0070 locals()[newAttr] = getattr(proc,newAttr)
0071
0072
0073 produceDenominatorRealData = cms.Sequence(
0074 cms.ignore(kinematicSelectedPFJets) *
0075 cms.ignore(PFJetsId) *
0076 CleanedPFJets
0077 )
0078
0079 produceDenominator = cms.Sequence(produceDenominatorRealData)
0080
0081 runTauValidationBatchMode = cms.Sequence(
0082 produceDenominatorRealData
0083 +TauValNumeratorAndDenominatorRealData
0084 )
0085
0086 runTauValidation = cms.Sequence(
0087 runTauValidationBatchMode
0088 +TauEfficienciesRealData
0089 )