CMS 3D CMS Logo

lowPtGsfElectrons_cfi.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
4 
5 from RecoEgamma.EgammaIsolationAlgos.electronTrackIsolations_cfi import trkIsol03CfgV1,trkIsol04CfgV1
6 
7 lowPtGsfElectrons = cms.EDProducer(
8  "LowPtGsfElectronProducer",
9 
10  # input collections
11  previousGsfElectronsTag = cms.InputTag(""),
12  pflowGsfElectronsTag = cms.InputTag(""),
13  gsfElectronCoresTag = cms.InputTag("lowPtGsfElectronCores"),
14  barrelRecHitCollectionTag = cms.InputTag("ecalRecHit","EcalRecHitsEB"),
15  endcapRecHitCollectionTag = cms.InputTag("ecalRecHit","EcalRecHitsEE"),
16  hcalTowers = cms.InputTag("towerMaker"),
17  checkHcalStatus = cms.bool(True),
18  pfMvaTag = cms.InputTag(""),
19  seedsTag = cms.InputTag("lowPtGsfElectronSeeds"),
20  beamSpotTag = cms.InputTag("offlineBeamSpot"),
21  gsfPfRecTracksTag = cms.InputTag(""),
22  egmPFCandidatesTag = cms.InputTag('particleFlowEGamma'),
23  vtxTag = cms.InputTag('offlinePrimaryVertices'),
24 
25  #output collections
26  outputEGMPFValueMap = cms.string(''),
27 
28  # backward compatibility mechanism for ctf tracks
29  ctfTracksCheck = cms.bool(True),
30  ctfTracksTag = cms.InputTag("generalTracks"),
31 
32  gedElectronMode = cms.bool(False), #@@
33  PreSelectMVA = cms.double(-0.1),
34  MaxElePtForOnlyMVA = cms.double(50.0),
35 
36  # steering
37  useGsfPfRecTracks = cms.bool(False),
38  applyPreselection = cms.bool(False),
39  ecalDrivenEcalEnergyFromClassBasedParameterization = cms.bool(True),
40  ecalDrivenEcalErrorFromClassBasedParameterization = cms.bool(True),
41  pureTrackerDrivenEcalErrorFromSimpleParameterization = cms.bool(True),
42  applyAmbResolution = cms.bool(False),
43  ambSortingStrategy = cms.uint32(1),
44  ambClustersOverlapStrategy = cms.uint32(1),
45  addPflowElectrons = cms.bool(True), # this one should be transfered to the "core" level #??
46  useEcalRegression = cms.bool(False), #@@
47  useCombinationRegression = cms.bool(False), #@@
48 
49  # preselection parameters (ecal driven electrons)
50  minSCEtBarrel = cms.double(4.0),
51  minSCEtEndcaps = cms.double(4.0),
52  minEOverPBarrel = cms.double(0.0),
53  maxEOverPBarrel = cms.double(999999999.),
54  minEOverPEndcaps = cms.double(0.0),
55  maxEOverPEndcaps = cms.double(999999999.),
56  maxDeltaEtaBarrel = cms.double(0.02),
57  maxDeltaEtaEndcaps = cms.double(0.02),
58  maxDeltaPhiBarrel = cms.double(0.15),
59  maxDeltaPhiEndcaps = cms.double(0.15),
60  #useHcalTowers = cms.bool(True),
61  #useHcalRecHits = cms.bool(False),
62  hOverEConeSize = cms.double(0.15),
63  hOverEPtMin = cms.double(0.),
64  #maxHOverEDepth1Barrel = cms.double(0.1),
65  #maxHOverEDepth1Endcaps = cms.double(0.1),
66  #maxHOverEDepth2 = cms.double(0.1),
67  maxHOverEBarrel = cms.double(0.15),
68  maxHOverEEndcaps = cms.double(0.15),
69  maxHBarrel = cms.double(0.0),
70  maxHEndcaps = cms.double(0.0),
71  maxSigmaIetaIetaBarrel = cms.double(999999999.),
72  maxSigmaIetaIetaEndcaps = cms.double(999999999.),
73  maxFbremBarrel = cms.double(999999999.),
74  maxFbremEndcaps = cms.double(999999999.),
75  isBarrel = cms.bool(False),
76  isEndcaps = cms.bool(False),
77  isFiducial = cms.bool(False),
78  maxTIP = cms.double(999999999.),
79  seedFromTEC = cms.bool(True),
80  minMVA = cms.double(-0.4),
81  minMvaByPassForIsolated = cms.double(-0.4),
82 
83  # preselection parameters (tracker driven only electrons)
84  minSCEtBarrelPflow = cms.double(0.0),
85  minSCEtEndcapsPflow = cms.double(0.0),
86  minEOverPBarrelPflow = cms.double(0.0),
87  maxEOverPBarrelPflow = cms.double(999999999.),
88  minEOverPEndcapsPflow = cms.double(0.0),
89  maxEOverPEndcapsPflow = cms.double(999999999.),
90  maxDeltaEtaBarrelPflow = cms.double(999999999.),
91  maxDeltaEtaEndcapsPflow = cms.double(999999999.),
92  maxDeltaPhiBarrelPflow = cms.double(999999999.),
93  maxDeltaPhiEndcapsPflow = cms.double(999999999.),
94  hOverEConeSizePflow = cms.double(0.15),
95  hOverEPtMinPflow = cms.double(0.),
96  #maxHOverEDepth1BarrelPflow = cms.double(999999999.),
97  #maxHOverEDepth1EndcapsPflow = cms.double(999999999.),
98  #maxHOverEDepth2Pflow = cms.double(999999999.),
99  maxHOverEBarrelPflow = cms.double(999999999.),
100  maxHOverEEndcapsPflow = cms.double(999999999.),
101  maxHBarrelPflow = cms.double(0.0),
102  maxHEndcapsPflow = cms.double(0.0),
103  maxSigmaIetaIetaBarrelPflow = cms.double(999999999.),
104  maxSigmaIetaIetaEndcapsPflow = cms.double(999999999.),
105  maxFbremBarrelPflow = cms.double(999999999.),
106  maxFbremEndcapsPflow = cms.double(999999999.),
107  isBarrelPflow = cms.bool(False),
108  isEndcapsPflow = cms.bool(False),
109  isFiducialPflow = cms.bool(False),
110  maxTIPPflow = cms.double(999999999.),
111  minMVAPflow = cms.double(-0.4),
112  minMvaByPassForIsolatedPflow = cms.double(-0.4),
113 
114  # Ecal rec hits configuration
115  recHitFlagsToBeExcludedBarrel = cleanedHybridSuperClusters.RecHitFlagToBeExcluded,
116  recHitFlagsToBeExcludedEndcaps = multi5x5BasicClustersCleaned.RecHitFlagToBeExcluded,
117  recHitSeverityToBeExcludedBarrel = cleanedHybridSuperClusters.RecHitSeverityToBeExcluded,
118  recHitSeverityToBeExcludedEndcaps = cleanedHybridSuperClusters.RecHitSeverityToBeExcluded,
119  #severityLevelCut = cms.int32(4),
120 
121  # Isolation algos configuration
122  trkIsol03Cfg = trkIsol03CfgV1,
123  trkIsol04Cfg = trkIsol04CfgV1,
124  intRadiusHcal = cms.double(0.15),
125  etMinHcal = cms.double(0.0),
126  intRadiusEcalBarrel = cms.double(3.0),
127  intRadiusEcalEndcaps = cms.double(3.0),
128  jurassicWidth = cms.double(1.5),
129  etMinBarrel = cms.double(0.0),
130  eMinBarrel = cms.double(0.095),
131  etMinEndcaps = cms.double(0.110),
132  eMinEndcaps = cms.double(0.0),
133  vetoClustered = cms.bool(False),
134  useNumCrystals = cms.bool(True),
135  TransientInitialStateEstimatorParameters = cms.PSet(
136  propagatorAlongTISE = cms.string('PropagatorWithMaterial'),
137  propagatorOppositeTISE = cms.string('PropagatorWithMaterialOpposite')
138  ),
139 
140  # Corrections
141  superClusterErrorFunction = cms.string("EcalClusterEnergyUncertaintyObjectSpecific"),
142  crackCorrectionFunction = cms.string("EcalClusterCrackCorrection"),
143 
144  # Regression. The labels are needed in all cases
145  ecalRefinedRegressionWeightLabels = cms.vstring(), #@@
146  combinationRegressionWeightLabels = cms.vstring(), #@@
147 
148  ecalWeightsFromDB = cms.bool(True),
149  # if not from DB. Otherwise, keep empty
150  ecalRefinedRegressionWeightFiles = cms.vstring(),
151  combinationWeightsFromDB = cms.bool(True),
152  # if not from DB. Otherwise, keep empty
153  combinationRegressionWeightFile = cms.vstring(),
154 
155  # Iso Values
156  useIsolationValues = cms.bool(False),
157  SoftElecMVAFilesString = cms.vstring(
158  "RecoEgamma/ElectronIdentification/data/TMVA_BDTSoftElectrons_7Feb2014.weights.xml"
159  ),
160  ElecMVAFilesString = cms.vstring(
161  "RecoEgamma/ElectronIdentification/data/TMVA_Category_BDTSimpleCat_10_17Feb2011.weights.xml",
162  "RecoEgamma/ElectronIdentification/data/TMVA_Category_BDTSimpleCat_12_17Feb2011.weights.xml",
163  "RecoEgamma/ElectronIdentification/data/TMVA_Category_BDTSimpleCat_20_17Feb2011.weights.xml",
164  "RecoEgamma/ElectronIdentification/data/TMVA_Category_BDTSimpleCat_22_17Feb2011.weights.xml"
165  ),
166  )
167 
168 from Configuration.Eras.Modifier_fastSim_cff import fastSim
169 fastSim.toModify(lowPtGsfElectrons,ctfTracksTag = cms.InputTag("generalTracksBeforeMixing"))
170 
171 from Configuration.Eras.Modifier_pp_on_AA_2018_cff import pp_on_AA_2018
172 pp_on_AA_2018.toModify(lowPtGsfElectrons, minSCEtBarrel = 15.0)
173 pp_on_AA_2018.toModify(lowPtGsfElectrons, minSCEtEndcaps = 15.0)