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