1 import FWCore.ParameterSet.Config
as cms
2 from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff
import tracker_apv_vfp30_2016
as _tracker_apv_vfp30_2016
3 import RecoTracker.IterativeTracking.iterativeTkConfig
as _cfg
4 from Configuration.Eras.Modifier_fastSim_cff
import fastSim
7 lowPtTripletStepClusters = _cfg.clusterRemoverForIter(
"LowPtTripletStep")
8 for _eraName, _postfix, _era
in _cfg.nonDefaultEras():
9 _era.toReplaceWith(lowPtTripletStepClusters, _cfg.clusterRemoverForIter(
"LowPtTripletStep", _eraName, _postfix))
13 lowPtTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone()
14 lowPtTripletStepSeedLayers.BPix.skipClusters = cms.InputTag(
'lowPtTripletStepClusters')
15 lowPtTripletStepSeedLayers.FPix.skipClusters = cms.InputTag(
'lowPtTripletStepClusters')
16 _layerListForPhase1 = [
17 'BPix1+BPix2+BPix3',
'BPix2+BPix3+BPix4',
18 'BPix1+BPix3+BPix4',
'BPix1+BPix2+BPix4',
19 'BPix2+BPix3+FPix1_pos',
'BPix2+BPix3+FPix1_neg',
20 'BPix1+BPix2+FPix1_pos',
'BPix1+BPix2+FPix1_neg',
21 'BPix1+BPix3+FPix1_pos',
'BPix1+BPix3+FPix1_neg',
22 'BPix2+FPix1_pos+FPix2_pos',
'BPix2+FPix1_neg+FPix2_neg',
23 'BPix1+FPix1_pos+FPix2_pos',
'BPix1+FPix1_neg+FPix2_neg',
24 'BPix1+BPix2+FPix2_pos',
'BPix1+BPix2+FPix2_neg',
25 'FPix1_pos+FPix2_pos+FPix3_pos',
'FPix1_neg+FPix2_neg+FPix3_neg',
26 'BPix1+FPix2_pos+FPix3_pos',
'BPix1+FPix2_neg+FPix3_neg',
27 'BPix1+FPix1_pos+FPix3_pos',
'BPix1+FPix1_neg+FPix3_neg' 29 from Configuration.Eras.Modifier_trackingPhase1_cff
import trackingPhase1
30 trackingPhase1.toModify(lowPtTripletStepSeedLayers, layerList = _layerListForPhase1)
33 _layerListForPhase2 = [
'BPix1+BPix2+BPix3',
'BPix2+BPix3+BPix4',
35 'BPix1+BPix2+FPix1_pos',
'BPix1+BPix2+FPix1_neg',
36 'BPix1+FPix1_pos+FPix2_pos',
'BPix1+FPix1_neg+FPix2_neg',
38 'FPix1_pos+FPix2_pos+FPix3_pos',
'FPix1_neg+FPix2_neg+FPix3_neg',
40 'FPix2_pos+FPix3_pos+FPix4_pos',
'FPix2_neg+FPix3_neg+FPix4_neg',
41 'FPix3_pos+FPix4_pos+FPix5_pos',
'FPix3_neg+FPix4_neg+FPix5_neg',
42 'FPix4_pos+FPix5_pos+FPix6_pos',
'FPix4_neg+FPix5_neg+FPix6_neg',
47 from Configuration.Eras.Modifier_trackingPhase2PU140_cff
import trackingPhase2PU140
48 trackingPhase2PU140.toModify(lowPtTripletStepSeedLayers, layerList = _layerListForPhase2)
51 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpot_cfi
import globalTrackingRegionFromBeamSpot
as _globalTrackingRegionFromBeamSpot
52 lowPtTripletStepTrackingRegions = _globalTrackingRegionFromBeamSpot.clone(RegionPSet =
dict(
57 trackingPhase1.toModify(lowPtTripletStepTrackingRegions, RegionPSet =
dict(ptMin = 0.2))
58 trackingPhase2PU140.toModify(lowPtTripletStepTrackingRegions, RegionPSet =
dict(ptMin = 0.40))
60 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff
import pp_on_XeXe_2017
61 from Configuration.Eras.Modifier_pp_on_AA_2018_cff
import pp_on_AA_2018
63 (pp_on_XeXe_2017 | pp_on_AA_2018).toReplaceWith(lowPtTripletStepTrackingRegions,
64 _globalTrackingRegionWithVertices.clone(RegionPSet=
dict(
65 useFixedError =
False,
71 from Configuration.Eras.Modifier_highBetaStar_2018_cff
import highBetaStar_2018
72 highBetaStar_2018.toModify(lowPtTripletStepTrackingRegions,RegionPSet =
dict(
79 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi
import hitPairEDProducer
as _hitPairEDProducer
80 lowPtTripletStepHitDoublets = _hitPairEDProducer.clone(
81 seedingLayers =
"lowPtTripletStepSeedLayers",
82 trackingRegions =
"lowPtTripletStepTrackingRegions",
84 produceIntermediateHitDoublets =
True,
86 from RecoPixelVertexing.PixelTriplets.pixelTripletHLTEDProducer_cfi
import pixelTripletHLTEDProducer
as _pixelTripletHLTEDProducer
88 import RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi
89 lowPtTripletStepHitTriplets = _pixelTripletHLTEDProducer.clone(
90 doublets =
"lowPtTripletStepHitDoublets",
91 produceSeedingHitSets =
True,
92 SeedComparitorPSet = RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi.LowPtClusterShapeSeedComparitor.clone()
94 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsEDProducer
as _seedCreatorFromRegionConsecutiveHitsEDProducer
95 lowPtTripletStepSeeds = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
96 seedingHitSets =
"lowPtTripletStepHitTriplets",
99 from RecoPixelVertexing.PixelTriplets.caHitTripletEDProducer_cfi
import caHitTripletEDProducer
as _caHitTripletEDProducer
100 trackingPhase1.toModify(lowPtTripletStepHitDoublets, layerPairs = [0,1])
101 trackingPhase1.toReplaceWith(lowPtTripletStepHitTriplets, _caHitTripletEDProducer.clone(
102 doublets =
"lowPtTripletStepHitDoublets",
103 extraHitRPhitolerance = lowPtTripletStepHitTriplets.extraHitRPhitolerance,
104 SeedComparitorPSet = lowPtTripletStepHitTriplets.SeedComparitorPSet,
107 value1 = 70 , value2 = 8,
109 useBendingCorrection =
True,
114 trackingPhase2PU140.toModify(lowPtTripletStepHitDoublets, layerPairs = [0,1])
115 trackingPhase2PU140.toReplaceWith(lowPtTripletStepHitTriplets, _caHitTripletEDProducer.clone(
116 doublets =
"lowPtTripletStepHitDoublets",
117 extraHitRPhitolerance = lowPtTripletStepHitTriplets.extraHitRPhitolerance,
118 SeedComparitorPSet = lowPtTripletStepHitTriplets.SeedComparitorPSet,
121 value1 = 70 , value2 = 8,
123 useBendingCorrection =
True,
127 highBetaStar_2018.toModify(lowPtTripletStepHitTriplets,CAThetaCut = 0.004,CAPhiCut = 0.1)
129 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
130 _fastSim_lowPtTripletStepSeeds = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
131 trackingRegions =
"lowPtTripletStepTrackingRegions",
132 hitMasks = cms.InputTag(
"lowPtTripletStepMasks"),
135 from FastSimulation.Tracking.SeedingMigration
import _hitSetProducerToFactoryPSet
137 _fastSim_lowPtTripletStepSeeds.seedFinderSelector.pixelTripletGeneratorFactory.SeedComparitorPSet.ComponentName =
"none" 138 _fastSim_lowPtTripletStepSeeds.seedFinderSelector.layerList = lowPtTripletStepSeedLayers.layerList.value()
140 trackingPhase1.toModify(_fastSim_lowPtTripletStepSeeds, seedFinderSelector =
dict(
141 pixelTripletGeneratorFactory =
None,
145 TTRHBuilder =
'WithoutRefit',
146 HitProducer =
'TrackingRecHitProducer',
149 TTRHBuilder =
'WithoutRefit',
150 HitProducer =
'TrackingRecHitProducer',
152 layerPairs = lowPtTripletStepHitDoublets.layerPairs.value()
155 fastSim.toReplaceWith(lowPtTripletStepSeeds,_fastSim_lowPtTripletStepSeeds)
159 _lowPtTripletStepStandardTrajectoryFilterBase = _TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
160 minimumNumberOfHits = 3,
163 lowPtTripletStepStandardTrajectoryFilter = _lowPtTripletStepStandardTrajectoryFilterBase.clone(
165 minGoodStripCharge = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutLoose'))
167 from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff
import tracker_apv_vfp30_2016
168 _tracker_apv_vfp30_2016.toModify(lowPtTripletStepStandardTrajectoryFilter, maxCCCLostHits = 1)
169 from Configuration.Eras.Modifier_trackingLowPU_cff
import trackingLowPU
170 trackingLowPU.toReplaceWith(lowPtTripletStepStandardTrajectoryFilter, _lowPtTripletStepStandardTrajectoryFilterBase)
171 trackingPhase2PU140.toReplaceWith(lowPtTripletStepStandardTrajectoryFilter, _lowPtTripletStepStandardTrajectoryFilterBase)
173 for e
in [pp_on_XeXe_2017, pp_on_AA_2018]:
174 e.toModify(lowPtTripletStepStandardTrajectoryFilter, minPt=0.49)
178 lowPtTripletStepTrajectoryFilter = _TrajectoryFilter_cff.CompositeTrajectoryFilter_block.clone(
179 filters = [cms.PSet(refToPSet_ = cms.string(
'lowPtTripletStepStandardTrajectoryFilter')),
183 trackingPhase2PU140.toModify(lowPtTripletStepTrajectoryFilter,
184 filters = lowPtTripletStepTrajectoryFilter.filters + [cms.PSet(refToPSet_ = cms.string(
'ClusterShapeTrajectoryFilter'))]
187 lowPtTripletStepTrajectoryFilterInOut = lowPtTripletStepStandardTrajectoryFilter.clone(
188 minimumNumberOfHits = 4,
190 strictSeedExtension =
False,
191 pixelSeedExtension =
False,
194 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
195 lowPtTripletStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
196 ComponentName = cms.string(
'lowPtTripletStepChi2Est'),
197 nSigma = cms.double(3.0),
198 MaxChi2 = cms.double(9.0),
199 clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutTight')),
201 _tracker_apv_vfp30_2016.toModify(lowPtTripletStepChi2Est,
202 clusterChargeCut =
dict(refToPSet_ =
"SiStripClusterChargeCutTiny")
207 lowPtTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
208 MeasurementTrackerName =
'',
209 trajectoryFilter = cms.PSet(refToPSet_ = cms.string(
'lowPtTripletStepTrajectoryFilter')),
211 estimator = cms.string(
'lowPtTripletStepChi2Est'),
212 maxDPhiForLooperReconstruction = cms.double(2.0),
215 maxPtForLooperReconstruction = cms.double(0.7)
217 trackingLowPU.toModify(lowPtTripletStepTrajectoryBuilder, maxCand = 3)
218 trackingPhase2PU140.toModify(lowPtTripletStepTrajectoryBuilder,
219 inOutTrajectoryFilter =
dict(refToPSet_ =
"lowPtTripletStepTrajectoryFilterInOut"),
220 useSameTrajFilter =
False,
226 lowPtTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
227 src = cms.InputTag(
'lowPtTripletStepSeeds'),
229 numHitsForSeedCleaner = cms.int32(50),
230 onlyPixelHitsForSeedCleaner = cms.bool(
True),
232 TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string(
'lowPtTripletStepTrajectoryBuilder')),
233 clustersToSkip = cms.InputTag(
'lowPtTripletStepClusters'),
234 doSeedingRegionRebuilding =
True,
235 useHitsSplitting =
True,
236 TrajectoryCleaner =
'lowPtTripletStepTrajectoryCleanerBySharedHits' 239 trackingPhase2PU140.toModify(lowPtTripletStepTrackCandidates,
240 clustersToSkip =
None,
241 phase2clustersToSkip = cms.InputTag(
"lowPtTripletStepClusters")
244 import FastSimulation.Tracking.TrackCandidateProducer_cfi
245 fastSim.toReplaceWith(lowPtTripletStepTrackCandidates,
246 FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
247 src = cms.InputTag(
"lowPtTripletStepSeeds"),
248 MinNumberOfCrossedLayers = 3,
249 hitMasks = cms.InputTag(
"lowPtTripletStepMasks"))
254 lowPtTripletStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
255 src =
'lowPtTripletStepTrackCandidates',
256 AlgorithmName = cms.string(
'lowPtTripletStep'),
257 Fitter = cms.string(
'FlexibleKFFittingSmoother')
259 fastSim.toModify(lowPtTripletStepTracks, TTRHBuilder =
'WithoutRefit')
262 lowPtTripletStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
263 ComponentName = cms.string(
'lowPtTripletStepTrajectoryCleanerBySharedHits'),
264 fractionShared = cms.double(0.16),
265 allowSharedFirstHit = cms.bool(
True)
267 trackingLowPU.toModify(lowPtTripletStepTrajectoryCleanerBySharedHits, fractionShared = 0.19)
268 trackingPhase2PU140.toModify(lowPtTripletStepTrajectoryCleanerBySharedHits, fractionShared = 0.09)
272 lowPtTripletStep = TrackMVAClassifierPrompt.clone()
273 lowPtTripletStep.src =
'lowPtTripletStepTracks' 274 lowPtTripletStep.mva.GBRForestLabel =
'MVASelectorIter1_13TeV' 275 lowPtTripletStep.qualityCuts = [-0.6,-0.3,-0.1]
277 trackingPhase1.toReplaceWith(lowPtTripletStep, lowPtTripletStep.clone(
278 mva =
dict(GBRForestLabel =
'MVASelectorLowPtTripletStep_Phase1'),
279 qualityCuts = [-0.4,0.0,0.3],
281 highBetaStar_2018.toModify(lowPtTripletStep,qualityCuts = [-0.7,-0.3,-0.1])
282 fastSim.toModify(lowPtTripletStep, vertices =
"firstStepPrimaryVerticesBeforeMixing")
283 pp_on_AA_2018.toModify(lowPtTripletStep,
284 mva =
dict(GBRForestLabel =
'HIMVASelectorLowPtTripletStep_Phase1'),
285 qualityCuts = [-0.8, -0.4, 0.5],
290 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
291 lowPtTripletStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
292 src =
'lowPtTripletStepTracks',
293 useAnyMVA = cms.bool(
False),
294 GBRForestLabel = cms.string(
'MVASelectorIter1'),
296 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
297 name =
'lowPtTripletStepLoose',
299 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
300 name =
'lowPtTripletStepTight',
301 preFilterName =
'lowPtTripletStepLoose',
303 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
304 name =
'QualityMasks',
305 preFilterName =
'lowPtTripletStepTight',
309 trackingPhase2PU140.toModify(lowPtTripletStepSelector,
311 GBRForestLabel =
None,
312 trackSelectors= cms.VPSet(
313 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
314 name =
'lowPtTripletStepLoose',
316 res_par = ( 0.003, 0.002 ),
318 maxNumberLostLayers = 2,
319 minNumber3DLayers = 3,
320 d0_par1 = ( 0.7, 4.0 ),
321 dz_par1 = ( 0.7, 4.0 ),
322 d0_par2 = ( 0.6, 4.0 ),
323 dz_par2 = ( 0.6, 4.0 )
325 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
326 name =
'lowPtTripletStepTight',
327 preFilterName =
'lowPtTripletStepLoose',
329 res_par = ( 0.003, 0.002 ),
331 maxNumberLostLayers = 2,
332 minNumber3DLayers = 3,
333 d0_par1 = ( 0.6, 4.0 ),
334 dz_par1 = ( 0.6, 4.0 ),
335 d0_par2 = ( 0.5, 4.0 ),
336 dz_par2 = ( 0.5, 4.0 )
338 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
339 name =
'lowPtTripletStep',
340 preFilterName =
'lowPtTripletStepTight',
342 res_par = ( 0.003, 0.001 ),
345 maxNumberLostLayers = 2,
346 minNumber3DLayers = 4,
347 d0_par1 = ( 0.5, 4.0 ),
348 dz_par1 = ( 0.5, 4.0 ),
349 d0_par2 = ( 0.45, 4.0 ),
350 dz_par2 = ( 0.45, 4.0 )
358 LowPtTripletStepTask = cms.Task(lowPtTripletStepClusters,
359 lowPtTripletStepSeedLayers,
360 lowPtTripletStepTrackingRegions,
361 lowPtTripletStepHitDoublets,
362 lowPtTripletStepHitTriplets,
363 lowPtTripletStepSeeds,
364 lowPtTripletStepTrackCandidates,
365 lowPtTripletStepTracks,
367 LowPtTripletStep = cms.Sequence(LowPtTripletStepTask)
369 _LowPtTripletStepTask_LowPU_Phase2PU140 = LowPtTripletStepTask.copy()
370 _LowPtTripletStepTask_LowPU_Phase2PU140.replace(lowPtTripletStep, lowPtTripletStepSelector)
371 trackingLowPU.toReplaceWith(LowPtTripletStepTask, _LowPtTripletStepTask_LowPU_Phase2PU140)
373 trackingPhase2PU140.toReplaceWith(LowPtTripletStepTask, _LowPtTripletStepTask_LowPU_Phase2PU140)
375 from FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi
import maskProducerFromClusterRemover
377 fastSim.toReplaceWith(LowPtTripletStepTask,
378 cms.Task(lowPtTripletStepMasks
379 ,lowPtTripletStepTrackingRegions
380 ,lowPtTripletStepSeeds
381 ,lowPtTripletStepTrackCandidates
382 ,lowPtTripletStepTracks
def _hitSetProducerToFactoryPSet(producer)
def maskProducerFromClusterRemover(clusterRemover)
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)