CMS 3D CMS Logo

gsfElectrons_cfi.py
Go to the documentation of this file.
1 
2 import FWCore.ParameterSet.Config as cms
5 
6 #==============================================================================
7 # Producer of transient ecal driven gsf electrons
8 #==============================================================================
9 
10 ecalDrivenGsfElectrons = cms.EDProducer("GsfElectronEcalDrivenProducer",
11 
12  # input collections
13  previousGsfElectronsTag = cms.InputTag(""),
14  pflowGsfElectronsTag = cms.InputTag(""),
15  gsfElectronCoresTag = cms.InputTag("ecalDrivenGsfElectronCores"),
16  barrelRecHitCollectionTag = cms.InputTag("ecalRecHit","EcalRecHitsEB"),
17  endcapRecHitCollectionTag = cms.InputTag("ecalRecHit","EcalRecHitsEE"),
18  hcalTowers = cms.InputTag("towerMaker"),
19  pfMvaTag = cms.InputTag(""),
20  seedsTag = cms.InputTag("ecalDrivenElectronSeeds"),
21  beamSpotTag = cms.InputTag("offlineBeamSpot"),
22  gsfPfRecTracksTag = cms.InputTag("pfTrackElec"),
23  vtxTag = cms.InputTag('offlinePrimaryVertices'),
24 
25  # backward compatibility mechanism for ctf tracks
26  ctfTracksCheck = cms.bool(True),
27  ctfTracksTag = cms.InputTag("generalTracks"),
28 
29  gedElectronMode= cms.bool(False),
30  PreSelectMVA = cms.double(-0.1),
31  MaxElePtForOnlyMVA = cms.double(50.0),
32 
33  # steering
34  useGsfPfRecTracks = cms.bool(True),
35  applyPreselection = cms.bool(False),
36  ecalDrivenEcalEnergyFromClassBasedParameterization = cms.bool(True),
37  ecalDrivenEcalErrorFromClassBasedParameterization = cms.bool(True),
38  pureTrackerDrivenEcalErrorFromSimpleParameterization = cms.bool(True),
39  applyAmbResolution = cms.bool(False),
40  ambSortingStrategy = cms.uint32(1),
41  ambClustersOverlapStrategy = cms.uint32(1),
42  addPflowElectrons = cms.bool(True), # this one should be transfered to the "core" level
43  useEcalRegression = cms.bool(False),
44  useCombinationRegression = cms.bool(False),
45 
46  # preselection parameters (ecal driven electrons)
47  minSCEtBarrel = cms.double(4.0),
48  minSCEtEndcaps = cms.double(4.0),
49  minEOverPBarrel = cms.double(0.0),
50  maxEOverPBarrel = cms.double(999999999.),
51  minEOverPEndcaps = cms.double(0.0),
52  maxEOverPEndcaps = cms.double(999999999.),
53  maxDeltaEtaBarrel = cms.double(0.02),
54  maxDeltaEtaEndcaps = cms.double(0.02),
55  maxDeltaPhiBarrel = cms.double(0.15),
56  maxDeltaPhiEndcaps = cms.double(0.15),
57  #useHcalTowers = cms.bool(True),
58  #useHcalRecHits = cms.bool(False),
59  hOverEConeSize = cms.double(0.15),
60  hOverEPtMin = cms.double(0.),
61  #maxHOverEDepth1Barrel = cms.double(0.1),
62  #maxHOverEDepth1Endcaps = cms.double(0.1),
63  #maxHOverEDepth2 = cms.double(0.1),
64  maxHOverEBarrel = cms.double(0.15),
65  maxHOverEEndcaps = cms.double(0.15),
66  maxHBarrel = cms.double(0.0),
67  maxHEndcaps = cms.double(0.0),
68  maxSigmaIetaIetaBarrel = cms.double(999999999.),
69  maxSigmaIetaIetaEndcaps = cms.double(999999999.),
70  maxFbremBarrel = cms.double(999999999.),
71  maxFbremEndcaps = cms.double(999999999.),
72  isBarrel = cms.bool(False),
73  isEndcaps = cms.bool(False),
74  isFiducial = cms.bool(False),
75  maxTIP = cms.double(999999999.),
76  seedFromTEC = cms.bool(True),
77  minMVA = cms.double(-0.4),
78  minMvaByPassForIsolated = cms.double(-0.4),
79 
80  # preselection parameters (tracker driven only electrons)
81  minSCEtBarrelPflow = cms.double(0.0),
82  minSCEtEndcapsPflow = cms.double(0.0),
83  minEOverPBarrelPflow = cms.double(0.0),
84  maxEOverPBarrelPflow = cms.double(999999999.),
85  minEOverPEndcapsPflow = cms.double(0.0),
86  maxEOverPEndcapsPflow = cms.double(999999999.),
87  maxDeltaEtaBarrelPflow = cms.double(999999999.),
88  maxDeltaEtaEndcapsPflow = cms.double(999999999.),
89  maxDeltaPhiBarrelPflow = cms.double(999999999.),
90  maxDeltaPhiEndcapsPflow = cms.double(999999999.),
91  hOverEConeSizePflow = cms.double(0.15),
92  hOverEPtMinPflow = cms.double(0.),
93  #maxHOverEDepth1BarrelPflow = cms.double(999999999.),
94  #maxHOverEDepth1EndcapsPflow = cms.double(999999999.),
95  #maxHOverEDepth2Pflow = cms.double(999999999.),
96  maxHOverEBarrelPflow = cms.double(999999999.),
97  maxHOverEEndcapsPflow = cms.double(999999999.),
98  maxHBarrelPflow = cms.double(0.0),
99  maxHEndcapsPflow = cms.double(0.0),
100  maxSigmaIetaIetaBarrelPflow = cms.double(999999999.),
101  maxSigmaIetaIetaEndcapsPflow = cms.double(999999999.),
102  maxFbremBarrelPflow = cms.double(999999999.),
103  maxFbremEndcapsPflow = cms.double(999999999.),
104  isBarrelPflow = cms.bool(False),
105  isEndcapsPflow = cms.bool(False),
106  isFiducialPflow = cms.bool(False),
107  maxTIPPflow = cms.double(999999999.),
108  minMVAPflow = cms.double(-0.4),
109  minMvaByPassForIsolatedPflow = cms.double(-0.4),
110 
111  # Ecal rec hits configuration
112  recHitFlagsToBeExcludedBarrel = cleanedHybridSuperClusters.RecHitFlagToBeExcluded,
113  recHitFlagsToBeExcludedEndcaps = multi5x5BasicClustersCleaned.RecHitFlagToBeExcluded,
114  recHitSeverityToBeExcludedBarrel = cleanedHybridSuperClusters.RecHitSeverityToBeExcluded,
115  recHitSeverityToBeExcludedEndcaps = cleanedHybridSuperClusters.RecHitSeverityToBeExcluded,
116  #severityLevelCut = cms.int32(4),
117 
118  # Isolation algos configuration
119  intRadiusBarrelTk = cms.double(0.015),
120  intRadiusEndcapTk = cms.double(0.015),
121  stripBarrelTk = cms.double(0.015),
122  stripEndcapTk = cms.double(0.015),
123  ptMinTk = cms.double(0.7),
124  maxVtxDistTk = cms.double(0.2),
125  maxDrbTk = cms.double(999999999.),
126  intRadiusHcal = cms.double(0.15),
127  etMinHcal = cms.double(0.0),
128  intRadiusEcalBarrel = cms.double(3.0),
129  intRadiusEcalEndcaps = cms.double(3.0),
130  jurassicWidth = cms.double(1.5),
131  etMinBarrel = cms.double(0.0),
132  eMinBarrel = cms.double(0.095),
133  etMinEndcaps = cms.double(0.110),
134  eMinEndcaps = cms.double(0.0),
135  vetoClustered = cms.bool(False),
136  useNumCrystals = cms.bool(True),
137  TransientInitialStateEstimatorParameters = cms.PSet(
138  propagatorAlongTISE = cms.string('PropagatorWithMaterial'),
139  propagatorOppositeTISE = cms.string('PropagatorWithMaterialOpposite')
140  ),
141 
142  # Corrections
143  superClusterErrorFunction = cms.string("EcalClusterEnergyUncertaintyObjectSpecific"),
144  crackCorrectionFunction = cms.string("EcalClusterCrackCorrection"),
145 
146  # Regression. The labels are needed in all cases
147  ecalRefinedRegressionWeightLabels = cms.vstring(),
148  combinationRegressionWeightLabels = cms.vstring(),
149 
150  ecalWeightsFromDB = cms.bool(True),
151  # if not from DB. Otherwise, keep empty
152  ecalRefinedRegressionWeightFiles = cms.vstring(),
153  combinationWeightsFromDB = cms.bool(True),
154  # if not from DB. Otherwise, keep empty
155  combinationRegressionWeightFile = cms.vstring(),
156 
157 
158  # Iso Values
159  useIsolationValues = cms.bool(False),
160  SoftElecMVAFilesString = cms.vstring(
161  "RecoEgamma/ElectronIdentification/data/TMVA_BDTSoftElectrons_9Dec2013.weights.xml"
162  ),
163  ElecMVAFilesString = cms.vstring(
164  "RecoEgamma/ElectronIdentification/data/TMVA_Category_BDTSimpleCat_10_17Feb2011.weights.xml",
165  "RecoEgamma/ElectronIdentification/data/TMVA_Category_BDTSimpleCat_12_17Feb2011.weights.xml",
166  "RecoEgamma/ElectronIdentification/data/TMVA_Category_BDTSimpleCat_20_17Feb2011.weights.xml",
167  "RecoEgamma/ElectronIdentification/data/TMVA_Category_BDTSimpleCat_22_17Feb2011.weights.xml"
168  ),
169 
170 )
171 
172 
173 #==============================================================================
174 # Final producer of persistent gsf electrons
175 #==============================================================================
176 
177 gsfElectrons = cms.EDProducer("GsfElectronProducer",
178 
179  # input collections
180  previousGsfElectronsTag = cms.InputTag("ecalDrivenGsfElectrons"),
181  pflowGsfElectronsTag = cms.InputTag("pfElectronTranslator:pf"),
182  gsfElectronCoresTag = cms.InputTag("gsfElectronCores"),
183  hcalTowers = cms.InputTag("towerMaker"),
184  barrelRecHitCollectionTag = cms.InputTag("ecalRecHit","EcalRecHitsEB"),
185  endcapRecHitCollectionTag = cms.InputTag("ecalRecHit","EcalRecHitsEE"),
186  pfMvaTag = cms.InputTag("pfElectronTranslator:pf"),
187  seedsTag = cms.InputTag("ecalDrivenElectronSeeds"),
188  beamSpotTag = cms.InputTag("offlineBeamSpot"),
189  gsfPfRecTracksTag = cms.InputTag("pfTrackElec"),
190  vtxTag = cms.InputTag('offlinePrimaryVertices'),
191 
192  # backward compatibility mechanism for ctf tracks
193  ctfTracksCheck = cms.bool(True),
194  ctfTracksTag = cms.InputTag("generalTracks"),
195 
196  gedElectronMode= cms.bool(False),
197  PreSelectMVA = cms.double(-0.1),
198 
199  # steering
200  useGsfPfRecTracks = cms.bool(True),
201  applyPreselection = cms.bool(True),
202  ecalDrivenEcalEnergyFromClassBasedParameterization = cms.bool(True),
203  ecalDrivenEcalErrorFromClassBasedParameterization = cms.bool(True),
204  pureTrackerDrivenEcalErrorFromSimpleParameterization = cms.bool(True),
205  applyAmbResolution = cms.bool(True),
206  ambSortingStrategy = cms.uint32(1),
207  ambClustersOverlapStrategy = cms.uint32(1),
208  addPflowElectrons = cms.bool(True),
209  useEcalRegression = cms.bool(False),
210  useCombinationRegression = cms.bool(False),
211 
212  # preselection parameters (ecal driven electrons)
213  minSCEtBarrel = cms.double(4.0),
214  minSCEtEndcaps = cms.double(4.0),
215  minEOverPBarrel = cms.double(0.0),
216  maxEOverPBarrel = cms.double(999999999.),
217  minEOverPEndcaps = cms.double(0.0),
218  maxEOverPEndcaps = cms.double(999999999.),
219  maxDeltaEtaBarrel = cms.double(0.02),
220  maxDeltaEtaEndcaps = cms.double(0.02),
221  maxDeltaPhiBarrel = cms.double(0.15),
222  maxDeltaPhiEndcaps = cms.double(0.15),
223  #useHcalTowers = cms.bool(True),
224  #useHcalRecHits = cms.bool(False),
225  hOverEConeSize = cms.double(0.15),
226  hOverEPtMin = cms.double(0.),
227  #maxHOverEDepth1Barrel = cms.double(0.1),
228  #maxHOverEDepth1Endcaps = cms.double(0.1),
229  #maxHOverEDepth2 = cms.double(0.1),
230  maxHOverEBarrel = cms.double(0.15),
231  maxHOverEEndcaps = cms.double(0.15),
232  maxHBarrel = cms.double(0.0),
233  maxHEndcaps = cms.double(0.0),
234  maxSigmaIetaIetaBarrel = cms.double(999999999.),
235  maxSigmaIetaIetaEndcaps = cms.double(999999999.),
236  maxFbremBarrel = cms.double(999999999.),
237  maxFbremEndcaps = cms.double(999999999.),
238  isBarrel = cms.bool(False),
239  isEndcaps = cms.bool(False),
240  isFiducial = cms.bool(False),
241  seedFromTEC = cms.bool(True),
242  maxTIP = cms.double(999999999.),
243  minMVA = cms.double(-0.1),
244  minMvaByPassForIsolated = cms.double(-0.1),
245 
246  # preselection parameters (tracker driven only electrons)
247  minSCEtBarrelPflow = cms.double(0.0),
248  minSCEtEndcapsPflow = cms.double(0.0),
249  minEOverPBarrelPflow = cms.double(0.0),
250  maxEOverPBarrelPflow = cms.double(999999999.),
251  minEOverPEndcapsPflow = cms.double(0.0),
252  maxEOverPEndcapsPflow = cms.double(999999999.),
253  maxDeltaEtaBarrelPflow = cms.double(999999999.),
254  maxDeltaEtaEndcapsPflow = cms.double(999999999.),
255  maxDeltaPhiBarrelPflow = cms.double(999999999.),
256  maxDeltaPhiEndcapsPflow = cms.double(999999999.),
257  hOverEConeSizePflow = cms.double(0.15),
258  hOverEPtMinPflow = cms.double(0.),
259  #maxHOverEDepth1BarrelPflow = cms.double(999999999.),
260  #maxHOverEDepth1EndcapsPflow = cms.double(999999999.),
261  #maxHOverEDepth2Pflow = cms.double(999999999.),
262  maxHOverEBarrelPflow = cms.double(999999999.),
263  maxHOverEEndcapsPflow = cms.double(999999999.),
264  maxHBarrelPflow = cms.double(0.0),
265  maxHEndcapsPflow = cms.double(0.0),
266  maxSigmaIetaIetaBarrelPflow = cms.double(999999999.),
267  maxSigmaIetaIetaEndcapsPflow = cms.double(999999999.),
268  maxFbremBarrelPflow = cms.double(999999999.),
269  maxFbremEndcapsPflow = cms.double(999999999.),
270  isBarrelPflow = cms.bool(False),
271  isEndcapsPflow = cms.bool(False),
272  isFiducialPflow = cms.bool(False),
273  maxTIPPflow = cms.double(999999999.),
274  minMVAPflow = cms.double(-0.1),
275  minMvaByPassForIsolatedPflow = cms.double(-0.1),
276 
277  # Ecal rec hits configuration
278  recHitFlagsToBeExcludedBarrel = cleanedHybridSuperClusters.RecHitFlagToBeExcluded,
279  recHitFlagsToBeExcludedEndcaps = multi5x5BasicClustersCleaned.RecHitFlagToBeExcluded,
280  recHitSeverityToBeExcludedBarrel = cleanedHybridSuperClusters.RecHitSeverityToBeExcluded,
281  recHitSeverityToBeExcludedEndcaps = cleanedHybridSuperClusters.RecHitSeverityToBeExcluded,
282  #severityLevelCut = cms.int32(4),
283 
284  # Isolation algos configuration
285  intRadiusBarrelTk = cms.double(0.015),
286  intRadiusEndcapTk = cms.double(0.015),
287  stripBarrelTk = cms.double(0.015),
288  stripEndcapTk = cms.double(0.015),
289  ptMinTk = cms.double(0.7),
290  maxVtxDistTk = cms.double(0.2),
291  maxDrbTk = cms.double(999999999.),
292  intRadiusHcal = cms.double(0.15),
293  etMinHcal = cms.double(0.0),
294  intRadiusEcalBarrel = cms.double(3.0),
295  intRadiusEcalEndcaps = cms.double(3.0),
296  jurassicWidth = cms.double(1.5),
297  etMinBarrel = cms.double(0.0),
298  eMinBarrel = cms.double(0.095),
299  etMinEndcaps = cms.double(0.110),
300  eMinEndcaps = cms.double(0.0),
301  vetoClustered = cms.bool(False),
302  useNumCrystals = cms.bool(True),
303  TransientInitialStateEstimatorParameters = cms.PSet(
304  propagatorAlongTISE = cms.string('PropagatorWithMaterial'),
305  propagatorOppositeTISE = cms.string('PropagatorWithMaterialOpposite')
306  ),
307 
308  # Corrections
309  superClusterErrorFunction = cms.string("EcalClusterEnergyUncertaintyObjectSpecific"),
310  crackCorrectionFunction = cms.string("EcalClusterCrackCorrection"),
311 
312  # Regression. The labels are needed in all cases
313  ecalRefinedRegressionWeightLabels = cms.vstring(),
314  combinationRegressionWeightLabels = cms.vstring(),
315 
316  ecalWeightsFromDB = cms.bool(True),
317  # if not from DB. Otherwise, keep empty
318  ecalRefinedRegressionWeightFiles = cms.vstring(),
319  combinationWeightsFromDB = cms.bool(True),
320  # if not from DB. Otherwise, keep empty
321  combinationRegressionWeightFile = cms.vstring(),
322 
323 
324 
325  # Iso Values (PF and EcalDriven)
326  useIsolationValues = cms.bool(True),
327  pfIsolationValues = cms.PSet(
328  pfSumChargedHadronPt = cms.InputTag('elPFIsoValueCharged04'),
329  pfSumPhotonEt = cms.InputTag('elPFIsoValueGamma04'),
330  pfSumNeutralHadronEt= cms.InputTag('elPFIsoValueNeutral04')),
331 
332  edIsolationValues = cms.PSet(
333  edSumChargedHadronPt = cms.InputTag('elEDIsoValueCharged04'),
334  edSumPhotonEt = cms.InputTag('elEDIsoValueGamma04'),
335  edSumNeutralHadronEt= cms.InputTag('elEDIsoValueNeutral04')),
336 
337  SoftElecMVAFilesString = cms.vstring(
338  "RecoEgamma/ElectronIdentification/data/TMVA_BDTSoftElectrons_7Feb2014.weights.xml"
339  ),
340  ElecMVAFilesString = cms.vstring(
341  "RecoEgamma/ElectronIdentification/data/TMVA_Category_BDTSimpleCat_10_17Feb2011.weights.xml",
342  "RecoEgamma/ElectronIdentification/data/TMVA_Category_BDTSimpleCat_12_17Feb2011.weights.xml",
343  "RecoEgamma/ElectronIdentification/data/TMVA_Category_BDTSimpleCat_20_17Feb2011.weights.xml",
344  "RecoEgamma/ElectronIdentification/data/TMVA_Category_BDTSimpleCat_22_17Feb2011.weights.xml"
345  ),
346 )
347 
348 ecalDrivenGsfElectronsFromMultiCl = ecalDrivenGsfElectrons.clone(
349  gsfElectronCoresTag = 'ecalDrivenGsfElectronCoresFromMultiCl'
350 )
351