Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:24:50

0001 import FWCore.ParameterSet.Config as cms
0002 
0003 # Modifier for FastSim
0004 from Configuration.Eras.Modifier_fastSim_cff import fastSim
0005 
0006 # PFRecTracks from generalTracks
0007 from RecoParticleFlow.PFTracking.pfTrack_cfi import *
0008 lowPtGsfElePfTracks = pfTrack.clone(
0009     TkColList           = ['generalTracks'],
0010     GsfTracksInEvents   = False,
0011     GsfTrackModuleLabel = ''
0012 )
0013 fastSim.toModify(lowPtGsfElePfTracks,TkColList = ['generalTracksBeforeMixing'])
0014 
0015 # Low pT ElectronSeeds
0016 from RecoEgamma.EgammaElectronProducers.lowPtGsfElectronSeeds_cfi import *
0017 
0018 # Electron track candidates
0019 from TrackingTools.GsfTracking.CkfElectronCandidateMaker_cff import *
0020 lowPtGsfEleTrajectoryFilter = TrajectoryFilterForElectrons.clone(
0021     minPt = 0.,
0022     minimumNumberOfHits = 3
0023 )
0024 lowPtGsfEleTrajectoryBuilder = TrajectoryBuilderForElectrons.clone(
0025     trajectoryFilter = dict(refToPSet_ = 'lowPtGsfEleTrajectoryFilter')
0026 )
0027 lowPtGsfEleCkfTrackCandidates = electronCkfTrackCandidates.clone(
0028     TrajectoryBuilderPSet = dict(refToPSet_ = 'lowPtGsfEleTrajectoryBuilder'),
0029     src = 'lowPtGsfElectronSeeds'
0030 )
0031 import FastSimulation.Tracking.electronCkfTrackCandidates_cff
0032 fastLowPtGsfTkfTrackCandidates = FastSimulation.Tracking.electronCkfTrackCandidates_cff.electronCkfTrackCandidates.clone(src = "lowPtGsfElectronSeeds")
0033 
0034 # GsfTracks
0035 from TrackingTools.GsfTracking.GsfElectronGsfFit_cff import *
0036 lowPtGsfEleFittingSmoother = GsfElectronFittingSmoother.clone(
0037     ComponentName = 'lowPtGsfEleFittingSmoother',
0038     MinNumberOfHits = 2
0039 )
0040 from TrackingTools.GsfTracking.GsfElectronGsfFit_cff import * 
0041 lowPtGsfEleGsfTracks = electronGsfTracks.clone(
0042     Fitter = 'lowPtGsfEleFittingSmoother',
0043     src = 'lowPtGsfEleCkfTrackCandidates'
0044 )
0045 fastSim.toModify(lowPtGsfEleGsfTracks,src = "fastLowPtGsfTkfTrackCandidates")
0046 
0047 # GSFTrack to track association
0048 from RecoEgamma.EgammaElectronProducers.lowPtGsfToTrackLinks_cfi import lowPtGsfToTrackLinks
0049 
0050 # GsfPFRecTracks
0051 from RecoParticleFlow.PFTracking.pfTrackElec_cfi import *
0052 lowPtGsfElePfGsfTracks = pfTrackElec.clone(
0053     GsfTrackModuleLabel   = 'lowPtGsfEleGsfTracks',
0054     PFRecTrackLabel       = 'lowPtGsfElePfTracks',
0055     applyGsfTrackCleaning = False,
0056     useFifthStepForTrackerDrivenGsf = True
0057 )
0058 # SuperCluster generator and matching to GSF tracks
0059 # Below relies on the following default configurations:
0060 # RecoParticleFlow/PFClusterProducer/python/particleFlowClusterECALUncorrected_cfi.py
0061 # RecoParticleFlow/PFClusterProducer/python/particleFlowClusterECAL_cff.py
0062 # (particleFlowClusterECAL_cfi is generated automatically)
0063 from RecoEgamma.EgammaElectronProducers.lowPtGsfElectronSuperClusters_cfi import lowPtGsfElectronSuperClusters
0064 
0065 # Low pT electron cores
0066 from RecoEgamma.EgammaElectronProducers.lowPtGsfElectronCores_cff import lowPtGsfElectronCores
0067 
0068 # Low pT electrons
0069 from RecoEgamma.EgammaElectronProducers.lowPtGsfElectronsPreRegression_cfi import *
0070 from RecoEgamma.EgammaElectronProducers.lowPtGsfElectrons_cfi import *
0071 
0072 # Low pT Electron value maps
0073 from RecoEgamma.EgammaElectronProducers.lowPtGsfElectronSeedValueMaps_cff import lowPtGsfElectronSeedValueMaps
0074 from RecoEgamma.EgammaElectronProducers.lowPtGsfElectronSeedValueMaps_cff import rekeyLowPtGsfElectronSeedValueMaps
0075 
0076 # Low pT Electron ID
0077 from RecoEgamma.EgammaElectronProducers.lowPtGsfElectronID_cfi import lowPtGsfElectronID
0078 
0079 # Full sequence 
0080 lowPtGsfElectronTask = cms.Task(lowPtGsfElePfTracks,
0081                                 lowPtGsfElectronSeeds,
0082                                 lowPtGsfEleCkfTrackCandidates,
0083                                 lowPtGsfEleGsfTracks,
0084                                 lowPtGsfToTrackLinks,
0085                                 lowPtGsfElePfGsfTracks,
0086                                 lowPtGsfElectronSuperClusters,
0087                                 lowPtGsfElectronCores,
0088                                 lowPtGsfElectronsPreRegression,
0089                                 lowPtGsfElectrons,
0090                                 lowPtGsfElectronSeedValueMaps,
0091                                 rekeyLowPtGsfElectronSeedValueMaps,
0092                                 lowPtGsfElectronID
0093                                 )
0094 lowPtGsfElectronSequence = cms.Sequence(lowPtGsfElectronTask)
0095 
0096 _fastSim_lowPtGsfElectronTask = lowPtGsfElectronTask.copy()
0097 _fastSim_lowPtGsfElectronTask.replace(lowPtGsfElectronSeeds, cms.Task(lowPtGsfElectronSeedsTmp,lowPtGsfElectronSeeds))
0098 _fastSim_lowPtGsfElectronTask.replace(lowPtGsfEleCkfTrackCandidates, fastLowPtGsfTkfTrackCandidates)
0099 fastSim.toReplaceWith(lowPtGsfElectronTask, _fastSim_lowPtGsfElectronTask)