ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/HbbAnalysis/python/pfTauConfig_cff.py
Revision: 1.1
Committed: Wed Apr 15 12:03:00 2009 UTC (16 years ago) by amagnan
Content type: text/x-python
Branch: MAIN
Log Message:
add python configuration files

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     pfRecoTauProducerForTauAnalyses.PFCand_minPt = cms.double(0.5)
21     pfRecoTauProducerForTauAnalyses.LeadPFCand_minPt = cms.double(5.0)
22     pfRecoTauProducerForTauAnalyses.LeadChargedHadrCand_minPt = cms.double(5.0)
23     pfRecoTauProducerForTauAnalyses.ChargedHadrCand_minPt = 1.0
24     pfRecoTauProducerForTauAnalyses.ChargedHadrCand_IsolAnnulus_minNhits = 8
25     pfRecoTauProducerForTauAnalyses.ChargedHadrCandLeadChargedHadrCand_tksmaxDZ = cms.double(0.2)
26     pfRecoTauProducerForTauAnalyses.UseChargedHadrCandLeadChargedHadrCand_tksDZconstraint = cms.bool(True)
27     pfRecoTauProducerForTauAnalyses.GammaCand_minPt = 1.5
28     pfRecoTauProducerForTauAnalyses.NeutrHadrCand_minPt = cms.double(1.0)
29     pfRecoTauProducerForTauAnalyses.TrackLeadTrack_maxDZ = cms.double(0.2)
30     pfRecoTauProducerForTauAnalyses.UseTrackLeadTrackDZconstraint = cms.bool(True)
31     pfRecoTauProducerForTauAnalyses.smearedPVsigmaY = cms.double(0.0015)
32     pfRecoTauProducerForTauAnalyses.smearedPVsigmaX = cms.double(0.0015)
33     pfRecoTauProducerForTauAnalyses.smearedPVsigmaZ = cms.double(0.005)
34     ### Match ###
35     pfRecoTauProducerForTauAnalyses.MatchingConeMetric = "DR"
36     pfRecoTauProducerForTauAnalyses.MatchingConeSizeFormula = "0.1"
37     pfRecoTauProducerForTauAnalyses.MatchingConeSize_max = 0.1
38     pfRecoTauProducerForTauAnalyses.MatchingConeSize_min = 0.0
39     ### Trk Sig ###
40     pfRecoTauProducerForTauAnalyses.TrackerSignalConeMetric = "DR"
41     pfRecoTauProducerForTauAnalyses.TrackerSignalConeSizeFormula = "5.0/ET"
42     pfRecoTauProducerForTauAnalyses.TrackerSignalConeSize_min = 0.07
43     pfRecoTauProducerForTauAnalyses.TrackerSignalConeSize_max = 0.15
44     ### Trk Iso ###
45     pfRecoTauProducerForTauAnalyses.TrackerIsolConeMetric = "DR"
46     pfRecoTauProducerForTauAnalyses.TrackerIsolConeSizeFormula = "0.5"
47     pfRecoTauProducerForTauAnalyses.TrackerIsolConeSize_max = "1.0"
48     pfRecoTauProducerForTauAnalyses.TrackerIsolConeSize_min = "0.0"
49     pfRecoTauProducerForTauAnalyses.Track_minPt = cms.double(1.0)
50     pfRecoTauProducerForTauAnalyses.Track_IsolAnnulus_minNhits = 8
51     ### Ecal Sig ###
52     pfRecoTauProducerForTauAnalyses.ECALSignalConeMetric = "DR"
53     pfRecoTauProducerForTauAnalyses.ECALSignalConeSizeFormula = "0.15"
54     pfRecoTauProducerForTauAnalyses.ECALSignalConeSize_max = "0.15"
55     pfRecoTauProducerForTauAnalyses.ECALSignalConeSize_min = "0.0"
56     ### Ecal Iso ###
57     pfRecoTauProducerForTauAnalyses.ECALIsolConeMetric = "DR"
58     pfRecoTauProducerForTauAnalyses.ECALIsolConeSizeFormula = "0.50"
59     pfRecoTauProducerForTauAnalyses.ECALIsolConeSize_max = "1.0"
60     pfRecoTauProducerForTauAnalyses.ECALIsolConeSize_min = "0.0"
61     ### FixedArea ###
62     pfRecoTauProducerForTauAnalyses.AreaMetric_recoElements_maxabsEta = cms.double(2.5)
63     ### Electron rejection ###
64     pfRecoTauProducerForTauAnalyses.ElectronPreIDProducer = cms.InputTag("elecpreid")
65     pfRecoTauProducerForTauAnalyses.EcalStripSumE_deltaPhiOverQ_minValue = cms.double(-0.1)
66     pfRecoTauProducerForTauAnalyses.EcalStripSumE_deltaPhiOverQ_maxValue = cms.double(0.5)
67     pfRecoTauProducerForTauAnalyses.EcalStripSumE_minClusEnergy = cms.double(0.1)
68     pfRecoTauProducerForTauAnalyses.EcalStripSumE_deltaEta = cms.double(0.03)
69     pfRecoTauProducerForTauAnalyses.ElecPreIDLeadTkMatch_maxDR = cms.double(0.01)
70    
71     pfRecoTauProducerForTauAnalyses.DataType = cms.string("AOD")
72    
73     pfRecoTauPreDiscriminationForTauAnalyses = copy.deepcopy(pfRecoTauDiscriminationByIsolation)
74     pfRecoTauPreDiscriminationForTauAnalyses.PFTauProducer = 'pfRecoTauProducerForTauAnalyses'
75    
76     ######################################################################################
77     #### PAT layer 0
78     ######################################################################################
79    
80     from PhysicsTools.PatAlgos.cleaningLayer0.pfTauCleaner_cfi import *
81    
82     allLayer0PFTausForTauAnalyses = copy.deepcopy(allLayer0Taus)
83     allLayer0PFTausForTauAnalyses.tauSource = cms.InputTag("pfRecoTauProducerForTauAnalyses") #pfRecoTauProducerHighEfficiency
84     allLayer0PFTausForTauAnalyses.tauDiscriminatorSource = cms.InputTag("pfRecoTauPreDiscriminationForTauAnalyses") #...HighEfficiency
85    
86     allLayer0PFTausForTauAnalyses.removeOverlaps = cms.PSet(
87     ## Flag or discard taus that match with clean electrons
88     #electrons = cms.PSet(
89     # collection = cms.InputTag("allLayer0Electrons")
90     # deltaR = cms.double(0.3)
91     #)
92     )
93    
94    
95     ######################################################################################
96     #### tau discriminators
97     ######################################################################################
98    
99     #from PhysicsTools.PatAlgos.recoLayer0.tauDiscriminators_cff import *
100    
101     #copy the PFTauDiscriminator producer;
102     #instead of the AOD reco::PFTau collection, set the reco::PFTaus collection produced by PAT layer 0 cleaning
103     #as reference for PFTauDiscriminator objects
104     patPFRecoTauDiscriminationByIsolationForTauAnalyses = copy.deepcopy(pfRecoTauDiscriminationByIsolation)
105     patPFRecoTauDiscriminationByIsolationForTauAnalyses.PFTauProducer = cms.InputTag('allLayer0PFTausForTauAnalyses')
106    
107     patPFRecoTauDiscriminationByLeadingTrackFindingForTauAnalyses = copy.deepcopy(pfRecoTauDiscriminationByLeadingTrackFinding)
108     patPFRecoTauDiscriminationByLeadingTrackFindingForTauAnalyses.PFTauProducer = cms.InputTag('allLayer0PFTausForTauAnalyses')
109    
110     patPFRecoTauDiscriminationByLeadingTrackPtCutForTauAnalyses = copy.deepcopy(pfRecoTauDiscriminationByLeadingTrackPtCut)
111     patPFRecoTauDiscriminationByLeadingTrackPtCutForTauAnalyses.PFTauProducer = cms.InputTag('allLayer0PFTausForTauAnalyses')
112    
113     patPFRecoTauDiscriminationByTrackIsolationForTauAnalyses = copy.deepcopy(pfRecoTauDiscriminationByTrackIsolation)
114     patPFRecoTauDiscriminationByTrackIsolationForTauAnalyses.PFTauProducer = cms.InputTag('allLayer0PFTausForTauAnalyses')
115    
116     patPFRecoTauDiscriminationByECALIsolationForTauAnalyses = copy.deepcopy(pfRecoTauDiscriminationByECALIsolation)
117     patPFRecoTauDiscriminationByECALIsolationForTauAnalyses.PFTauProducer = cms.InputTag('allLayer0PFTausForTauAnalyses')
118    
119     patPFRecoTauDiscriminationAgainstElectronForTauAnalyses = copy.deepcopy(pfRecoTauDiscriminationAgainstElectron)
120     patPFRecoTauDiscriminationAgainstElectronForTauAnalyses.PFTauProducer = cms.InputTag('allLayer0PFTausForTauAnalyses')
121    
122     patPFRecoTauDiscriminationAgainstMuonForTauAnalyses = copy.deepcopy(pfRecoTauDiscriminationAgainstMuon)
123     patPFRecoTauDiscriminationAgainstMuonForTauAnalyses.PFTauProducer = cms.InputTag('allLayer0PFTausForTauAnalyses')
124    
125     patPFTauDiscriminationForTauAnalyses = cms.Sequence(
126     patPFRecoTauDiscriminationByIsolationForTauAnalyses
127     +patPFRecoTauDiscriminationByLeadingTrackFindingForTauAnalyses
128     +patPFRecoTauDiscriminationByLeadingTrackPtCutForTauAnalyses
129     +patPFRecoTauDiscriminationByTrackIsolationForTauAnalyses
130     +patPFRecoTauDiscriminationByECALIsolationForTauAnalyses
131     +patPFRecoTauDiscriminationAgainstElectronForTauAnalyses
132     +patPFRecoTauDiscriminationAgainstMuonForTauAnalyses
133     )
134    
135    
136     ######################################################################################
137     #### tau isolation
138     ######################################################################################
139    
140    
141    
142     ######################################################################################
143     #### trigger matching
144     ######################################################################################
145    
146    
147    
148     ######################################################################################
149     #### MC matching
150     ######################################################################################
151    
152     from PhysicsTools.PatAlgos.mcMatchLayer0.tauMatch_cfi import *
153    
154     pfTauMatchForTauAnalyses = copy.deepcopy(tauMatch)
155     pfTauMatchForTauAnalyses.src = cms.InputTag("allLayer0PFTausForTauAnalyses")
156     pfTauMatchForTauAnalyses.matched = cms.InputTag("genParticles")
157     pfTauMatchForTauAnalyses.mcPdgId = cms.vint32(15)
158     pfTauMatchForTauAnalyses.checkCharge = cms.bool(True)
159     pfTauMatchForTauAnalyses.mcStatus = cms.vint32(2) # PYTHIA status code (1 = stable, 2 = shower, 3 = hard scattering)
160     # NOTE that Taus can only be status 3 or 2, never 1!
161     pfTauMatchForTauAnalyses.maxDeltaR = cms.double(0.3)
162     pfTauMatchForTauAnalyses.maxDPtRel = cms.double(3.0)
163     pfTauMatchForTauAnalyses.resolveAmbiguities = cms.bool(True)
164     pfTauMatchForTauAnalyses.resolveByMatchQuality = cms.bool(False)
165    
166     pfTauGenJetMatchForTauAnalyses = copy.deepcopy(tauGenJetMatch)
167     pfTauGenJetMatchForTauAnalyses.src = cms.InputTag("allLayer0PFTausForTauAnalyses")
168     pfTauGenJetMatchForTauAnalyses.matched = cms.InputTag("tauGenJets")
169     pfTauGenJetMatchForTauAnalyses.maxDeltaR = cms.double(0.1)
170     pfTauGenJetMatchForTauAnalyses.maxDPtRel = cms.double(3.0)
171     pfTauGenJetMatchForTauAnalyses.resolveAmbiguities = cms.bool(True)
172     pfTauGenJetMatchForTauAnalyses.resolveByMatchQuality = cms.bool(False)
173    
174    
175     ######################################################################################
176     #### PAT layer 1
177     ######################################################################################
178    
179     from PhysicsTools.PatAlgos.producersLayer1.tauProducer_cfi import *
180    
181    
182     allLayer1PFTausForTauAnalyses = copy.deepcopy(allLayer1Taus)
183     allLayer1PFTausForTauAnalyses.tauSource = cms.InputTag("allLayer0PFTausForTauAnalyses")
184    
185     allLayer1PFTausForTauAnalyses.embedLeadTrack = cms.bool(True)
186     allLayer1PFTausForTauAnalyses.embedSignalTracks = cms.bool(True)
187     allLayer1PFTausForTauAnalyses.embedIsolationTracks = cms.bool(True)
188    
189     allLayer1PFTausForTauAnalyses.isolation = cms.PSet()
190     allLayer1PFTausForTauAnalyses.isoDeposits = cms.PSet()
191    
192     allLayer1PFTausForTauAnalyses.addTauID = cms.bool(True)
193     allLayer1PFTausForTauAnalyses.tauIDSources = cms.PSet(
194     leadingTrackFinding = cms.InputTag("patPFRecoTauDiscriminationByLeadingTrackFindingForTauAnalyses"),
195     leadingTrackPtCut = cms.InputTag("patPFRecoTauDiscriminationByLeadingTrackPtCutForTauAnalyses"),
196     trackIsolation = cms.InputTag("patPFRecoTauDiscriminationByTrackIsolationForTauAnalyses"),
197     ecalIsolation = cms.InputTag("patPFRecoTauDiscriminationByECALIsolationForTauAnalyses"),
198     byIsolation = cms.InputTag("patPFRecoTauDiscriminationByIsolationForTauAnalyses"),
199     againstElectron = cms.InputTag("patPFRecoTauDiscriminationAgainstElectronForTauAnalyses"),
200     againstMuon = cms.InputTag("patPFRecoTauDiscriminationAgainstMuonForTauAnalyses")
201     )
202    
203     allLayer1PFTausForTauAnalyses.addTrigMatch = cms.bool(False)
204     #trigPrimMatch = cms.VInputTag(cms.InputTag("tauTrigMatchHLT1Tau"))
205    
206     allLayer1PFTausForTauAnalyses.addGenMatch = cms.bool(True)
207     allLayer1PFTausForTauAnalyses.embedGenMatch = cms.bool(True)
208     allLayer1PFTausForTauAnalyses.genParticleMatch = cms.InputTag("pfTauMatchForTauAnalyses")
209    
210     allLayer1PFTausForTauAnalyses.addGenJetMatch = cms.bool(True)
211     allLayer1PFTausForTauAnalyses.embedGenJetMatch = cms.bool(True)
212    
213     allLayer1PFTausForTauAnalyses.genJetMatch = cms.InputTag("pfTauGenJetMatchForTauAnalyses")
214    
215    
216     ######################################################################################
217     #### Final PAT sequences
218     ######################################################################################
219    
220     patBeforeLayer0AODPFTauDiscrimination = cms.Sequence( pfRecoTauProducerForTauAnalyses
221     *pfRecoTauPreDiscriminationForTauAnalyses )
222    
223     patLayer0PFTausForTauAnalyses = cms.Sequence( patBeforeLayer0AODPFTauDiscrimination
224     *allLayer0PFTausForTauAnalyses
225     *patPFTauDiscriminationForTauAnalyses
226     *(pfTauMatchForTauAnalyses + pfTauGenJetMatchForTauAnalyses)
227     )
228     patLayer1PFTausForTauAnalyses = cms.Sequence( allLayer1PFTausForTauAnalyses )