CMS 3D CMS Logo

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