ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/HbbAnalysis/python/electronConfig_cff.py
Revision: 1.1
Committed: Wed Apr 15 12:02:59 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
Log Message:
add python configuration files

File Contents

# Content
1 ########################################
2 #### Created 07-Apr-09
3 #### by A.-M. Magnan
4 #### a.magnan@imperial.ac.uk
5 #### from TauAnalysis globalV00-00-03
6 ########################################
7
8 import FWCore.ParameterSet.Config as cms
9 import copy
10
11
12 #################################################################################
13 #### PatLayer0 sequence
14 #################################################################################
15
16 from PhysicsTools.PatAlgos.cleaningLayer0.electronCleaner_cfi import *
17
18 allLayer0ElectronsForTauAnalyses = copy.deepcopy(allLayer0Electrons)
19 allLayer0ElectronsForTauAnalyses.electronSource = cms.InputTag("pixelMatchGsfElectrons")
20 allLayer0ElectronsForTauAnalyses.removeDuplicates = cms.bool(True)
21 allLayer0ElectronsForTauAnalyses.selection = cms.PSet(type = cms.string('none'))
22 allLayer0ElectronsForTauAnalyses.isolation = cms.PSet()
23 allLayer0ElectronsForTauAnalyses.markItems = cms.bool(True)
24 allLayer0ElectronsForTauAnalyses.bitsToIgnore = cms.vstring('')
25 allLayer0ElectronsForTauAnalyses.saveRejected = cms.string('')
26 allLayer0ElectronsForTauAnalyses.saveAll = cms.string('')
27
28
29
30 ######################################################################################
31 #### electron identification
32 ######################################################################################
33
34 from RecoEcal.EgammaClusterProducers.geometryForClustering_cff import *
35 from RecoEgamma.ElectronIdentification.likelihoodPdfsDB_cfi import *
36 from RecoEgamma.ElectronIdentification.likelihoodESetup_cfi import *
37 from RecoEgamma.ElectronIdentification.neuralNetElectronId_cfi import *
38
39 from RecoEgamma.ElectronIdentification.electronIdCutBasedExt_cfi import eidCutBasedExt
40 from RecoEgamma.ElectronIdentification.electronIdCutBasedClassesExt_cfi import eidCutBasedClassesExt as eidPtdrExt ## PTDR is how people know it
41 from RecoEgamma.ElectronIdentification.electronIdNeuralNetExt_cfi import eidNeuralNetExt
42 from RecoEgamma.ElectronIdentification.electronIdLikelihoodExt_cfi import eidLikelihoodExt
43
44 elecIdForTauAnalysesCutBasedExtPAT = eidCutBasedExt.copy();
45 elecIdForTauAnalysesCutBasedExtPAT.src = cms.InputTag("allLayer0ElectronsForTauAnalyses")
46
47 elecIdForTauAnalysesCutBasedRobust = elecIdForTauAnalysesCutBasedExtPAT.copy();
48 elecIdForTauAnalysesCutBasedRobust.electronQuality = 'robust'
49 elecIdForTauAnalysesCutBasedRobust.robustEleIDCuts = cms.PSet(
50 barrel = cms.vdouble(10, 0.010, 0.02, 0.0036),
51 endcap = cms.vdouble(10, 0.027, 0.014, 0.0055)
52 )
53 elecIdForTauAnalysesCutBasedRobust.tightEleIDCuts = cms.PSet(
54 barrel = cms.vdouble(10, 0.012, 0.02, 0.0025),
55 endcap = cms.vdouble(10, 0.025, 0.014, 0.0040)
56 )
57 elecIdForTauAnalysesCutBasedRobust.looseEleIDCuts = cms.PSet(
58 barrel = cms.vdouble(10, 0.03, 0.05, 0.009),
59 endcap = cms.vdouble(10, 0.06, 0.05, 0.0160)
60 )
61
62 #barrel = cms.vdouble(0.015, 0.0092, 0.02, 0.0025),
63 #endcap = cms.vdouble(0.018, 0.025, 0.02, 0.0040)
64
65 elecIdForTauAnalysesCutBasedLoose = elecIdForTauAnalysesCutBasedExtPAT.copy();
66 elecIdForTauAnalysesCutBasedLoose.electronQuality = 'loose'
67
68 elecIdForTauAnalysesCutBasedTight = elecIdForTauAnalysesCutBasedExtPAT.copy();
69 elecIdForTauAnalysesCutBasedTight.electronQuality = 'tight'
70
71 patLayer0ElectronIdForTauAnalyses = cms.Sequence( elecIdForTauAnalysesCutBasedRobust
72 *elecIdForTauAnalysesCutBasedLoose
73 *elecIdForTauAnalysesCutBasedTight )
74
75
76 ######################################################################################
77 #### electron isolation
78 ######################################################################################
79
80 from RecoEgamma.EgammaIsolationAlgos.egammaIsoSetup_cff import *
81 from RecoEgamma.EgammaIsolationAlgos.egammaSuperClusterMerger_cfi import *
82 from RecoEgamma.EgammaIsolationAlgos.egammaBasicClusterMerger_cfi import *
83
84 egammaSuperClusterMerger.src = cms.VInputTag(
85 cms.InputTag('hybridSuperClusters'),
86 #cms.InputTag('correctedHybridSuperClusters'),
87 cms.InputTag('multi5x5SuperClusters', 'multi5x5EndcapSuperClusters'),
88 #cms.InputTag('multi5x5SuperClustersWithPreshower'),
89 #cms.InputTag('correctedMulti5x5SuperClustersWithPreshower')
90 )
91 egammaBasicClusterMerger.src = cms.VInputTag(
92 cms.InputTag('hybridSuperClusters', 'hybridBarrelBasicClusters'),
93 cms.InputTag('multi5x5BasicClusters','multi5x5EndcapBasicClusters')
94 )
95
96 from RecoEgamma.EgammaIsolationAlgos.eleIsoDepositTk_cff import *
97 EleIsoTrackExtractorBlock.DR_Max = 1.
98
99 from RecoEgamma.EgammaIsolationAlgos.eleEcalExtractorBlocks_cff import *
100 EleIsoEcalFromHitsExtractorBlock.extRadius = 1.
101 EleIsoEcalFromClustsExtractorBlock.extRadius = 1.
102 EleIsoEcalSCVetoFromClustsExtractorBlock.extRadius = 1.
103
104 from RecoEgamma.EgammaIsolationAlgos.eleHcalExtractorBlocks_cff import *
105 EleIsoHcalFromHitsExtractorBlock.extRadius = 1.
106 EleIsoHcalFromTowersExtractorBlock.extRadius =1.
107
108 eleIsoDepositForTauAnalysesTk = cms.EDProducer("CandIsoDepositProducer",
109 src = cms.InputTag("pixelMatchGsfElectrons"),
110 trackType = cms.string('candidate'),
111 MultipleDepositsFlag = cms.bool(False),
112 ExtractorPSet = cms.PSet(EleIsoTrackExtractorBlock)
113 )
114
115 eleIsoDepositForTauAnalysesEcalSCVetoFromClusts = cms.EDProducer("CandIsoDepositProducer",
116 src = cms.InputTag("pixelMatchGsfElectrons"),
117 MultipleDepositsFlag = cms.bool(False),
118 trackType = cms.string('candidate'),
119 ExtractorPSet = cms.PSet( EleIsoEcalSCVetoFromClustsExtractorBlock )
120 )
121
122 eleIsoDepositForTauAnalysesEcalFromClusts = cms.EDProducer("CandIsoDepositProducer",
123 src = cms.InputTag("pixelMatchGsfElectrons"),
124 MultipleDepositsFlag = cms.bool(False),
125 trackType = cms.string('candidate'),
126 ExtractorPSet = cms.PSet( EleIsoEcalFromClustsExtractorBlock )
127 )
128
129 eleIsoDepositForTauAnalysesEcalFromHits = cms.EDProducer("CandIsoDepositProducer",
130 src = cms.InputTag("pixelMatchGsfElectrons"),
131 MultipleDepositsFlag = cms.bool(False),
132 trackType = cms.string('candidate'),
133 ExtractorPSet = cms.PSet( EleIsoEcalFromHitsExtractorBlock )
134 )
135
136 eleIsoDepositForTauAnalysesHcalFromTowers = cms.EDProducer("CandIsoDepositProducer",
137 src = cms.InputTag("pixelMatchGsfElectrons"),
138 MultipleDepositsFlag = cms.bool(False),
139 trackType = cms.string('candidate'),
140 ExtractorPSet = cms.PSet( EleIsoHcalFromTowersExtractorBlock )
141 )
142
143 eleIsoDepositForTauAnalysesHcalFromHits = cms.EDProducer("CandIsoDepositProducer",
144 src = cms.InputTag("pixelMatchGsfElectrons"),
145 MultipleDepositsFlag = cms.bool(False),
146 trackType = cms.string('candidate'),
147 ExtractorPSet = cms.PSet(EleIsoHcalFromHitsExtractorBlock )
148 )
149
150 # define module labels for old (tk-based isodeposit) POG isolation
151 patAODElectronIsolationLabels = cms.VInputTag(
152 cms.InputTag("eleIsoDepositForTauAnalysesTk"),
153 cms.InputTag("eleIsoDepositForTauAnalysesEcalFromHits"),
154 cms.InputTag("eleIsoDepositForTauAnalysesHcalFromHits"),
155 cms.InputTag("eleIsoDepositForTauAnalysesEcalFromClusts"), # try these two if you want to compute them from AOD
156 cms.InputTag("eleIsoDepositForTauAnalysesHcalFromTowers"), # instead of reading the values computed in RECO
157 cms.InputTag("eleIsoDepositForTauAnalysesEcalSCVetoFromClusts"), # somebody might want this one for ECAL instead
158 )
159
160 # read and convert to ValueMap<IsoDeposit> keyed to Candidate
161 patAODElectronIsolations = cms.EDFilter(
162 "MultipleIsoDepositsToValueMaps",
163 collection = cms.InputTag("pixelMatchGsfElectrons"),
164 associations = patAODElectronIsolationLabels,
165 )
166
167 # re-key ValueMap<IsoDeposit> to Layer 0 output
168 layer0ElectronIsolationsForTauAnalyses = cms.EDFilter("CandManyValueMapsSkimmerIsoDeposits",
169 collection = cms.InputTag("allLayer0ElectronsForTauAnalyses"),
170 backrefs = cms.InputTag("allLayer0ElectronsForTauAnalyses"),
171 commonLabel = cms.InputTag("patAODElectronIsolations"),
172 associations = patAODElectronIsolationLabels
173 )
174
175 # selecting POG modules that can run on top of AOD
176 eleIsoDepositAODForTauAnalyses = cms.Sequence(
177 eleIsoDepositForTauAnalysesTk * eleIsoDepositForTauAnalysesEcalFromClusts * eleIsoDepositForTauAnalysesEcalFromHits *
178 eleIsoDepositForTauAnalysesHcalFromTowers * eleIsoDepositForTauAnalysesHcalFromHits *
179 eleIsoDepositForTauAnalysesEcalSCVetoFromClusts
180 )
181
182 # sequence to run on AOD before PAT
183 patAODElectronIsolationForTauAnalyses = cms.Sequence(
184 egammaSuperClusterMerger * ##
185 egammaBasicClusterMerger * ##
186 eleIsoDepositAODForTauAnalyses * ## Not needed any more, we use values from RECO
187 patAODElectronIsolations
188 )
189
190 # sequence to run after the PAT cleaners
191 patLayer0ElectronIsolationForTauAnalyses = cms.Sequence(layer0ElectronIsolationsForTauAnalyses)
192
193 #################################################################################
194 #### Trigger matching
195 #################################################################################
196
197 from PhysicsTools.PatAlgos.triggerLayer0.trigMatchSequences_cff import *
198 electronTrigMatchCandHLT1ElectronStartup.src = "allLayer0ElectronsForTauAnalyses"
199 electronTrigMatchHLT1Electron.src = "allLayer0ElectronsForTauAnalyses"
200 electronTrigMatchHLT1ElectronRelaxed.src = "allLayer0ElectronsForTauAnalyses"
201
202 patTrigMatchElectronsForTauAnalyses = cms.Sequence( (patCandHLT1ElectronStartup * electronTrigMatchCandHLT1ElectronStartup)
203 +(patHLT1ElectronRelaxed * electronTrigMatchHLT1ElectronRelaxed)
204 +(patHLT1Electron * electronTrigMatchHLT1Electron) )
205
206
207 #################################################################################
208 #### MC matching
209 #################################################################################
210
211 # matching of recontructed electrons to generator level information
212 from PhysicsTools.PatAlgos.mcMatchLayer0.electronMatch_cfi import *
213 electronMatchForTauAnalyses = copy.deepcopy(electronMatch)
214 electronMatchForTauAnalyses.maxDeltaR = cms.double(0.1)
215 electronMatchForTauAnalyses.src = "allLayer0ElectronsForTauAnalyses"
216
217
218 #################################################################################
219 #### PatLayer 1 sequence
220 #################################################################################
221
222 from PhysicsTools.PatAlgos.producersLayer1.electronProducer_cfi import *
223
224 allLayer1ElectronsForTauAnalyses = copy.deepcopy(allLayer1Electrons)
225 allLayer1ElectronsForTauAnalyses.electronSource = cms.InputTag("allLayer0ElectronsForTauAnalyses")
226 allLayer1ElectronsForTauAnalyses.embedTrack = cms.bool(True)
227 allLayer1ElectronsForTauAnalyses.embedGsfTrack = cms.bool(True)
228 allLayer1ElectronsForTauAnalyses.embedSuperCluster = cms.bool(True)
229 allLayer1ElectronsForTauAnalyses.isolation = cms.PSet(
230 tracker = cms.PSet(
231 src = cms.InputTag("layer0ElectronIsolationsForTauAnalyses","eleIsoDepositForTauAnalysesTk"),
232 deltaR = cms.double(0.3),
233 vetos = cms.vstring(
234 '0.015', # inner radius veto cone (was 0.015)
235 'Threshold(0.3)' # threshold on individual track pt
236 ),
237 skipDefaultVeto = cms.bool(True),
238 ),
239 ecal = cms.PSet(
240 src = cms.InputTag("layer0ElectronIsolationsForTauAnalyses","eleIsoDepositForTauAnalysesEcalFromHits"),
241 deltaR = cms.double(0.4),
242 vetos = cms.vstring(
243 'EcalBarrel:0.045',
244 'EcalBarrel:RectangularEtaPhiVeto(-0.02,0.02,-0.5,0.5)',
245 #'EcalBarrel:ConeVeto()',
246 #'EcalBarrel:AngleCone()',
247 #'EcalBarrel:AngleVeto()',
248 'EcalEndcaps:0.07',#0.07
249 'EcalEndcaps:RectangularEtaPhiVeto(-0.02,0.02,-0.5,0.5)',
250 'EcalBarrel:ThresholdFromTransverse(0.08)', #0.08
251 #'EcalBarrel:Threshold()',
252 'EcalEndcaps:ThresholdFromTransverse(0.3)'
253 ),
254 skipDefaultVeto = cms.bool(True),
255 ),
256 hcal = cms.PSet(
257 src = cms.InputTag("layer0ElectronIsolationsForTauAnalyses","eleIsoDepositForTauAnalysesHcalFromTowers"),
258 deltaR = cms.double(0.6),
259 skipDefaultVeto = cms.bool(True),
260 ),
261 )
262 allLayer1ElectronsForTauAnalyses.isoDeposits = cms.PSet(
263 tracker = cms.InputTag("layer0ElectronIsolationsForTauAnalyses","eleIsoDepositForTauAnalysesTk"),
264 ecal = cms.InputTag("layer0ElectronIsolationsForTauAnalyses","eleIsoDepositForTauAnalysesEcalFromHits"),
265 hcal = cms.InputTag("layer0ElectronIsolationsForTauAnalyses","eleIsoDepositForTauAnalysesHcalFromTowers"),
266 )
267 allLayer1ElectronsForTauAnalyses.addElectronID = cms.bool(True)
268 allLayer1ElectronsForTauAnalyses.electronIDSources = cms.PSet(
269 robust = cms.InputTag("elecIdForTauAnalysesCutBasedRobust"),
270 loose = cms.InputTag("elecIdForTauAnalysesCutBasedLoose"),
271 tight = cms.InputTag("elecIdForTauAnalysesCutBasedTight"),
272 )
273 allLayer1ElectronsForTauAnalyses.addTrigMatch = cms.bool(True)
274 allLayer1ElectronsForTauAnalyses.trigPrimMatch = cms.VInputTag(
275 cms.InputTag("electronTrigMatchHLT1Electron"),
276 #cms.InputTag("electronTrigMatchHLT1ElectronRelaxed"),
277 )
278 allLayer1ElectronsForTauAnalyses.addGenMatch = cms.bool(True)
279 allLayer1ElectronsForTauAnalyses.embedGenMatch = cms.bool(True)
280 allLayer1ElectronsForTauAnalyses.genParticleMatch = cms.InputTag("electronMatchForTauAnalyses")
281
282
283
284
285
286 #################################################################################
287 #### Final Pat sequences
288 #################################################################################
289
290
291
292 patLayer0ElectronsForTauAnalyses = cms.Sequence( patAODElectronIsolationForTauAnalyses
293 *allLayer0ElectronsForTauAnalyses
294 *patLayer0ElectronIdForTauAnalyses
295 *patLayer0ElectronIsolationForTauAnalyses
296 *electronMatchForTauAnalyses
297 *patTrigMatchElectronsForTauAnalyses )
298
299 patLayer1ElectronsForTauAnalyses = cms.Sequence(allLayer1ElectronsForTauAnalyses)