CMS 3D CMS Logo

PFRecoTauDiscriminationByHPSSelection_cfi.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 from RecoTauTag.RecoTau.TauDiscriminatorTools import noPrediscriminants
4 from RecoTauTag.RecoTau.PFRecoTauPFJetInputs_cfi import PFRecoTauPFJetInputs
5 
6 minPi0Mass_default = -1.e3
7 maxPi0Mass_default = 1.e9
8 assumeStripMass_default = -1.0
9 
10 decayMode_1Prong0Pi0 = cms.PSet(
11  nCharged = cms.uint32(1),
12  nPiZeros = cms.uint32(0),
13  nTracksMin = cms.uint32(1),
14  nChargedPFCandsMin = cms.uint32(1),
15  # Always passes
16  # If an PF electron is selected as the lead track, the tau can have
17  # negative mass. FIXME - investigate this
18  minMass = cms.double(-1.e3),
19  maxMass = cms.string("1."),
20  minPi0Mass = cms.double(minPi0Mass_default),
21  maxPi0Mass = cms.double(maxPi0Mass_default),
22  # for XProng0Pi0 decay modes bending corrections are transparent
23  assumeStripMass = cms.double(assumeStripMass_default),
24  applyBendCorrection = cms.PSet(
25  eta = cms.bool(True),
26  phi = cms.bool(True),
27  mass = cms.bool(True)
28  )
29 )
30 decayMode_1Prong1Pi0 = cms.PSet(
31  nCharged = cms.uint32(1),
32  nPiZeros = cms.uint32(1),
33  nTracksMin = cms.uint32(1),
34  nChargedPFCandsMin = cms.uint32(1),
35  minMass = cms.double(0.3),
36  maxMass = cms.string("max(1.3, min(1.3*sqrt(pt/100.), 4.2))"),
37  minPi0Mass = cms.double(minPi0Mass_default),
38  maxPi0Mass = cms.double(maxPi0Mass_default),
39  assumeStripMass = cms.double(0.1349),
40  applyBendCorrection = cms.PSet(
41  eta = cms.bool(True),
42  phi = cms.bool(True),
43  mass = cms.bool(True)
44  )
45 )
46 decayMode_1Prong2Pi0 = cms.PSet(
47  nCharged = cms.uint32(1),
48  nPiZeros = cms.uint32(2),
49  nTracksMin = cms.uint32(1),
50  nChargedPFCandsMin = cms.uint32(1),
51  minMass = cms.double(0.4),
52  maxMass = cms.string("max(1.2, min(1.2*sqrt(pt/100.), 4.0))"),
53  minPi0Mass = cms.double(0.05),
54  maxPi0Mass = cms.double(0.2),
55  # Here the strips are assumed to correspond to photons
56  assumeStripMass = cms.double(0.0),
57  applyBendCorrection = cms.PSet(
58  eta = cms.bool(True),
59  phi = cms.bool(True),
60  mass = cms.bool(True)
61  )
62 )
63 decayMode_2Prong0Pi0 = cms.PSet(
64  nCharged = cms.uint32(2),
65  nPiZeros = cms.uint32(0),
66  nTracksMin = cms.uint32(2),
67  nChargedPFCandsMin = cms.uint32(1),
68  minMass = cms.double(0.),
69  maxMass = cms.string("1.2"),
70  minPi0Mass = cms.double(minPi0Mass_default),
71  maxPi0Mass = cms.double(maxPi0Mass_default),
72  # for XProng0Pi0 decay modes bending corrections are transparent
73  assumeStripMass = cms.double(assumeStripMass_default),
74  applyBendCorrection = cms.PSet(
75  eta = cms.bool(False),
76  phi = cms.bool(False),
77  mass = cms.bool(False)
78  )
79 )
80 decayMode_2Prong1Pi0 = cms.PSet(
81  nCharged = cms.uint32(2),
82  nPiZeros = cms.uint32(1),
83  nTracksMin = cms.uint32(2),
84  nChargedPFCandsMin = cms.uint32(1),
85  minMass = cms.double(0.),
86  maxMass = cms.string("max(1.2, min(1.2*sqrt(pt/100.), 4.0))"),
87  minPi0Mass = cms.double(minPi0Mass_default),
88  maxPi0Mass = cms.double(maxPi0Mass_default),
89  assumeStripMass = cms.double(assumeStripMass_default),
90  applyBendCorrection = cms.PSet(
91  eta = cms.bool(False),
92  phi = cms.bool(False),
93  mass = cms.bool(False)
94  )
95 )
96 decayMode_3Prong0Pi0 = cms.PSet(
97  nCharged = cms.uint32(3),
98  nPiZeros = cms.uint32(0),
99  nTracksMin = cms.uint32(2),
100  nChargedPFCandsMin = cms.uint32(1),
101  minMass = cms.double(0.8),
102  maxMass = cms.string("1.5"),
103  minPi0Mass = cms.double(minPi0Mass_default),
104  maxPi0Mass = cms.double(maxPi0Mass_default),
105  assumeStripMass = cms.double(assumeStripMass_default),
106  applyBendCorrection = cms.PSet(
107  eta = cms.bool(False),
108  phi = cms.bool(False),
109  mass = cms.bool(False)
110  )
111 )
112 decayMode_3Prong1Pi0 = cms.PSet( #suggestions made by CV
113  nCharged = cms.uint32(3),
114  nPiZeros = cms.uint32(1),
115  nTracksMin = cms.uint32(2),
116  nChargedPFCandsMin = cms.uint32(1),
117  minMass = cms.double(0.9),
118  maxMass = cms.string("1.6"),
119  minPi0Mass = cms.double(minPi0Mass_default),
120  maxPi0Mass = cms.double(maxPi0Mass_default),
121  # for XProng0Pi0 decay modes bending corrections are transparent
122  assumeStripMass = cms.double(assumeStripMass_default),
123  applyBendCorrection = cms.PSet(
124  eta = cms.bool(False),
125  phi = cms.bool(False),
126  mass = cms.bool(False)
127  )
128 )
129 
130 hpsSelectionDiscriminator = cms.EDProducer(
131  "PFRecoTauDiscriminationByHPSSelection",
132  PFTauProducer = cms.InputTag('combinatoricRecoTaus'),
133  Prediscriminants = noPrediscriminants,
134  matchingCone = PFRecoTauPFJetInputs.jetConeSize,
135  minTauPt = cms.double(0.0),
136  decayModes = cms.VPSet(
137  decayMode_1Prong0Pi0,
138  decayMode_1Prong1Pi0,
139  decayMode_1Prong2Pi0,
140  decayMode_2Prong0Pi0,
141  decayMode_2Prong1Pi0,
142  decayMode_3Prong0Pi0,
143  decayMode_3Prong1Pi0
144  ),
145  requireTauChargedHadronsToBeChargedPFCands = cms.bool(False),
146  # CV: require at least one pixel hit for the sum of all tracks
147  minPixelHits = cms.int32(1),
148  verbosity = cms.int32(0)
149 )
150 
151 
152