ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/HbbAnalysis/python/pfTauConfig_cff.py
Revision: 1.3
Committed: Fri Sep 18 15:18:25 2009 UTC (15 years, 7 months ago) by amagnan
Content type: text/x-python
Branch: MAIN
CVS Tags: v00-03-00
Changes since 1.2: +3 -3 lines
Log Message:
correct PAT config

File Contents

# User Rev Content
1 amagnan 1.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 amagnan 1.2 pfRecoTauProducerForTauAnalyses.Track_minPt = cms.double(1.0)
21     pfRecoTauProducerForTauAnalyses.Track_IsolAnnulus_minNhits = 8
22 amagnan 1.1 pfRecoTauProducerForTauAnalyses.PFCand_minPt = cms.double(0.5)
23     pfRecoTauProducerForTauAnalyses.LeadPFCand_minPt = cms.double(5.0)
24 amagnan 1.2
25 amagnan 1.1 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 amagnan 1.2
31 amagnan 1.1 pfRecoTauProducerForTauAnalyses.GammaCand_minPt = 1.5
32     pfRecoTauProducerForTauAnalyses.NeutrHadrCand_minPt = cms.double(1.0)
33 amagnan 1.2
34 amagnan 1.1 pfRecoTauProducerForTauAnalyses.TrackLeadTrack_maxDZ = cms.double(0.2)
35     pfRecoTauProducerForTauAnalyses.UseTrackLeadTrackDZconstraint = cms.bool(True)
36 amagnan 1.2
37 amagnan 1.1 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 amagnan 1.3 pfRecoTauProducerForTauAnalyses.TrackerSignalConeSizeFormula = "0.07"
48     pfRecoTauProducerForTauAnalyses.TrackerSignalConeSize_min = "0.0"
49     pfRecoTauProducerForTauAnalyses.TrackerSignalConeSize_max = "0.1"
50 amagnan 1.1 ### 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 amagnan 1.2 #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 amagnan 1.1
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 amagnan 1.2 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 amagnan 1.1
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 amagnan 1.2 *pfRecoTauPreDiscriminationForTauAnalyses
304     *patAODPFCandidateIsoDepositSelection
305     *patPFTauIsolationForTauAnalyses
306     *patAODPFTauIsolationForTauAnalyses
307     )
308 amagnan 1.1
309     patLayer0PFTausForTauAnalyses = cms.Sequence( patBeforeLayer0AODPFTauDiscrimination
310     *allLayer0PFTausForTauAnalyses
311     *patPFTauDiscriminationForTauAnalyses
312 amagnan 1.2 *patLayer0PFTauIsolationForTauAnalyses
313 amagnan 1.1 *(pfTauMatchForTauAnalyses + pfTauGenJetMatchForTauAnalyses)
314     )
315     patLayer1PFTausForTauAnalyses = cms.Sequence( allLayer1PFTausForTauAnalyses )