CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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_BDTSimpleCat_17Feb2011.weights.xml"
165  ),
166 
167 )
168 
169 
170 #==============================================================================
171 # Final producer of persistent gsf electrons
172 #==============================================================================
173 
174 gsfElectrons = cms.EDProducer("GsfElectronProducer",
175 
176  # input collections
177  previousGsfElectronsTag = cms.InputTag("ecalDrivenGsfElectrons"),
178  pflowGsfElectronsTag = cms.InputTag("pfElectronTranslator:pf"),
179  gsfElectronCoresTag = cms.InputTag("gsfElectronCores"),
180  hcalTowers = cms.InputTag("towerMaker"),
181  barrelRecHitCollectionTag = cms.InputTag("ecalRecHit","EcalRecHitsEB"),
182  endcapRecHitCollectionTag = cms.InputTag("ecalRecHit","EcalRecHitsEE"),
183  pfMvaTag = cms.InputTag("pfElectronTranslator:pf"),
184  seedsTag = cms.InputTag("ecalDrivenElectronSeeds"),
185  beamSpotTag = cms.InputTag("offlineBeamSpot"),
186  gsfPfRecTracksTag = cms.InputTag("pfTrackElec"),
187  vtxTag = cms.InputTag('offlinePrimaryVertices'),
188 
189  # backward compatibility mechanism for ctf tracks
190  ctfTracksCheck = cms.bool(True),
191  ctfTracksTag = cms.InputTag("generalTracks"),
192 
193  gedElectronMode= cms.bool(False),
194  PreSelectMVA = cms.double(-0.1),
195 
196  # steering
197  useGsfPfRecTracks = cms.bool(True),
198  applyPreselection = cms.bool(True),
199  ecalDrivenEcalEnergyFromClassBasedParameterization = cms.bool(True),
200  ecalDrivenEcalErrorFromClassBasedParameterization = cms.bool(True),
201  pureTrackerDrivenEcalErrorFromSimpleParameterization = cms.bool(True),
202  applyAmbResolution = cms.bool(True),
203  ambSortingStrategy = cms.uint32(1),
204  ambClustersOverlapStrategy = cms.uint32(1),
205  addPflowElectrons = cms.bool(True),
206  useEcalRegression = cms.bool(False),
207  useCombinationRegression = cms.bool(False),
208 
209  # preselection parameters (ecal driven electrons)
210  minSCEtBarrel = cms.double(4.0),
211  minSCEtEndcaps = cms.double(4.0),
212  minEOverPBarrel = cms.double(0.0),
213  maxEOverPBarrel = cms.double(999999999.),
214  minEOverPEndcaps = cms.double(0.0),
215  maxEOverPEndcaps = cms.double(999999999.),
216  maxDeltaEtaBarrel = cms.double(0.02),
217  maxDeltaEtaEndcaps = cms.double(0.02),
218  maxDeltaPhiBarrel = cms.double(0.15),
219  maxDeltaPhiEndcaps = cms.double(0.15),
220  #useHcalTowers = cms.bool(True),
221  #useHcalRecHits = cms.bool(False),
222  hOverEConeSize = cms.double(0.15),
223  hOverEPtMin = cms.double(0.),
224  #maxHOverEDepth1Barrel = cms.double(0.1),
225  #maxHOverEDepth1Endcaps = cms.double(0.1),
226  #maxHOverEDepth2 = cms.double(0.1),
227  maxHOverEBarrel = cms.double(0.15),
228  maxHOverEEndcaps = cms.double(0.15),
229  maxHBarrel = cms.double(0.0),
230  maxHEndcaps = cms.double(0.0),
231  maxSigmaIetaIetaBarrel = cms.double(999999999.),
232  maxSigmaIetaIetaEndcaps = cms.double(999999999.),
233  maxFbremBarrel = cms.double(999999999.),
234  maxFbremEndcaps = cms.double(999999999.),
235  isBarrel = cms.bool(False),
236  isEndcaps = cms.bool(False),
237  isFiducial = cms.bool(False),
238  seedFromTEC = cms.bool(True),
239  maxTIP = cms.double(999999999.),
240  minMVA = cms.double(-0.1),
241  minMvaByPassForIsolated = cms.double(-0.1),
242 
243  # preselection parameters (tracker driven only electrons)
244  minSCEtBarrelPflow = cms.double(0.0),
245  minSCEtEndcapsPflow = cms.double(0.0),
246  minEOverPBarrelPflow = cms.double(0.0),
247  maxEOverPBarrelPflow = cms.double(999999999.),
248  minEOverPEndcapsPflow = cms.double(0.0),
249  maxEOverPEndcapsPflow = cms.double(999999999.),
250  maxDeltaEtaBarrelPflow = cms.double(999999999.),
251  maxDeltaEtaEndcapsPflow = cms.double(999999999.),
252  maxDeltaPhiBarrelPflow = cms.double(999999999.),
253  maxDeltaPhiEndcapsPflow = cms.double(999999999.),
254  hOverEConeSizePflow = cms.double(0.15),
255  hOverEPtMinPflow = cms.double(0.),
256  #maxHOverEDepth1BarrelPflow = cms.double(999999999.),
257  #maxHOverEDepth1EndcapsPflow = cms.double(999999999.),
258  #maxHOverEDepth2Pflow = cms.double(999999999.),
259  maxHOverEBarrelPflow = cms.double(999999999.),
260  maxHOverEEndcapsPflow = cms.double(999999999.),
261  maxHBarrelPflow = cms.double(0.0),
262  maxHEndcapsPflow = cms.double(0.0),
263  maxSigmaIetaIetaBarrelPflow = cms.double(999999999.),
264  maxSigmaIetaIetaEndcapsPflow = cms.double(999999999.),
265  maxFbremBarrelPflow = cms.double(999999999.),
266  maxFbremEndcapsPflow = cms.double(999999999.),
267  isBarrelPflow = cms.bool(False),
268  isEndcapsPflow = cms.bool(False),
269  isFiducialPflow = cms.bool(False),
270  maxTIPPflow = cms.double(999999999.),
271  minMVAPflow = cms.double(-0.1),
272  minMvaByPassForIsolatedPflow = cms.double(-0.1),
273 
274  # Ecal rec hits configuration
275  recHitFlagsToBeExcludedBarrel = cleanedHybridSuperClusters.RecHitFlagToBeExcluded,
276  recHitFlagsToBeExcludedEndcaps = multi5x5BasicClustersCleaned.RecHitFlagToBeExcluded,
277  recHitSeverityToBeExcludedBarrel = cleanedHybridSuperClusters.RecHitSeverityToBeExcluded,
278  recHitSeverityToBeExcludedEndcaps = cleanedHybridSuperClusters.RecHitSeverityToBeExcluded,
279  #severityLevelCut = cms.int32(4),
280 
281  # Isolation algos configuration
282  intRadiusBarrelTk = cms.double(0.015),
283  intRadiusEndcapTk = cms.double(0.015),
284  stripBarrelTk = cms.double(0.015),
285  stripEndcapTk = cms.double(0.015),
286  ptMinTk = cms.double(0.7),
287  maxVtxDistTk = cms.double(0.2),
288  maxDrbTk = cms.double(999999999.),
289  intRadiusHcal = cms.double(0.15),
290  etMinHcal = cms.double(0.0),
291  intRadiusEcalBarrel = cms.double(3.0),
292  intRadiusEcalEndcaps = cms.double(3.0),
293  jurassicWidth = cms.double(1.5),
294  etMinBarrel = cms.double(0.0),
295  eMinBarrel = cms.double(0.095),
296  etMinEndcaps = cms.double(0.110),
297  eMinEndcaps = cms.double(0.0),
298  vetoClustered = cms.bool(False),
299  useNumCrystals = cms.bool(True),
300  TransientInitialStateEstimatorParameters = cms.PSet(
301  propagatorAlongTISE = cms.string('PropagatorWithMaterial'),
302  propagatorOppositeTISE = cms.string('PropagatorWithMaterialOpposite')
303  ),
304 
305  # Corrections
306  superClusterErrorFunction = cms.string("EcalClusterEnergyUncertaintyObjectSpecific"),
307  crackCorrectionFunction = cms.string("EcalClusterCrackCorrection"),
308 
309  # Regression. The labels are needed in all cases
310  ecalRefinedRegressionWeightLabels = cms.vstring(),
311  combinationRegressionWeightLabels = cms.vstring(),
312 
313  ecalWeightsFromDB = cms.bool(True),
314  # if not from DB. Otherwise, keep empty
315  ecalRefinedRegressionWeightFiles = cms.vstring(),
316  combinationWeightsFromDB = cms.bool(True),
317  # if not from DB. Otherwise, keep empty
318  combinationRegressionWeightFile = cms.vstring(),
319 
320 
321 
322  # Iso Values (PF and EcalDriven)
323  useIsolationValues = cms.bool(True),
324  pfIsolationValues = cms.PSet(
325  pfSumChargedHadronPt = cms.InputTag('elPFIsoValueCharged04'),
326  pfSumPhotonEt = cms.InputTag('elPFIsoValueGamma04'),
327  pfSumNeutralHadronEt= cms.InputTag('elPFIsoValueNeutral04')),
328 
329  edIsolationValues = cms.PSet(
330  edSumChargedHadronPt = cms.InputTag('elEDIsoValueCharged04'),
331  edSumPhotonEt = cms.InputTag('elEDIsoValueGamma04'),
332  edSumNeutralHadronEt= cms.InputTag('elEDIsoValueNeutral04')),
333 
334  SoftElecMVAFilesString = cms.vstring(
335  "RecoEgamma/ElectronIdentification/data/TMVA_BDTSoftElectrons_7Feb2014.weights.xml"
336  ),
337  ElecMVAFilesString = cms.vstring(
338  "RecoEgamma/ElectronIdentification/data/TMVA_BDTSimpleCat_17Feb2011.weights.xml"
339  ),
340 )
341 
342