1 import FWCore.ParameterSet.Config
as cms
5 hplusTrackQualityCuts = PFTauQualityCuts.clone()
6 hplusTrackQualityCuts.maxTrackChi2 = cms.double(10.)
7 hplusTrackQualityCuts.minTrackHits = cms.uint32(8)
24 if tau !=
"hpsTancTaus":
25 producerPostfix =
"Producer" 26 module.PFTauProducer = cms.InputTag(tau+producerPostfix)
27 process.__setattr__(tau+name, module)
31 leadingTrackFinding = tau+
"DiscriminationByLeadingTrackFinding" 33 leadingTrackFinding = tau+
"DiscriminationByDecayModeFinding" 37 lst.append(
addDiscriminator(process, tau,
"DiscriminationForChargedHiggsByLeadingTrackPtCut",
38 pfRecoTauDiscriminationByLeadingTrackPtCut.clone(
39 MinPtLeadingObject = cms.double(20.0),
40 qualityCuts = hplusTrackQualityCuts
44 pfRecoTauDiscriminationByCharge.clone()))
47 lst.append(
addDiscriminator(process, tau,
"DiscriminationForChargedHiggsByECALIsolation",
48 pfRecoTauDiscriminationByECALIsolation.clone()))
49 lst[-1].Prediscriminants.leadTrack.Producer = cms.InputTag(leadingTrackFinding)
51 lst.append(
addDiscriminator(process, tau,
"DiscriminationForChargedHiggsAgainstElectron",
52 pfRecoTauDiscriminationAgainstElectron.clone()))
53 lst[-1].Prediscriminants.leadTrack.Producer = cms.InputTag(leadingTrackFinding)
55 lst.append(
addDiscriminator(process, tau,
"DiscriminationForChargedHiggsAgainstMuon",
56 pfRecoTauDiscriminationAgainstMuon.clone()))
57 lst[-1].Prediscriminants.leadTrack.Producer = cms.InputTag(leadingTrackFinding)
60 pfRecoTauDiscriminationByTauPolarization.clone()))
61 lst[-1].Prediscriminants.leadTrack.Producer = cms.InputTag(leadingTrackFinding)
64 pfRecoTauDiscriminationByDeltaE.clone()))
65 lst[-1].Prediscriminants.leadTrack.Producer = cms.InputTag(leadingTrackFinding)
68 pfRecoTauDiscriminationByInvMass.clone()))
69 lst[-1].Prediscriminants.leadTrack.Producer = cms.InputTag(leadingTrackFinding)
71 lst.append(
addDiscriminator(process, tau,
"DiscriminationByFlightPathSignificance",
72 pfRecoTauDiscriminationByFlightPathSignificance.clone()))
73 lst[-1].Prediscriminants.leadTrack.Producer = cms.InputTag(leadingTrackFinding)
76 pfRecoTauDiscriminationByNProngs.clone(
77 nProngs = cms.uint32(1)
79 lst[-1].Prediscriminants.leadTrack.Producer = cms.InputTag(leadingTrackFinding)
82 pfRecoTauDiscriminationByNProngs.clone(
83 nProngs = cms.uint32(3)
85 lst[-1].Prediscriminants.leadTrack.Producer = cms.InputTag(leadingTrackFinding)
87 lst.append(
addDiscriminator(process, tau,
"DiscriminationForChargedHiggsBy3ProngCombined",
88 pfRecoTauDiscriminationByNProngs.clone(
89 nProngs = cms.uint32(3),
90 Prediscriminants = cms.PSet(
91 BooleanOperator = cms.string(
"and"),
93 Producer = cms.InputTag(leadingTrackFinding),
97 Producer = cms.InputTag(tau+
'DiscriminationByDeltaE'),
101 Producer = cms.InputTag(tau+
'DiscriminationByInvMass'),
102 cut = cms.double(0.5)
104 flightPathSig = cms.PSet(
105 Producer = cms.InputTag(tau+
'DiscriminationByFlightPathSignificance'),
106 cut = cms.double(0.5)
110 lst[-1].Prediscriminants.leadTrack.Producer = cms.InputTag(leadingTrackFinding)
112 lst.append(
addDiscriminator(process, tau,
"DiscriminationForChargedHiggsBy1or3Prongs",
113 pfRecoTauDiscriminationByLeadingTrackFinding.clone(
114 Prediscriminants = cms.PSet(
115 BooleanOperator = cms.string(
"or"),
117 Producer = cms.InputTag(tau+
'DiscriminationBy1Prong'),
118 cut = cms.double(0.5)
120 threeProng = cms.PSet(
121 Producer = cms.InputTag(tau+
'DiscriminationForChargedHiggsBy3ProngCombined'),
122 cut = cms.double(0.5)
127 pfRecoTauDiscriminationByTrackIsolation.clone(
128 Prediscriminants = cms.PSet(
129 BooleanOperator = cms.string(
"and"),
130 leadingTrack = cms.PSet(
131 Producer = cms.InputTag(tau+
'DiscriminationForChargedHiggsByLeadingTrackPtCut'),
132 cut = cms.double(0.5)
135 Producer = cms.InputTag(tau+
'DiscriminationByCharge'),
136 cut = cms.double(0.5)
138 ecalIsolation = cms.PSet(
139 Producer = cms.InputTag(tau+
'DiscriminationForChargedHiggsByECALIsolation'),
140 cut = cms.double(0.5)
142 electronVeto = cms.PSet(
143 Producer = cms.InputTag(tau+
'DiscriminationForChargedHiggsAgainstElectron'),
144 cut = cms.double(0.5)
146 polarization = cms.PSet(
147 Producer = cms.InputTag(tau+
'DiscriminationByTauPolarization'),
148 cut = cms.double(0.5)
151 Producer = cms.InputTag(tau+
'DiscriminationForChargedHiggsBy1or3Prongs'),
152 cut = cms.double(0.5)
157 sequence = cms.Sequence()
161 process.__setattr__(tau+
"HplusDiscriminationSequence", sequence)
165 process.PFTauDiscriminationSequenceForChargedHiggs = cms.Sequence()
166 for algo
in tauAlgos:
169 return process.PFTauDiscriminationSequenceForChargedHiggs
def addDiscriminatorSequence(process, tau)
def addPFTauDiscriminationSequenceForChargedHiggs(process, tauAlgos=["shrinkingConePFTau"])
def addDiscriminator(process, tau, name, module)