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
14 detachedQuadStepClusters = _cfg.clusterRemoverForIter(
'DetachedQuadStep')
15 for _eraName, _postfix, _era
in _cfg.nonDefaultEras():
16 _era.toReplaceWith(detachedQuadStepClusters, _cfg.clusterRemoverForIter(
'DetachedQuadStep', _eraName, _postfix))
19 import RecoTracker.TkSeedingLayers.PixelLayerQuadruplets_cfi
20 detachedQuadStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerQuadruplets_cfi.PixelLayerQuadruplets.clone(
21 BPix = dict(skipClusters = cms.InputTag(
'detachedQuadStepClusters')),
22 FPix = dict(skipClusters = cms.InputTag(
'detachedQuadStepClusters'))
26 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpotFixedZ_cfi
import globalTrackingRegionFromBeamSpotFixedZ
as _globalTrackingRegionFromBeamSpotFixedZ
27 detachedQuadStepTrackingRegions = _globalTrackingRegionFromBeamSpotFixedZ.clone(RegionPSet = dict(
29 originHalfLength = 15.0,
32 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpot_cfi
import globalTrackingRegionFromBeamSpot
as _globalTrackingRegionFromBeamSpot
33 from Configuration.Eras.Modifier_trackingPhase2PU140_cff
import trackingPhase2PU140
34 trackingPhase2PU140.toReplaceWith(detachedQuadStepTrackingRegions, _globalTrackingRegionFromBeamSpot.clone(RegionPSet = dict(
40 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff
import pp_on_XeXe_2017
41 from Configuration.ProcessModifiers.pp_on_AA_cff
import pp_on_AA
43 (pp_on_XeXe_2017 | pp_on_AA).toReplaceWith(detachedQuadStepTrackingRegions,
44 _globalTrackingRegionWithVertices.clone(RegionPSet=dict(
51 from Configuration.Eras.Modifier_highBetaStar_2018_cff
import highBetaStar_2018
52 highBetaStar_2018.toModify(detachedQuadStepTrackingRegions,RegionPSet = dict(ptMin = 0.05))
56 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi
import hitPairEDProducer
as _hitPairEDProducer
57 detachedQuadStepHitDoublets = _hitPairEDProducer.clone(
58 seedingLayers =
'detachedQuadStepSeedLayers',
59 trackingRegions =
'detachedQuadStepTrackingRegions',
61 maxElement = 50000000,
62 produceIntermediateHitDoublets =
True,
64 from RecoPixelVertexing.PixelTriplets.caHitQuadrupletEDProducer_cfi
import caHitQuadrupletEDProducer
as _caHitQuadrupletEDProducer
65 from RecoPixelVertexing.PixelTriplets.pixelTripletLargeTipEDProducer_cfi
import pixelTripletLargeTipEDProducer
as _pixelTripletLargeTipEDProducer
67 detachedQuadStepHitQuadruplets = _caHitQuadrupletEDProducer.clone(
68 doublets =
'detachedQuadStepHitDoublets',
69 extraHitRPhitolerance = _pixelTripletLargeTipEDProducer.extraHitRPhitolerance,
72 value1 = 500, value2 = 100,
74 useBendingCorrection =
True,
76 fitFastCircleChi2Cut =
True,
80 highBetaStar_2018.toModify(detachedQuadStepHitQuadruplets,CAThetaCut = 0.0022,CAPhiCut = 0.1)
82 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
as _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
83 detachedQuadStepSeeds = _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer.clone(
84 seedingHitSets =
'detachedQuadStepHitQuadruplets',
85 SeedComparitorPSet = dict(
86 ComponentName =
'PixelClusterShapeSeedComparitor',
87 FilterAtHelixStage = cms.bool(
False),
88 FilterPixelHits = cms.bool(
True),
89 FilterStripHits = cms.bool(
False),
90 ClusterShapeHitFilterName = cms.string(
'ClusterShapeHitFilter'),
91 ClusterShapeCacheSrc = cms.InputTag(
'siPixelClusterShapeCache')
96 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
97 from FastSimulation.Tracking.SeedingMigration
import _hitSetProducerToFactoryPSet
98 _fastSim_detachedQuadStepSeeds = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
99 trackingRegions =
'detachedQuadStepTrackingRegions',
100 hitMasks = cms.InputTag(
'detachedQuadStepMasks'),
102 SeedComparitorPSet = dict(ComponentName =
'none')),
103 layerList = detachedQuadStepSeedLayers.layerList.value(),
105 BPix = dict(TTRHBuilder =
'WithoutRefit', HitProducer =
'TrackingRecHitProducer',),
106 FPix = dict(TTRHBuilder =
'WithoutRefit', HitProducer =
'TrackingRecHitProducer',),
107 layerPairs = detachedQuadStepHitDoublets.layerPairs.value()
109 fastSim.toReplaceWith(detachedQuadStepSeeds,_fastSim_detachedQuadStepSeeds)
113 _detachedQuadStepTrajectoryFilterBase = _TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
114 minimumNumberOfHits = 3,
117 detachedQuadStepTrajectoryFilterBase = _detachedQuadStepTrajectoryFilterBase.clone(
119 minGoodStripCharge = dict(refToPSet_ =
'SiStripClusterChargeCutLoose')
121 trackingPhase2PU140.toReplaceWith(detachedQuadStepTrajectoryFilterBase,
122 _detachedQuadStepTrajectoryFilterBase.clone(
123 maxLostHitsFraction = 1./10.,
124 constantValueForLostHitsFractionFilter = 0.301,
127 detachedQuadStepTrajectoryFilter = _TrajectoryFilter_cff.CompositeTrajectoryFilter_block.clone(
128 filters = [cms.PSet(refToPSet_ = cms.string(
'detachedQuadStepTrajectoryFilterBase'))]
130 trackingPhase2PU140.toModify(detachedQuadStepTrajectoryFilter,
131 filters = detachedQuadStepTrajectoryFilter.filters.value()+[cms.PSet(refToPSet_ = cms.string(
'ClusterShapeTrajectoryFilter'))]
134 (pp_on_XeXe_2017 | pp_on_AA).toModify(detachedQuadStepTrajectoryFilterBase, minPt=0.9)
136 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
137 detachedQuadStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
138 ComponentName =
'detachedQuadStepChi2Est',
141 clusterChargeCut = dict(refToPSet_ =
'SiStripClusterChargeCutTight'),
143 trackingPhase2PU140.toModify(detachedQuadStepChi2Est,
145 clusterChargeCut = dict(refToPSet_ =
'SiStripClusterChargeCutNone')
150 detachedQuadStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
151 MeasurementTrackerName =
'',
152 trajectoryFilter = dict(refToPSet_ =
'detachedQuadStepTrajectoryFilter'),
154 alwaysUseInvalidHits =
True,
155 estimator =
'detachedQuadStepChi2Est',
156 maxDPhiForLooperReconstruction = cms.double(2.0),
157 maxPtForLooperReconstruction = cms.double(0.7)
159 trackingPhase2PU140.toModify(detachedQuadStepTrajectoryBuilder,
161 alwaysUseInvalidHits =
False,
166 detachedQuadStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
167 ComponentName =
'detachedQuadStepTrajectoryCleanerBySharedHits',
168 fractionShared = 0.13,
169 allowSharedFirstHit =
True
173 detachedQuadStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
174 src =
'detachedQuadStepSeeds',
175 clustersToSkip = cms.InputTag(
'detachedQuadStepClusters'),
177 numHitsForSeedCleaner = cms.int32(50),
178 onlyPixelHitsForSeedCleaner = cms.bool(
True),
179 TrajectoryBuilderPSet = dict(refToPSet_ =
'detachedQuadStepTrajectoryBuilder'),
180 TrajectoryCleaner =
'detachedQuadStepTrajectoryCleanerBySharedHits',
181 doSeedingRegionRebuilding =
True,
182 useHitsSplitting =
True
184 trackingPhase2PU140.toModify(detachedQuadStepTrackCandidates,
185 clustersToSkip =
None,
186 phase2clustersToSkip = cms.InputTag(
'detachedQuadStepClusters')
190 import RecoTracker.MkFit.mkFitSeedConverter_cfi
as mkFitSeedConverter_cfi
191 import RecoTracker.MkFit.mkFitIterationConfigESProducer_cfi
as mkFitIterationConfigESProducer_cfi
192 import RecoTracker.MkFit.mkFitProducer_cfi
as mkFitProducer_cfi
193 import RecoTracker.MkFit.mkFitOutputConverter_cfi
as mkFitOutputConverter_cfi
194 detachedQuadStepTrackCandidatesMkFitSeeds = mkFitSeedConverter_cfi.mkFitSeedConverter.clone(
195 seeds =
'detachedQuadStepSeeds',
197 detachedQuadStepTrackCandidatesMkFitConfig = mkFitIterationConfigESProducer_cfi.mkFitIterationConfigESProducer.clone(
198 config =
'RecoTracker/MkFit/data/mkfit-phase1-detachedQuadStep.json',
199 ComponentName =
'detachedQuadStepTrackCandidatesMkFitConfig',
201 detachedQuadStepTrackCandidatesMkFit = mkFitProducer_cfi.mkFitProducer.clone(
202 seeds =
'detachedQuadStepTrackCandidatesMkFitSeeds',
203 config = (
'',
'detachedQuadStepTrackCandidatesMkFitConfig'),
204 clustersToSkip =
'detachedQuadStepClusters',
206 trackingMkFitDetachedQuadStep.toReplaceWith(detachedQuadStepTrackCandidates, mkFitOutputConverter_cfi.mkFitOutputConverter.clone(
207 seeds =
'detachedQuadStepSeeds',
208 mkFitSeeds =
'detachedQuadStepTrackCandidatesMkFitSeeds',
209 tracks =
'detachedQuadStepTrackCandidatesMkFit',
213 import FastSimulation.Tracking.TrackCandidateProducer_cfi
214 _fastSim_detachedQuadStepTrackCandidates = FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
215 src =
'detachedQuadStepSeeds',
216 MinNumberOfCrossedLayers = 4,
217 hitMasks = cms.InputTag(
'detachedQuadStepMasks')
219 fastSim.toReplaceWith(detachedQuadStepTrackCandidates,_fastSim_detachedQuadStepTrackCandidates)
223 detachedQuadStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
224 AlgorithmName =
'detachedQuadStep',
225 src =
'detachedQuadStepTrackCandidates',
226 Fitter =
'FlexibleKFFittingSmoother',
228 fastSim.toModify(detachedQuadStepTracks,TTRHBuilder =
'WithoutRefit')
232 detachedQuadStep = TrackMVAClassifierDetached.clone(
233 mva = dict(GBRForestLabel =
'MVASelectorDetachedQuadStep_Phase1'),
234 src =
'detachedQuadStepTracks',
235 qualityCuts = [-0.5,0.0,0.5]
240 trackdnn.toReplaceWith(detachedQuadStep, TrackTfClassifier.clone(
241 src =
'detachedQuadStepTracks',
242 qualityCuts = qualityCutDictionary[
'DetachedQuadStep']
245 highBetaStar_2018.toModify(detachedQuadStep,qualityCuts = [-0.7,0.0,0.5])
246 pp_on_AA.toModify(detachedQuadStep,
247 mva = dict(GBRForestLabel =
'HIMVASelectorDetachedQuadStep_Phase1'),
248 qualityCuts = [-0.2, 0.2, 0.5],
251 fastSim.toModify(detachedQuadStep,vertices =
'firstStepPrimaryVerticesBeforeMixing')
254 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
255 detachedQuadStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
256 src =
'detachedQuadStepTracks',
258 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
259 name =
'detachedQuadStepVtxLoose',
261 res_par = ( 0.003, 0.001 ),
263 d0_par1 = ( 0.9, 3.0 ),
264 dz_par1 = ( 0.9, 3.0 ),
265 d0_par2 = ( 1.0, 3.0 ),
266 dz_par2 = ( 1.0, 3.0 )
268 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
269 name =
'detachedQuadStepTrkLoose',
271 res_par = ( 0.003, 0.001 ),
273 d0_par1 = ( 1.3, 4.0 ),
274 dz_par1 = ( 1.3, 4.0 ),
275 d0_par2 = ( 1.3, 4.0 ),
276 dz_par2 = ( 1.3, 4.0 )
278 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
279 name =
'detachedQuadStepVtxTight',
280 preFilterName =
'detachedQuadStepVtxLoose',
282 res_par = ( 0.003, 0.001 ),
284 maxNumberLostLayers = 1,
285 minNumber3DLayers = 3,
286 d0_par1 = ( 0.9, 3.0 ),
287 dz_par1 = ( 0.9, 3.0 ),
288 d0_par2 = ( 0.9, 3.0 ),
289 dz_par2 = ( 0.9, 3.0 )
291 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
292 name =
'detachedQuadStepTrkTight',
293 preFilterName =
'detachedQuadStepTrkLoose',
295 res_par = ( 0.003, 0.001 ),
297 maxNumberLostLayers = 1,
298 minNumber3DLayers = 3,
299 d0_par1 = ( 1.1, 4.0 ),
300 dz_par1 = ( 1.1, 4.0 ),
301 d0_par2 = ( 1.1, 4.0 ),
302 dz_par2 = ( 1.1, 4.0 )
304 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
305 name =
'detachedQuadStepVtx',
306 preFilterName =
'detachedQuadStepVtxTight',
310 res_par = ( 0.003, 0.001 ),
312 maxNumberLostLayers = 1,
313 minNumber3DLayers = 3,
314 d0_par1 = ( 0.8, 3.0 ),
315 dz_par1 = ( 0.8, 3.0 ),
316 d0_par2 = ( 0.8, 3.0 ),
317 dz_par2 = ( 0.8, 3.0 )
319 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
320 name =
'detachedQuadStepTrk',
321 preFilterName =
'detachedQuadStepTrkTight',
325 res_par = ( 0.003, 0.001 ),
327 maxNumberLostLayers = 1,
328 minNumber3DLayers = 3,
329 d0_par1 = ( 0.9, 4.0 ),
330 dz_par1 = ( 0.9, 4.0 ),
331 d0_par2 = ( 0.9, 4.0 ),
332 dz_par2 = ( 0.9, 4.0 )
338 from RecoTracker.FinalTrackSelectors.trackAlgoPriorityOrder_cfi
import trackAlgoPriorityOrder
340 trackingPhase2PU140.toReplaceWith(detachedQuadStep, RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
341 TrackProducers =[
'detachedQuadStepTracks',
342 'detachedQuadStepTracks'],
345 indivShareFrac =[0.09,0.09],
346 selectedTrackQuals =[
'detachedQuadStepSelector:detachedQuadStepVtx',
347 'detachedQuadStepSelector:detachedQuadStepTrk'],
348 setsToMerge = cms.VPSet(cms.PSet( tLists=cms.vint32(0,1), pQual=cms.bool(
True) )),
349 writeOnlyTrkQuals =
True
353 DetachedQuadStepTask = cms.Task(detachedQuadStepClusters,
354 detachedQuadStepSeedLayers,
355 detachedQuadStepTrackingRegions,
356 detachedQuadStepHitDoublets,
357 detachedQuadStepHitQuadruplets,
358 detachedQuadStepSeeds,
359 detachedQuadStepTrackCandidates,
360 detachedQuadStepTracks,
362 DetachedQuadStep = cms.Sequence(DetachedQuadStepTask)
364 _DetachedQuadStepTask_trackingMkFit = DetachedQuadStepTask.copy()
365 _DetachedQuadStepTask_trackingMkFit.add(detachedQuadStepTrackCandidatesMkFitSeeds, detachedQuadStepTrackCandidatesMkFit, detachedQuadStepTrackCandidatesMkFitConfig)
366 trackingMkFitDetachedQuadStep.toReplaceWith(DetachedQuadStepTask, _DetachedQuadStepTask_trackingMkFit)
368 _DetachedQuadStepTask_Phase2PU140 = DetachedQuadStepTask.copy()
369 _DetachedQuadStepTask_Phase2PU140.replace(detachedQuadStep, cms.Task(detachedQuadStepSelector,detachedQuadStep))
370 trackingPhase2PU140.toReplaceWith(DetachedQuadStepTask, _DetachedQuadStepTask_Phase2PU140)
373 from FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi
import maskProducerFromClusterRemover
375 fastSim.toReplaceWith(DetachedQuadStepTask,
376 cms.Task(detachedQuadStepMasks
377 ,detachedQuadStepTrackingRegions
378 ,detachedQuadStepSeeds
379 ,detachedQuadStepTrackCandidates
380 ,detachedQuadStepTracks