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 from Configuration.ProcessModifiers.trackingNoLoopers_cff
import trackingNoLoopers
17 detachedQuadStepClusters = _cfg.clusterRemoverForIter(
'DetachedQuadStep')
18 for _eraName, _postfix, _era
in _cfg.nonDefaultEras():
19 _era.toReplaceWith(detachedQuadStepClusters, _cfg.clusterRemoverForIter(
'DetachedQuadStep', _eraName, _postfix))
22 import RecoTracker.TkSeedingLayers.PixelLayerQuadruplets_cfi
23 detachedQuadStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerQuadruplets_cfi.PixelLayerQuadruplets.clone(
24 BPix = dict(skipClusters = cms.InputTag(
'detachedQuadStepClusters')),
25 FPix = dict(skipClusters = cms.InputTag(
'detachedQuadStepClusters'))
29 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpotFixedZ_cfi
import globalTrackingRegionFromBeamSpotFixedZ
as _globalTrackingRegionFromBeamSpotFixedZ
30 detachedQuadStepTrackingRegions = _globalTrackingRegionFromBeamSpotFixedZ.clone(RegionPSet = dict(
32 originHalfLength = 15.0,
35 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpot_cfi
import globalTrackingRegionFromBeamSpot
as _globalTrackingRegionFromBeamSpot
36 from Configuration.Eras.Modifier_trackingPhase2PU140_cff
import trackingPhase2PU140
37 trackingPhase2PU140.toReplaceWith(detachedQuadStepTrackingRegions, _globalTrackingRegionFromBeamSpot.clone(RegionPSet = dict(
43 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff
import pp_on_XeXe_2017
44 from Configuration.ProcessModifiers.pp_on_AA_cff
import pp_on_AA
46 (pp_on_XeXe_2017 | pp_on_AA).toReplaceWith(detachedQuadStepTrackingRegions,
47 _globalTrackingRegionWithVertices.clone(RegionPSet=dict(
54 from Configuration.Eras.Modifier_highBetaStar_cff
import highBetaStar
55 highBetaStar.toModify(detachedQuadStepTrackingRegions,RegionPSet = dict(ptMin = 0.05))
59 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi
import hitPairEDProducer
as _hitPairEDProducer
60 detachedQuadStepHitDoublets = _hitPairEDProducer.clone(
61 seedingLayers =
'detachedQuadStepSeedLayers',
62 trackingRegions =
'detachedQuadStepTrackingRegions',
64 maxElement = 50000000,
65 produceIntermediateHitDoublets =
True,
67 from RecoTracker.PixelSeeding.caHitQuadrupletEDProducer_cfi
import caHitQuadrupletEDProducer
as _caHitQuadrupletEDProducer
68 from RecoTracker.PixelSeeding.pixelTripletLargeTipEDProducer_cfi
import pixelTripletLargeTipEDProducer
as _pixelTripletLargeTipEDProducer
70 detachedQuadStepHitQuadruplets = _caHitQuadrupletEDProducer.clone(
71 doublets =
'detachedQuadStepHitDoublets',
72 extraHitRPhitolerance = _pixelTripletLargeTipEDProducer.extraHitRPhitolerance,
75 value1 = 500, value2 = 100,
77 useBendingCorrection =
True,
79 fitFastCircleChi2Cut =
True,
83 highBetaStar.toModify(detachedQuadStepHitQuadruplets,CAThetaCut = 0.0022,CAPhiCut = 0.1)
85 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
as _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
86 detachedQuadStepSeeds = _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer.clone(
87 seedingHitSets =
'detachedQuadStepHitQuadruplets',
88 SeedComparitorPSet = dict(
89 ComponentName =
'PixelClusterShapeSeedComparitor',
90 FilterAtHelixStage = cms.bool(
False),
91 FilterPixelHits = cms.bool(
True),
92 FilterStripHits = cms.bool(
False),
93 ClusterShapeHitFilterName = cms.string(
'ClusterShapeHitFilter'),
94 ClusterShapeCacheSrc = cms.InputTag(
'siPixelClusterShapeCache')
99 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
100 from FastSimulation.Tracking.SeedingMigration
import _hitSetProducerToFactoryPSet
101 _fastSim_detachedQuadStepSeeds = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
102 trackingRegions =
'detachedQuadStepTrackingRegions',
103 hitMasks = cms.InputTag(
'detachedQuadStepMasks'),
105 SeedComparitorPSet = dict(ComponentName =
'none')),
106 layerList = detachedQuadStepSeedLayers.layerList.value(),
108 BPix = dict(TTRHBuilder =
'WithoutRefit', HitProducer =
'TrackingRecHitProducer',),
109 FPix = dict(TTRHBuilder =
'WithoutRefit', HitProducer =
'TrackingRecHitProducer',),
110 layerPairs = detachedQuadStepHitDoublets.layerPairs.value()
112 fastSim.toReplaceWith(detachedQuadStepSeeds,_fastSim_detachedQuadStepSeeds)
116 _detachedQuadStepTrajectoryFilterBase = _TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
117 minimumNumberOfHits = 3,
120 detachedQuadStepTrajectoryFilterBase = _detachedQuadStepTrajectoryFilterBase.clone(
122 minGoodStripCharge = dict(refToPSet_ =
'SiStripClusterChargeCutLoose')
124 trackingPhase2PU140.toReplaceWith(detachedQuadStepTrajectoryFilterBase,
125 _detachedQuadStepTrajectoryFilterBase.clone(
126 maxLostHitsFraction = 1./10.,
127 constantValueForLostHitsFractionFilter = 0.301,
130 detachedQuadStepTrajectoryFilter = _TrajectoryFilter_cff.CompositeTrajectoryFilter_block.clone(
131 filters = [cms.PSet(refToPSet_ = cms.string(
'detachedQuadStepTrajectoryFilterBase'))]
133 trackingPhase2PU140.toModify(detachedQuadStepTrajectoryFilter,
134 filters = detachedQuadStepTrajectoryFilter.filters.value()+[cms.PSet(refToPSet_ = cms.string(
'ClusterShapeTrajectoryFilter'))]
137 (pp_on_XeXe_2017 | pp_on_AA).toModify(detachedQuadStepTrajectoryFilterBase, minPt=0.9)
139 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
140 detachedQuadStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
141 ComponentName =
'detachedQuadStepChi2Est',
144 clusterChargeCut = dict(refToPSet_ =
'SiStripClusterChargeCutTight'),
146 trackingPhase2PU140.toModify(detachedQuadStepChi2Est,
148 clusterChargeCut = dict(refToPSet_ =
'SiStripClusterChargeCutNone')
153 detachedQuadStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilderIterativeDefault.clone(
154 trajectoryFilter = dict(refToPSet_ =
'detachedQuadStepTrajectoryFilter'),
156 alwaysUseInvalidHits =
True,
157 estimator =
'detachedQuadStepChi2Est',
158 maxDPhiForLooperReconstruction = 2.0,
159 maxPtForLooperReconstruction = 0.7,
161 trackingNoLoopers.toModify(detachedQuadStepTrajectoryBuilder,
162 maxPtForLooperReconstruction = 0.0)
163 trackingPhase2PU140.toModify(detachedQuadStepTrajectoryBuilder,
165 alwaysUseInvalidHits =
False,
170 detachedQuadStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
171 ComponentName =
'detachedQuadStepTrajectoryCleanerBySharedHits',
172 fractionShared = 0.13,
173 allowSharedFirstHit =
True 177 detachedQuadStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidatesIterativeDefault.clone(
178 src =
'detachedQuadStepSeeds',
179 clustersToSkip =
'detachedQuadStepClusters',
181 numHitsForSeedCleaner = 50,
182 onlyPixelHitsForSeedCleaner =
True,
183 TrajectoryBuilderPSet = dict(refToPSet_ =
'detachedQuadStepTrajectoryBuilder'),
184 TrajectoryCleaner =
'detachedQuadStepTrajectoryCleanerBySharedHits',
185 doSeedingRegionRebuilding =
True,
186 useHitsSplitting =
True,
188 trackingPhase2PU140.toModify(detachedQuadStepTrackCandidates,
190 phase2clustersToSkip =
'detachedQuadStepClusters' 194 import RecoTracker.MkFit.mkFitSeedConverter_cfi
as mkFitSeedConverter_cfi
195 import RecoTracker.MkFit.mkFitIterationConfigESProducer_cfi
as mkFitIterationConfigESProducer_cfi
196 import RecoTracker.MkFit.mkFitProducer_cfi
as mkFitProducer_cfi
197 import RecoTracker.MkFit.mkFitOutputConverter_cfi
as mkFitOutputConverter_cfi
198 detachedQuadStepTrackCandidatesMkFitSeeds = mkFitSeedConverter_cfi.mkFitSeedConverter.clone(
199 seeds =
'detachedQuadStepSeeds',
201 detachedQuadStepTrackCandidatesMkFitConfig = mkFitIterationConfigESProducer_cfi.mkFitIterationConfigESProducer.clone(
202 config =
'RecoTracker/MkFit/data/mkfit-phase1-detachedQuadStep.json',
203 ComponentName =
'detachedQuadStepTrackCandidatesMkFitConfig',
205 detachedQuadStepTrackCandidatesMkFit = mkFitProducer_cfi.mkFitProducer.clone(
206 seeds =
'detachedQuadStepTrackCandidatesMkFitSeeds',
207 config = (
'',
'detachedQuadStepTrackCandidatesMkFitConfig'),
208 clustersToSkip =
'detachedQuadStepClusters',
210 trackingMkFitDetachedQuadStep.toReplaceWith(detachedQuadStepTrackCandidates, mkFitOutputConverter_cfi.mkFitOutputConverter.clone(
211 seeds =
'detachedQuadStepSeeds',
212 mkFitSeeds =
'detachedQuadStepTrackCandidatesMkFitSeeds',
213 tracks =
'detachedQuadStepTrackCandidatesMkFit',
215 (pp_on_XeXe_2017 | pp_on_AA).toModify(detachedQuadStepTrackCandidatesMkFitConfig, minPt=0.9)
218 import FastSimulation.Tracking.TrackCandidateProducer_cfi
219 _fastSim_detachedQuadStepTrackCandidates = FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
220 src =
'detachedQuadStepSeeds',
221 MinNumberOfCrossedLayers = 4,
222 hitMasks = cms.InputTag(
'detachedQuadStepMasks')
224 fastSim.toReplaceWith(detachedQuadStepTrackCandidates,_fastSim_detachedQuadStepTrackCandidates)
227 import RecoTracker.TrackProducer.TrackProducerIterativeDefault_cfi
228 detachedQuadStepTracks = RecoTracker.TrackProducer.TrackProducerIterativeDefault_cfi.TrackProducerIterativeDefault.clone(
229 AlgorithmName =
'detachedQuadStep',
230 src =
'detachedQuadStepTrackCandidates',
231 Fitter =
'FlexibleKFFittingSmoother',
233 fastSim.toModify(detachedQuadStepTracks,TTRHBuilder =
'WithoutRefit')
235 from Configuration.Eras.Modifier_phase2_timing_layer_cff
import phase2_timing_layer
236 phase2_timing_layer.toModify(detachedQuadStepTracks, TrajectoryInEvent =
True)
240 detachedQuadStep = TrackMVAClassifierDetached.clone(
241 mva = dict(GBRForestLabel =
'MVASelectorDetachedQuadStep_Phase1'),
242 src =
'detachedQuadStepTracks',
243 qualityCuts = [-0.5,0.0,0.5]
245 pp_on_AA.toModify(detachedQuadStep,
246 mva = dict(GBRForestLabel =
'HIMVASelectorDetachedQuadStep_Phase1'),
247 qualityCuts = [-0.2, 0.2, 0.5],
253 trackdnn.toReplaceWith(detachedQuadStep, trackTfClassifier.clone(
254 src =
'detachedQuadStepTracks',
255 qualityCuts = qualityCutDictionary.DetachedQuadStep.value()
259 highBetaStar.toModify(detachedQuadStep,qualityCuts = [-0.7,0.0,0.5])
261 (pp_on_AA & trackdnn).toModify(detachedQuadStep, qualityCuts = [-0.63, 0.5, 0.94] )
263 fastSim.toModify(detachedQuadStep,vertices =
'firstStepPrimaryVerticesBeforeMixing')
266 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
267 detachedQuadStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
268 src =
'detachedQuadStepTracks',
270 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
271 name =
'detachedQuadStepVtxLoose',
273 res_par = ( 0.003, 0.001 ),
275 d0_par1 = ( 0.9, 3.0 ),
276 dz_par1 = ( 0.9, 3.0 ),
277 d0_par2 = ( 1.0, 3.0 ),
278 dz_par2 = ( 1.0, 3.0 )
280 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
281 name =
'detachedQuadStepTrkLoose',
283 res_par = ( 0.003, 0.001 ),
285 d0_par1 = ( 1.3, 4.0 ),
286 dz_par1 = ( 1.3, 4.0 ),
287 d0_par2 = ( 1.3, 4.0 ),
288 dz_par2 = ( 1.3, 4.0 )
290 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
291 name =
'detachedQuadStepVtxTight',
292 preFilterName =
'detachedQuadStepVtxLoose',
294 res_par = ( 0.003, 0.001 ),
296 maxNumberLostLayers = 1,
297 minNumber3DLayers = 3,
298 d0_par1 = ( 0.9, 3.0 ),
299 dz_par1 = ( 0.9, 3.0 ),
300 d0_par2 = ( 0.9, 3.0 ),
301 dz_par2 = ( 0.9, 3.0 )
303 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
304 name =
'detachedQuadStepTrkTight',
305 preFilterName =
'detachedQuadStepTrkLoose',
307 res_par = ( 0.003, 0.001 ),
309 maxNumberLostLayers = 1,
310 minNumber3DLayers = 3,
311 d0_par1 = ( 1.1, 4.0 ),
312 dz_par1 = ( 1.1, 4.0 ),
313 d0_par2 = ( 1.1, 4.0 ),
314 dz_par2 = ( 1.1, 4.0 )
316 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
317 name =
'detachedQuadStepVtx',
318 preFilterName =
'detachedQuadStepVtxTight',
322 res_par = ( 0.003, 0.001 ),
324 maxNumberLostLayers = 1,
325 minNumber3DLayers = 3,
326 d0_par1 = ( 0.8, 3.0 ),
327 dz_par1 = ( 0.8, 3.0 ),
328 d0_par2 = ( 0.8, 3.0 ),
329 dz_par2 = ( 0.8, 3.0 )
331 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
332 name =
'detachedQuadStepTrk',
333 preFilterName =
'detachedQuadStepTrkTight',
337 res_par = ( 0.003, 0.001 ),
339 maxNumberLostLayers = 1,
340 minNumber3DLayers = 3,
341 d0_par1 = ( 0.9, 4.0 ),
342 dz_par1 = ( 0.9, 4.0 ),
343 d0_par2 = ( 0.9, 4.0 ),
344 dz_par2 = ( 0.9, 4.0 )
350 from RecoTracker.FinalTrackSelectors.trackAlgoPriorityOrder_cfi
import trackAlgoPriorityOrder
352 trackingPhase2PU140.toReplaceWith(detachedQuadStep, RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
353 TrackProducers =[
'detachedQuadStepTracks',
354 'detachedQuadStepTracks'],
357 indivShareFrac =[0.09,0.09],
358 selectedTrackQuals =[
'detachedQuadStepSelector:detachedQuadStepVtx',
359 'detachedQuadStepSelector:detachedQuadStepTrk'],
360 setsToMerge = cms.VPSet(cms.PSet( tLists=cms.vint32(0,1), pQual=cms.bool(
True) )),
361 writeOnlyTrkQuals =
True 365 DetachedQuadStepTask = cms.Task(detachedQuadStepClusters,
366 detachedQuadStepSeedLayers,
367 detachedQuadStepTrackingRegions,
368 detachedQuadStepHitDoublets,
369 detachedQuadStepHitQuadruplets,
370 detachedQuadStepSeeds,
371 detachedQuadStepTrackCandidates,
372 detachedQuadStepTracks,
374 DetachedQuadStep = cms.Sequence(DetachedQuadStepTask)
376 _DetachedQuadStepTask_trackingMkFit = DetachedQuadStepTask.copy()
377 _DetachedQuadStepTask_trackingMkFit.add(detachedQuadStepTrackCandidatesMkFitSeeds, detachedQuadStepTrackCandidatesMkFit, detachedQuadStepTrackCandidatesMkFitConfig)
378 trackingMkFitDetachedQuadStep.toReplaceWith(DetachedQuadStepTask, _DetachedQuadStepTask_trackingMkFit)
380 _DetachedQuadStepTask_Phase2PU140 = DetachedQuadStepTask.copy()
381 _DetachedQuadStepTask_Phase2PU140.replace(detachedQuadStep, cms.Task(detachedQuadStepSelector,detachedQuadStep))
382 trackingPhase2PU140.toReplaceWith(DetachedQuadStepTask, _DetachedQuadStepTask_Phase2PU140)
385 from FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi
import maskProducerFromClusterRemover
387 fastSim.toReplaceWith(DetachedQuadStepTask,
388 cms.Task(detachedQuadStepMasks
389 ,detachedQuadStepTrackingRegions
390 ,detachedQuadStepSeeds
391 ,detachedQuadStepTrackCandidates
392 ,detachedQuadStepTracks
def _hitSetProducerToFactoryPSet(producer)
def maskProducerFromClusterRemover(clusterRemover)
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)