1 import FWCore.ParameterSet.Config
as cms
2 import RecoTracker.IterativeTracking.iterativeTkConfig
as _cfg
3 from Configuration.Eras.Modifier_fastSim_cff
import fastSim
6 from Configuration.ProcessModifiers.trackdnn_cff
import trackdnn
7 from RecoTracker.IterativeTracking.dnnQualityCuts
import qualityCutDictionary
10 lowPtQuadStepClusters = _cfg.clusterRemoverForIter(
'LowPtQuadStep')
11 for _eraName, _postfix, _era
in _cfg.nonDefaultEras():
12 _era.toReplaceWith(lowPtQuadStepClusters, _cfg.clusterRemoverForIter(
'LowPtQuadStep', _eraName, _postfix))
16 import RecoTracker.TkSeedingLayers.PixelLayerQuadruplets_cfi
17 lowPtQuadStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerQuadruplets_cfi.PixelLayerQuadruplets.clone(
18 BPix = dict(skipClusters = cms.InputTag(
'lowPtQuadStepClusters')),
19 FPix = dict(skipClusters = cms.InputTag(
'lowPtQuadStepClusters'))
23 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpot_cfi
import globalTrackingRegionFromBeamSpot
as _globalTrackingRegionFromBeamSpot
24 lowPtQuadStepTrackingRegions = _globalTrackingRegionFromBeamSpot.clone(RegionPSet = dict(
29 from Configuration.Eras.Modifier_trackingPhase2PU140_cff
import trackingPhase2PU140
30 trackingPhase2PU140.toModify(lowPtQuadStepTrackingRegions, RegionPSet = dict(ptMin = 0.35,originRadius = 0.025))
32 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff
import pp_on_XeXe_2017
33 from Configuration.ProcessModifiers.pp_on_AA_cff
import pp_on_AA
35 (pp_on_XeXe_2017 | pp_on_AA).toReplaceWith(lowPtQuadStepTrackingRegions,
36 _globalTrackingRegionWithVertices.clone(RegionPSet=dict(
42 from Configuration.Eras.Modifier_highBetaStar_2018_cff
import highBetaStar_2018
43 highBetaStar_2018.toModify(lowPtQuadStepTrackingRegions,RegionPSet = dict(
49 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi
import hitPairEDProducer
as _hitPairEDProducer
50 lowPtQuadStepHitDoublets = _hitPairEDProducer.clone(
51 seedingLayers =
'lowPtQuadStepSeedLayers',
52 trackingRegions =
'lowPtQuadStepTrackingRegions',
54 maxElement = 50000000,
55 produceIntermediateHitDoublets =
True,
57 from RecoPixelVertexing.PixelTriplets.caHitQuadrupletEDProducer_cfi
import caHitQuadrupletEDProducer
as _caHitQuadrupletEDProducer
58 from RecoPixelVertexing.PixelTriplets.pixelTripletHLTEDProducer_cfi
import pixelTripletHLTEDProducer
as _pixelTripletHLTEDProducer
60 import RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi
61 lowPtQuadStepHitQuadruplets = _caHitQuadrupletEDProducer.clone(
62 doublets =
'lowPtQuadStepHitDoublets',
63 extraHitRPhitolerance = _pixelTripletHLTEDProducer.extraHitRPhitolerance,
64 SeedComparitorPSet = RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi.LowPtClusterShapeSeedComparitor.clone(),
67 value1 = 1000, value2 = 150,
69 useBendingCorrection =
True,
71 fitFastCircleChi2Cut =
True,
75 trackingPhase2PU140.toModify(lowPtQuadStepHitQuadruplets,CAThetaCut = 0.0015,CAPhiCut = 0.25)
76 highBetaStar_2018.toModify(lowPtQuadStepHitQuadruplets,CAThetaCut = 0.0034,CAPhiCut = 0.6)
78 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsEDProducer
as _seedCreatorFromRegionConsecutiveHitsEDProducer
79 lowPtQuadStepSeeds = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
80 seedingHitSets =
'lowPtQuadStepHitQuadruplets',
84 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
85 from FastSimulation.Tracking.SeedingMigration
import _hitSetProducerToFactoryPSet
86 _fastSim_lowPtQuadStepSeeds = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
87 trackingRegions =
'lowPtQuadStepTrackingRegions',
88 hitMasks = cms.InputTag(
'lowPtQuadStepMasks'),
90 SeedComparitorPSet = dict(ComponentName =
'none')),
91 layerList = lowPtQuadStepSeedLayers.layerList.value(),
93 BPix = dict(TTRHBuilder =
'WithoutRefit', HitProducer =
'TrackingRecHitProducer',),
94 FPix = dict(TTRHBuilder =
'WithoutRefit', HitProducer =
'TrackingRecHitProducer',),
95 layerPairs = lowPtQuadStepHitDoublets.layerPairs.value()
98 fastSim.toReplaceWith(lowPtQuadStepSeeds,_fastSim_lowPtQuadStepSeeds)
102 _lowPtQuadStepTrajectoryFilterBase = _TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
103 minimumNumberOfHits = 3,
106 lowPtQuadStepTrajectoryFilterBase = _lowPtQuadStepTrajectoryFilterBase.clone(
108 minGoodStripCharge = dict(refToPSet_ =
'SiStripClusterChargeCutLoose')
110 trackingPhase2PU140.toReplaceWith(lowPtQuadStepTrajectoryFilterBase, _lowPtQuadStepTrajectoryFilterBase)
112 (pp_on_XeXe_2017 | pp_on_AA).toModify(lowPtQuadStepTrajectoryFilterBase, minPt=0.49)
116 lowPtQuadStepTrajectoryFilter = _TrajectoryFilter_cff.CompositeTrajectoryFilter_block.clone(
117 filters = [cms.PSet(refToPSet_ = cms.string(
'lowPtQuadStepTrajectoryFilterBase'))]
119 trackingPhase2PU140.toModify(lowPtQuadStepTrajectoryFilter,
120 filters = lowPtQuadStepTrajectoryFilter.filters.value() + [cms.PSet(refToPSet_ = cms.string(
'ClusterShapeTrajectoryFilter'))]
123 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
124 lowPtQuadStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
125 ComponentName =
'lowPtQuadStepChi2Est',
128 clusterChargeCut = dict(refToPSet_ = (
'SiStripClusterChargeCutTight')),
130 trackingPhase2PU140.toModify(lowPtQuadStepChi2Est,
132 clusterChargeCut = dict(refToPSet_ =
'SiStripClusterChargeCutNone')
137 lowPtQuadStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
138 MeasurementTrackerName =
'',
139 trajectoryFilter = dict(refToPSet_ =
'lowPtQuadStepTrajectoryFilter'),
141 estimator =
'lowPtQuadStepChi2Est',
142 maxDPhiForLooperReconstruction = cms.double(2.0),
145 maxPtForLooperReconstruction = cms.double(0.7)
147 trackingPhase2PU140.toModify(lowPtQuadStepTrajectoryBuilder,
148 minNrOfHitsForRebuild = 1,
149 keepOriginalIfRebuildFails =
True,
155 lowPtQuadStepTrajectoryCleanerBySharedHits = _trajectoryCleanerBySharedHits.clone(
156 ComponentName =
'lowPtQuadStepTrajectoryCleanerBySharedHits',
157 fractionShared = 0.16,
158 allowSharedFirstHit =
True
160 trackingPhase2PU140.toModify(lowPtQuadStepTrajectoryCleanerBySharedHits, fractionShared = 0.09)
163 lowPtQuadStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
164 src =
'lowPtQuadStepSeeds',
166 numHitsForSeedCleaner = cms.int32(50),
167 onlyPixelHitsForSeedCleaner = cms.bool(
True),
168 TrajectoryBuilderPSet = dict(refToPSet_ =
'lowPtQuadStepTrajectoryBuilder'),
169 TrajectoryCleaner =
'lowPtQuadStepTrajectoryCleanerBySharedHits',
170 clustersToSkip = cms.InputTag(
'lowPtQuadStepClusters'),
171 doSeedingRegionRebuilding =
True,
172 useHitsSplitting =
True
174 trackingPhase2PU140.toModify(lowPtQuadStepTrackCandidates,
175 clustersToSkip =
None,
176 phase2clustersToSkip = cms.InputTag(
'lowPtQuadStepClusters')
180 import RecoTracker.MkFit.mkFitSeedConverter_cfi
as mkFitSeedConverter_cfi
181 import RecoTracker.MkFit.mkFitIterationConfigESProducer_cfi
as mkFitIterationConfigESProducer_cfi
182 import RecoTracker.MkFit.mkFitProducer_cfi
as mkFitProducer_cfi
183 import RecoTracker.MkFit.mkFitOutputConverter_cfi
as mkFitOutputConverter_cfi
184 lowPtQuadStepTrackCandidatesMkFitSeeds = mkFitSeedConverter_cfi.mkFitSeedConverter.clone(
185 seeds =
'lowPtQuadStepSeeds',
187 lowPtQuadStepTrackCandidatesMkFitConfig = mkFitIterationConfigESProducer_cfi.mkFitIterationConfigESProducer.clone(
188 ComponentName =
'lowPtQuadStepTrackCandidatesMkFitConfig',
189 config =
'RecoTracker/MkFit/data/mkfit-phase1-lowPtQuadStep.json',
191 lowPtQuadStepTrackCandidatesMkFit = mkFitProducer_cfi.mkFitProducer.clone(
192 seeds =
'lowPtQuadStepTrackCandidatesMkFitSeeds',
193 config = (
'',
'lowPtQuadStepTrackCandidatesMkFitConfig'),
194 clustersToSkip =
'lowPtQuadStepClusters',
196 trackingMkFitLowPtQuadStep.toReplaceWith(lowPtQuadStepTrackCandidates, mkFitOutputConverter_cfi.mkFitOutputConverter.clone(
197 seeds =
'lowPtQuadStepSeeds',
198 mkFitSeeds =
'lowPtQuadStepTrackCandidatesMkFitSeeds',
199 tracks =
'lowPtQuadStepTrackCandidatesMkFit',
203 import FastSimulation.Tracking.TrackCandidateProducer_cfi
204 _fastSim_lowPtQuadStepTrackCandidates = FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
205 src =
'lowPtQuadStepSeeds',
206 MinNumberOfCrossedLayers = 3,
207 hitMasks = cms.InputTag(
'lowPtQuadStepMasks')
209 fastSim.toReplaceWith(lowPtQuadStepTrackCandidates,_fastSim_lowPtQuadStepTrackCandidates)
213 lowPtQuadStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
214 src =
'lowPtQuadStepTrackCandidates',
215 AlgorithmName =
'lowPtQuadStep',
216 Fitter =
'FlexibleKFFittingSmoother',
218 fastSim.toModify(lowPtQuadStepTracks,TTRHBuilder =
'WithoutRefit')
223 lowPtQuadStep = TrackMVAClassifierPrompt.clone(
224 mva = dict(GBRForestLabel =
'MVASelectorLowPtQuadStep_Phase1'),
225 src =
'lowPtQuadStepTracks',
226 qualityCuts = [-0.7,-0.35,-0.15]
231 trackdnn.toReplaceWith(lowPtQuadStep, TrackTfClassifier.clone(
232 src =
'lowPtQuadStepTracks',
233 qualityCuts = qualityCutDictionary[
"LowPtQuadStep"]
236 highBetaStar_2018.toModify(lowPtQuadStep,qualityCuts = [-0.9,-0.35,-0.15])
237 pp_on_AA.toModify(lowPtQuadStep,
238 mva = dict(GBRForestLabel =
'HIMVASelectorLowPtQuadStep_Phase1'),
239 qualityCuts = [-0.9, -0.4, 0.3],
241 fastSim.toModify(lowPtQuadStep,vertices =
'firstStepPrimaryVerticesBeforeMixing')
244 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
245 lowPtQuadStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
246 src =
'lowPtQuadStepTracks',
248 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
249 name =
'lowPtQuadStepLoose',
251 res_par = ( 0.003, 0.002 ),
253 maxNumberLostLayers = 2,
254 minNumber3DLayers = 3,
255 d0_par1 = ( 0.8, 4.0 ),
256 dz_par1 = ( 0.7, 4.0 ),
257 d0_par2 = ( 0.6, 4.0 ),
258 dz_par2 = ( 0.6, 4.0 )
260 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
261 name =
'lowPtQuadStepTight',
262 preFilterName =
'lowPtQuadStepLoose',
264 res_par = ( 0.003, 0.002 ),
266 maxNumberLostLayers = 2,
267 minNumber3DLayers = 3,
268 d0_par1 = ( 0.7, 4.0 ),
269 dz_par1 = ( 0.6, 4.0 ),
270 d0_par2 = ( 0.5, 4.0 ),
271 dz_par2 = ( 0.5, 4.0 )
273 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
274 name =
'lowPtQuadStep',
275 preFilterName =
'lowPtQuadStepTight',
279 res_par = ( 0.003, 0.001 ),
281 maxNumberLostLayers = 2,
282 minNumber3DLayers = 3,
283 d0_par1 = ( 0.5, 4.0 ),
284 dz_par1 = ( 0.5, 4.0 ),
285 d0_par2 = ( 0.45, 4.0 ),
286 dz_par2 = ( 0.45, 4.0 )
293 LowPtQuadStepTask = cms.Task(lowPtQuadStepClusters,
294 lowPtQuadStepSeedLayers,
295 lowPtQuadStepTrackingRegions,
296 lowPtQuadStepHitDoublets,
297 lowPtQuadStepHitQuadruplets,
299 lowPtQuadStepTrackCandidates,
302 LowPtQuadStep = cms.Sequence(LowPtQuadStepTask)
304 _LowPtQuadStepTask_trackingMkFit = LowPtQuadStepTask.copy()
305 _LowPtQuadStepTask_trackingMkFit.add(lowPtQuadStepTrackCandidatesMkFitSeeds, lowPtQuadStepTrackCandidatesMkFit, lowPtQuadStepTrackCandidatesMkFitConfig)
306 trackingMkFitLowPtQuadStep.toReplaceWith(LowPtQuadStepTask, _LowPtQuadStepTask_trackingMkFit)
308 _LowPtQuadStepTask_Phase2PU140 = LowPtQuadStepTask.copy()
309 _LowPtQuadStepTask_Phase2PU140.replace(lowPtQuadStep, lowPtQuadStepSelector)
310 trackingPhase2PU140.toReplaceWith(LowPtQuadStepTask, _LowPtQuadStepTask_Phase2PU140)
313 from FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi
import maskProducerFromClusterRemover
315 fastSim.toReplaceWith(LowPtQuadStepTask,
316 cms.Task(lowPtQuadStepMasks
317 ,lowPtQuadStepTrackingRegions
319 ,lowPtQuadStepTrackCandidates