ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/HbbAnalysis/python/electronConfig_cff.py
(Generate patch)

Comparing UserCode/HbbAnalysis/python/electronConfig_cff.py (file contents):
Revision 1.2 by amagnan, Fri Sep 18 15:18:25 2009 UTC vs.
Revision 1.3 by amagnan, Tue Feb 9 14:52:24 2010 UTC

# Line 8 | Line 8
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(1.0)' # 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.1',#0.07
249         'EcalEndcaps:RectangularEtaPhiVeto(-0.02,0.02,-0.5,0.5)',
250         'EcalBarrel:ThresholdFromTransverse(0.12)', #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.4),
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)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines