CMS 3D CMS Logo

lowPtGsfElectronSequence_cff.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 # Modifier for FastSim
4 from Configuration.Eras.Modifier_fastSim_cff import fastSim
5 
6 # PFRecTracks from generalTracks
8 lowPtGsfElePfTracks = pfTrack.clone(
9  TkColList = ['generalTracks'],
10  GsfTracksInEvents = False,
11  GsfTrackModuleLabel = ''
12 )
13 fastSim.toModify(lowPtGsfElePfTracks,TkColList = ['generalTracksBeforeMixing'])
14 
15 # Low pT ElectronSeeds
17 
18 # Electron track candidates
20 lowPtGsfEleTrajectoryFilter = TrajectoryFilterForElectrons.clone(
21  minPt = 0.,
22  minimumNumberOfHits = 3
23 )
24 lowPtGsfEleTrajectoryBuilder = TrajectoryBuilderForElectrons.clone(
25  trajectoryFilter = dict(refToPSet_ = 'lowPtGsfEleTrajectoryFilter')
26 )
27 lowPtGsfEleCkfTrackCandidates = electronCkfTrackCandidates.clone(
28  TrajectoryBuilderPSet = dict(refToPSet_ = 'lowPtGsfEleTrajectoryBuilder'),
29  src = 'lowPtGsfElectronSeeds'
30 )
32 fastLowPtGsfTkfTrackCandidates = FastSimulation.Tracking.electronCkfTrackCandidates_cff.electronCkfTrackCandidates.clone(src = "lowPtGsfElectronSeeds")
33 
34 # GsfTracks
36 lowPtGsfEleFittingSmoother = GsfElectronFittingSmoother.clone(
37  ComponentName = 'lowPtGsfEleFittingSmoother',
38  MinNumberOfHits = 2
39 )
41 lowPtGsfEleGsfTracks = electronGsfTracks.clone(
42  Fitter = 'lowPtGsfEleFittingSmoother',
43  src = 'lowPtGsfEleCkfTrackCandidates'
44 )
45 fastSim.toModify(lowPtGsfEleGsfTracks,src = "fastLowPtGsfTkfTrackCandidates")
46 
47 # GSFTrack to track association
48 from RecoEgamma.EgammaElectronProducers.lowPtGsfToTrackLinks_cfi import lowPtGsfToTrackLinks
49 
50 # GsfPFRecTracks
52 lowPtGsfElePfGsfTracks = pfTrackElec.clone(
53  GsfTrackModuleLabel = 'lowPtGsfEleGsfTracks',
54  PFRecTrackLabel = 'lowPtGsfElePfTracks',
55  applyGsfTrackCleaning = False,
56  useFifthStepForTrackerDrivenGsf = True
57 )
58 # SuperCluster generator and matching to GSF tracks
59 # Below relies on the following default configurations:
60 # RecoParticleFlow/PFClusterProducer/python/particleFlowClusterECALUncorrected_cfi.py
61 # RecoParticleFlow/PFClusterProducer/python/particleFlowClusterECAL_cff.py
62 # (particleFlowClusterECAL_cfi is generated automatically)
63 from RecoEgamma.EgammaElectronProducers.lowPtGsfElectronSuperClusters_cfi import lowPtGsfElectronSuperClusters
64 
65 # Low pT electron cores
66 from RecoEgamma.EgammaElectronProducers.lowPtGsfElectronCores_cff import lowPtGsfElectronCores
67 
68 # Low pT electrons
71 
72 # Low pT Electron value maps
73 from RecoEgamma.EgammaElectronProducers.lowPtGsfElectronSeedValueMaps_cff import lowPtGsfElectronSeedValueMaps
74 from RecoEgamma.EgammaElectronProducers.lowPtGsfElectronSeedValueMaps_cff import rekeyLowPtGsfElectronSeedValueMaps
75 
76 # Low pT Electron ID
77 from RecoEgamma.EgammaElectronProducers.lowPtGsfElectronID_cfi import lowPtGsfElectronID
78 
79 # Full sequence
80 lowPtGsfElectronTask = cms.Task(lowPtGsfElePfTracks,
81  lowPtGsfElectronSeeds,
82  lowPtGsfEleCkfTrackCandidates,
83  lowPtGsfEleGsfTracks,
84  lowPtGsfToTrackLinks,
85  lowPtGsfElePfGsfTracks,
86  lowPtGsfElectronSuperClusters,
87  lowPtGsfElectronCores,
88  lowPtGsfElectronsPreRegression,
89  lowPtGsfElectrons,
90  lowPtGsfElectronSeedValueMaps,
91  rekeyLowPtGsfElectronSeedValueMaps,
92  lowPtGsfElectronID
93  )
94 lowPtGsfElectronSequence = cms.Sequence(lowPtGsfElectronTask)
95 
96 _fastSim_lowPtGsfElectronTask = lowPtGsfElectronTask.copy()
97 _fastSim_lowPtGsfElectronTask.replace(lowPtGsfElectronSeeds, cms.Task(lowPtGsfElectronSeedsTmp,lowPtGsfElectronSeeds))
98 _fastSim_lowPtGsfElectronTask.replace(lowPtGsfEleCkfTrackCandidates, fastLowPtGsfTkfTrackCandidates)
99 fastSim.toReplaceWith(lowPtGsfElectronTask, _fastSim_lowPtGsfElectronTask)