ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/HbbAnalysis/python/pfTauConfig_cff.py
Revision: 1.2
Committed: Fri Apr 17 14:26:35 2009 UTC (16 years ago) by amagnan
Content type: text/x-python
Branch: MAIN
CVS Tags: v00-02-01, v00-02-00, v00-01-00
Changes since 1.1: +92 -5 lines
Log Message:
add Tau histos+debug btag for JPT/PF jets

File Contents

# Content
1 ########################################
2 #### Created 08-Apr-09
3 #### by A.-M. Magnan
4 #### a.magnan@imperial.ac.uk
5 ########################################
6
7 import FWCore.ParameterSet.Config as cms
8 import copy
9
10 from RecoTauTag.Configuration.RecoPFTauTag_cff import *
11
12 ######################################################################################
13 #### Reco tau producer
14 ######################################################################################
15
16 pfRecoTauProducerForTauAnalyses = copy.deepcopy(pfRecoTauProducer)
17
18 ### leading track/charged/neutral pion finding ###
19 pfRecoTauProducerForTauAnalyses.LeadTrack_minPt = cms.double(5.0)
20 pfRecoTauProducerForTauAnalyses.Track_minPt = cms.double(1.0)
21 pfRecoTauProducerForTauAnalyses.Track_IsolAnnulus_minNhits = 8
22 pfRecoTauProducerForTauAnalyses.PFCand_minPt = cms.double(0.5)
23 pfRecoTauProducerForTauAnalyses.LeadPFCand_minPt = cms.double(5.0)
24
25 pfRecoTauProducerForTauAnalyses.LeadChargedHadrCand_minPt = cms.double(5.0)
26 pfRecoTauProducerForTauAnalyses.ChargedHadrCand_minPt = 1.0
27 pfRecoTauProducerForTauAnalyses.ChargedHadrCand_IsolAnnulus_minNhits = 8
28 pfRecoTauProducerForTauAnalyses.ChargedHadrCandLeadChargedHadrCand_tksmaxDZ = cms.double(0.2)
29 pfRecoTauProducerForTauAnalyses.UseChargedHadrCandLeadChargedHadrCand_tksDZconstraint = cms.bool(True)
30
31 pfRecoTauProducerForTauAnalyses.GammaCand_minPt = 1.5
32 pfRecoTauProducerForTauAnalyses.NeutrHadrCand_minPt = cms.double(1.0)
33
34 pfRecoTauProducerForTauAnalyses.TrackLeadTrack_maxDZ = cms.double(0.2)
35 pfRecoTauProducerForTauAnalyses.UseTrackLeadTrackDZconstraint = cms.bool(True)
36
37 pfRecoTauProducerForTauAnalyses.smearedPVsigmaY = cms.double(0.0015)
38 pfRecoTauProducerForTauAnalyses.smearedPVsigmaX = cms.double(0.0015)
39 pfRecoTauProducerForTauAnalyses.smearedPVsigmaZ = cms.double(0.005)
40 ### Match ###
41 pfRecoTauProducerForTauAnalyses.MatchingConeMetric = "DR"
42 pfRecoTauProducerForTauAnalyses.MatchingConeSizeFormula = "0.1"
43 pfRecoTauProducerForTauAnalyses.MatchingConeSize_max = 0.1
44 pfRecoTauProducerForTauAnalyses.MatchingConeSize_min = 0.0
45 ### Trk Sig ###
46 pfRecoTauProducerForTauAnalyses.TrackerSignalConeMetric = "DR"
47 pfRecoTauProducerForTauAnalyses.TrackerSignalConeSizeFormula = "5.0/ET"
48 pfRecoTauProducerForTauAnalyses.TrackerSignalConeSize_min = 0.07
49 pfRecoTauProducerForTauAnalyses.TrackerSignalConeSize_max = 0.15
50 ### Trk Iso ###
51 pfRecoTauProducerForTauAnalyses.TrackerIsolConeMetric = "DR"
52 pfRecoTauProducerForTauAnalyses.TrackerIsolConeSizeFormula = "0.5"
53 pfRecoTauProducerForTauAnalyses.TrackerIsolConeSize_max = "1.0"
54 pfRecoTauProducerForTauAnalyses.TrackerIsolConeSize_min = "0.0"
55 ### Ecal Sig ###
56 pfRecoTauProducerForTauAnalyses.ECALSignalConeMetric = "DR"
57 pfRecoTauProducerForTauAnalyses.ECALSignalConeSizeFormula = "0.15"
58 pfRecoTauProducerForTauAnalyses.ECALSignalConeSize_max = "0.15"
59 pfRecoTauProducerForTauAnalyses.ECALSignalConeSize_min = "0.0"
60 ### Ecal Iso ###
61 pfRecoTauProducerForTauAnalyses.ECALIsolConeMetric = "DR"
62 pfRecoTauProducerForTauAnalyses.ECALIsolConeSizeFormula = "0.50"
63 pfRecoTauProducerForTauAnalyses.ECALIsolConeSize_max = "1.0"
64 pfRecoTauProducerForTauAnalyses.ECALIsolConeSize_min = "0.0"
65 ### FixedArea ###
66 pfRecoTauProducerForTauAnalyses.AreaMetric_recoElements_maxabsEta = cms.double(2.5)
67 ### Electron rejection ###
68 pfRecoTauProducerForTauAnalyses.ElectronPreIDProducer = cms.InputTag("elecpreid")
69 pfRecoTauProducerForTauAnalyses.EcalStripSumE_deltaPhiOverQ_minValue = cms.double(-0.1)
70 pfRecoTauProducerForTauAnalyses.EcalStripSumE_deltaPhiOverQ_maxValue = cms.double(0.5)
71 pfRecoTauProducerForTauAnalyses.EcalStripSumE_minClusEnergy = cms.double(0.1)
72 pfRecoTauProducerForTauAnalyses.EcalStripSumE_deltaEta = cms.double(0.03)
73 pfRecoTauProducerForTauAnalyses.ElecPreIDLeadTkMatch_maxDR = cms.double(0.01)
74
75 pfRecoTauProducerForTauAnalyses.DataType = cms.string("AOD")
76
77 pfRecoTauPreDiscriminationForTauAnalyses = copy.deepcopy(pfRecoTauDiscriminationByIsolation)
78 pfRecoTauPreDiscriminationForTauAnalyses.PFTauProducer = 'pfRecoTauProducerForTauAnalyses'
79
80 ######################################################################################
81 #### PAT layer 0
82 ######################################################################################
83
84 from PhysicsTools.PatAlgos.cleaningLayer0.pfTauCleaner_cfi import *
85
86 allLayer0PFTausForTauAnalyses = copy.deepcopy(allLayer0Taus)
87 allLayer0PFTausForTauAnalyses.tauSource = cms.InputTag("pfRecoTauProducerForTauAnalyses") #pfRecoTauProducerHighEfficiency
88 allLayer0PFTausForTauAnalyses.tauDiscriminatorSource = cms.InputTag("pfRecoTauPreDiscriminationForTauAnalyses") #...HighEfficiency
89
90 allLayer0PFTausForTauAnalyses.removeOverlaps = cms.PSet(
91 ## Flag or discard taus that match with clean electrons
92 #electrons = cms.PSet(
93 # collection = cms.InputTag("allLayer0Electrons")
94 # deltaR = cms.double(0.3)
95 #)
96 )
97
98
99 ######################################################################################
100 #### tau discriminators
101 ######################################################################################
102
103 #from PhysicsTools.PatAlgos.recoLayer0.tauDiscriminators_cff import *
104
105 #copy the PFTauDiscriminator producer;
106 #instead of the AOD reco::PFTau collection, set the reco::PFTaus collection produced by PAT layer 0 cleaning
107 #as reference for PFTauDiscriminator objects
108 patPFRecoTauDiscriminationByIsolationForTauAnalyses = copy.deepcopy(pfRecoTauDiscriminationByIsolation)
109 patPFRecoTauDiscriminationByIsolationForTauAnalyses.PFTauProducer = cms.InputTag('allLayer0PFTausForTauAnalyses')
110
111 patPFRecoTauDiscriminationByLeadingTrackFindingForTauAnalyses = copy.deepcopy(pfRecoTauDiscriminationByLeadingTrackFinding)
112 patPFRecoTauDiscriminationByLeadingTrackFindingForTauAnalyses.PFTauProducer = cms.InputTag('allLayer0PFTausForTauAnalyses')
113
114 patPFRecoTauDiscriminationByLeadingTrackPtCutForTauAnalyses = copy.deepcopy(pfRecoTauDiscriminationByLeadingTrackPtCut)
115 patPFRecoTauDiscriminationByLeadingTrackPtCutForTauAnalyses.PFTauProducer = cms.InputTag('allLayer0PFTausForTauAnalyses')
116
117 patPFRecoTauDiscriminationByTrackIsolationForTauAnalyses = copy.deepcopy(pfRecoTauDiscriminationByTrackIsolation)
118 patPFRecoTauDiscriminationByTrackIsolationForTauAnalyses.PFTauProducer = cms.InputTag('allLayer0PFTausForTauAnalyses')
119
120 patPFRecoTauDiscriminationByECALIsolationForTauAnalyses = copy.deepcopy(pfRecoTauDiscriminationByECALIsolation)
121 patPFRecoTauDiscriminationByECALIsolationForTauAnalyses.PFTauProducer = cms.InputTag('allLayer0PFTausForTauAnalyses')
122
123 patPFRecoTauDiscriminationAgainstElectronForTauAnalyses = copy.deepcopy(pfRecoTauDiscriminationAgainstElectron)
124 patPFRecoTauDiscriminationAgainstElectronForTauAnalyses.PFTauProducer = cms.InputTag('allLayer0PFTausForTauAnalyses')
125
126 patPFRecoTauDiscriminationAgainstMuonForTauAnalyses = copy.deepcopy(pfRecoTauDiscriminationAgainstMuon)
127 patPFRecoTauDiscriminationAgainstMuonForTauAnalyses.PFTauProducer = cms.InputTag('allLayer0PFTausForTauAnalyses')
128
129 patPFTauDiscriminationForTauAnalyses = cms.Sequence(
130 patPFRecoTauDiscriminationByIsolationForTauAnalyses
131 +patPFRecoTauDiscriminationByLeadingTrackFindingForTauAnalyses
132 +patPFRecoTauDiscriminationByLeadingTrackPtCutForTauAnalyses
133 +patPFRecoTauDiscriminationByTrackIsolationForTauAnalyses
134 +patPFRecoTauDiscriminationByECALIsolationForTauAnalyses
135 +patPFRecoTauDiscriminationAgainstElectronForTauAnalyses
136 +patPFRecoTauDiscriminationAgainstMuonForTauAnalyses
137 )
138
139
140 ######################################################################################
141 #### tau isolation
142 ######################################################################################
143
144
145 #beforeLayer0
146 from PhysicsTools.PatAlgos.recoLayer0.tauIsolation_cff import *
147 from PhysicsTools.PatAlgos.recoLayer0.pfCandidateIsoDepositSelection_cff import *
148
149 tauIsoDepositPFCandidatesForTauAnalyses = copy.deepcopy(tauIsoDepositPFCandidates)
150 tauIsoDepositPFCandidatesForTauAnalyses.src = cms.InputTag("pfRecoTauProducerForTauAnalyses")
151 tauIsoDepositPFCandidatesForTauAnalyses.trackType = cms.string('candidate')
152 tauIsoDepositPFCandidatesForTauAnalyses.ExtractorPSet = cms.PSet(
153 # PFTau specific Extractor, which allows to exclude particles within tau signal cone from IsoDeposit computation
154 ComponentName = cms.string('PFTauExtractor'),
155
156 # collection of PFCandidates to be used for IsoDeposit computation
157 candidateSource = cms.InputTag("particleFlow"),
158
159 # size of outer cone for which IsoDeposits are computed
160 DR_Max = cms.double(1.0),
161 # size of inner cone excluded from IsoDeposit computation
162 DR_Veto = cms.double(0.),
163
164 # distance in zVertex between tau production vertex and PFCandidates included in IsoDeposit computation
165 Diff_z = cms.double(0.2),
166 # distance in x-y between tau production vertex and PFCandidates included in IsoDeposit computation
167 Diff_r = cms.double(0.1),
168
169 # collection of PFTaus, needed for excluding particles in tau signal cone from IsoDeposit
170 tauSource = cms.InputTag("pfRecoTauProducerForTauAnalyses"),
171 # maximum distance in eta-phi, needed to match PFTau to direction passed as function argument to Extractor
172 dRmatchPFTau = cms.double(0.1),
173 # size of cones around tau signal cone particles excluded from IsoDeposit computation
174 dRvetoPFTauSignalConeConstituents = cms.double(0.01),
175
176 DepositLabel = cms.untracked.string('')
177 )
178
179
180 tauIsoDepositPFChargedHadronsForTauAnalyses = copy.deepcopy(tauIsoDepositPFCandidatesForTauAnalyses)
181 tauIsoDepositPFChargedHadronsForTauAnalyses.ExtractorPSet.candidateSource = cms.InputTag("pfAllChargedHadrons")
182
183 tauIsoDepositPFNeutralHadronsForTauAnalyses = copy.deepcopy(tauIsoDepositPFCandidatesForTauAnalyses)
184 tauIsoDepositPFNeutralHadronsForTauAnalyses.ExtractorPSet.candidateSource = cms.InputTag("pfAllNeutralHadrons")
185
186 tauIsoDepositPFGammasForTauAnalyses = copy.deepcopy(tauIsoDepositPFCandidatesForTauAnalyses)
187 tauIsoDepositPFGammasForTauAnalyses.ExtractorPSet.candidateSource = cms.InputTag("pfAllPhotons")
188
189
190 patPFTauIsolationForTauAnalyses = cms.Sequence( tauIsoDepositPFCandidatesForTauAnalyses
191 *tauIsoDepositPFChargedHadronsForTauAnalyses
192 *tauIsoDepositPFNeutralHadronsForTauAnalyses
193 *tauIsoDepositPFGammasForTauAnalyses
194 )
195
196 patAODPFTauIsolationLabelsForTauAnalyses = cms.VInputTag(
197 cms.InputTag("tauIsoDepositPFCandidatesForTauAnalyses"),
198 cms.InputTag("tauIsoDepositPFChargedHadronsForTauAnalyses"),
199 cms.InputTag("tauIsoDepositPFNeutralHadronsForTauAnalyses"),
200 cms.InputTag("tauIsoDepositPFGammasForTauAnalyses")
201 )
202
203 patAODPFTauIsolationForTauAnalyses = copy.deepcopy(patAODPFTauIsolation)
204 patAODPFTauIsolationForTauAnalyses.collection = cms.InputTag("pfRecoTauProducerForTauAnalyses")
205 patAODPFTauIsolationForTauAnalyses.associations = patAODPFTauIsolationLabelsForTauAnalyses
206
207 patLayer0PFTauIsolationForTauAnalyses = copy.deepcopy(patLayer0PFTauIsolation)
208 patLayer0PFTauIsolationForTauAnalyses.collection = cms.InputTag("allLayer0PFTausForTauAnalyses")
209 patLayer0PFTauIsolationForTauAnalyses.backrefs = cms.InputTag("allLayer0PFTausForTauAnalyses")
210 patLayer0PFTauIsolationForTauAnalyses.commonLabel = cms.InputTag("patAODPFTauIsolationForTauAnalyses")
211 patLayer0PFTauIsolationForTauAnalyses.associations = patAODPFTauIsolationLabelsForTauAnalyses
212
213
214
215 ######################################################################################
216 #### trigger matching
217 ######################################################################################
218
219
220
221 ######################################################################################
222 #### MC matching
223 ######################################################################################
224
225 from PhysicsTools.PatAlgos.mcMatchLayer0.tauMatch_cfi import *
226
227 pfTauMatchForTauAnalyses = copy.deepcopy(tauMatch)
228 pfTauMatchForTauAnalyses.src = cms.InputTag("allLayer0PFTausForTauAnalyses")
229 pfTauMatchForTauAnalyses.matched = cms.InputTag("genParticles")
230 pfTauMatchForTauAnalyses.mcPdgId = cms.vint32(15)
231 pfTauMatchForTauAnalyses.checkCharge = cms.bool(True)
232 pfTauMatchForTauAnalyses.mcStatus = cms.vint32(2) # PYTHIA status code (1 = stable, 2 = shower, 3 = hard scattering)
233 # NOTE that Taus can only be status 3 or 2, never 1!
234 pfTauMatchForTauAnalyses.maxDeltaR = cms.double(0.3)
235 pfTauMatchForTauAnalyses.maxDPtRel = cms.double(3.0)
236 pfTauMatchForTauAnalyses.resolveAmbiguities = cms.bool(True)
237 pfTauMatchForTauAnalyses.resolveByMatchQuality = cms.bool(False)
238
239 pfTauGenJetMatchForTauAnalyses = copy.deepcopy(tauGenJetMatch)
240 pfTauGenJetMatchForTauAnalyses.src = cms.InputTag("allLayer0PFTausForTauAnalyses")
241 pfTauGenJetMatchForTauAnalyses.matched = cms.InputTag("tauGenJets")
242 pfTauGenJetMatchForTauAnalyses.maxDeltaR = cms.double(0.1)
243 pfTauGenJetMatchForTauAnalyses.maxDPtRel = cms.double(3.0)
244 pfTauGenJetMatchForTauAnalyses.resolveAmbiguities = cms.bool(True)
245 pfTauGenJetMatchForTauAnalyses.resolveByMatchQuality = cms.bool(False)
246
247
248 ######################################################################################
249 #### PAT layer 1
250 ######################################################################################
251
252 from PhysicsTools.PatAlgos.producersLayer1.tauProducer_cfi import *
253
254
255 allLayer1PFTausForTauAnalyses = copy.deepcopy(allLayer1Taus)
256 allLayer1PFTausForTauAnalyses.tauSource = cms.InputTag("allLayer0PFTausForTauAnalyses")
257
258 allLayer1PFTausForTauAnalyses.embedLeadTrack = cms.bool(True)
259 allLayer1PFTausForTauAnalyses.embedSignalTracks = cms.bool(True)
260 allLayer1PFTausForTauAnalyses.embedIsolationTracks = cms.bool(True)
261
262 allLayer1PFTausForTauAnalyses.isoDeposits.pfAllParticles = cms.InputTag("patLayer0PFTauIsolationForTauAnalyses", "tauIsoDepositPFCandidatesForTauAnalyses")
263 allLayer1PFTausForTauAnalyses.isoDeposits.pfChargedHadron = cms.InputTag("patLayer0PFTauIsolationForTauAnalyses", "tauIsoDepositPFChargedHadronsForTauAnalyses")
264 allLayer1PFTausForTauAnalyses.isoDeposits.pfNeutralHadron = cms.InputTag("patLayer0PFTauIsolationForTauAnalyses", "tauIsoDepositPFNeutralHadronsForTauAnalyses")
265 allLayer1PFTausForTauAnalyses.isoDeposits.pfGamma = cms.InputTag("patLayer0PFTauIsolationForTauAnalyses", "tauIsoDepositPFGammasForTauAnalyses")
266 allLayer1PFTausForTauAnalyses.isolation.pfAllParticles.src = allLayer1PFTausForTauAnalyses.isoDeposits.pfAllParticles
267 allLayer1PFTausForTauAnalyses.isolation.pfChargedHadron.src = allLayer1PFTausForTauAnalyses.isoDeposits.pfChargedHadron
268 allLayer1PFTausForTauAnalyses.isolation.pfNeutralHadron.src = allLayer1PFTausForTauAnalyses.isoDeposits.pfNeutralHadron
269 allLayer1PFTausForTauAnalyses.isolation.pfGamma.src = allLayer1PFTausForTauAnalyses.isoDeposits.pfGamma
270
271 #allLayer1PFTausForTauAnalyses.isolation = cms.PSet()
272 #allLayer1PFTausForTauAnalyses.isoDeposits = cms.PSet()
273
274 allLayer1PFTausForTauAnalyses.addTauID = cms.bool(True)
275 allLayer1PFTausForTauAnalyses.tauIDSources = cms.PSet(
276 leadingTrackFinding = cms.InputTag("patPFRecoTauDiscriminationByLeadingTrackFindingForTauAnalyses"),
277 leadingTrackPtCut = cms.InputTag("patPFRecoTauDiscriminationByLeadingTrackPtCutForTauAnalyses"),
278 trackIsolation = cms.InputTag("patPFRecoTauDiscriminationByTrackIsolationForTauAnalyses"),
279 ecalIsolation = cms.InputTag("patPFRecoTauDiscriminationByECALIsolationForTauAnalyses"),
280 byIsolation = cms.InputTag("patPFRecoTauDiscriminationByIsolationForTauAnalyses"),
281 againstElectron = cms.InputTag("patPFRecoTauDiscriminationAgainstElectronForTauAnalyses"),
282 againstMuon = cms.InputTag("patPFRecoTauDiscriminationAgainstMuonForTauAnalyses")
283 )
284
285 allLayer1PFTausForTauAnalyses.addTrigMatch = cms.bool(False)
286 #trigPrimMatch = cms.VInputTag(cms.InputTag("tauTrigMatchHLT1Tau"))
287
288 allLayer1PFTausForTauAnalyses.addGenMatch = cms.bool(True)
289 allLayer1PFTausForTauAnalyses.embedGenMatch = cms.bool(True)
290 allLayer1PFTausForTauAnalyses.genParticleMatch = cms.InputTag("pfTauMatchForTauAnalyses")
291
292 allLayer1PFTausForTauAnalyses.addGenJetMatch = cms.bool(True)
293 allLayer1PFTausForTauAnalyses.embedGenJetMatch = cms.bool(True)
294
295 allLayer1PFTausForTauAnalyses.genJetMatch = cms.InputTag("pfTauGenJetMatchForTauAnalyses")
296
297
298 ######################################################################################
299 #### Final PAT sequences
300 ######################################################################################
301
302 patBeforeLayer0AODPFTauDiscrimination = cms.Sequence( pfRecoTauProducerForTauAnalyses
303 *pfRecoTauPreDiscriminationForTauAnalyses
304 *patAODPFCandidateIsoDepositSelection
305 *patPFTauIsolationForTauAnalyses
306 *patAODPFTauIsolationForTauAnalyses
307 )
308
309 patLayer0PFTausForTauAnalyses = cms.Sequence( patBeforeLayer0AODPFTauDiscrimination
310 *allLayer0PFTausForTauAnalyses
311 *patPFTauDiscriminationForTauAnalyses
312 *patLayer0PFTauIsolationForTauAnalyses
313 *(pfTauMatchForTauAnalyses + pfTauGenJetMatchForTauAnalyses)
314 )
315 patLayer1PFTausForTauAnalyses = cms.Sequence( allLayer1PFTausForTauAnalyses )