1 import FWCore.ParameterSet.Config
as cms
2 import RecoTracker.IterativeTracking.iterativeTkConfig
as _cfg
5 lowPtQuadStepClusters = _cfg.clusterRemoverForIter(
"LowPtQuadStep")
6 for _eraName, _postfix, _era
in _cfg.nonDefaultEras():
7 _era.toReplaceWith(lowPtQuadStepClusters, _cfg.clusterRemoverForIter(
"LowPtQuadStep", _eraName, _postfix))
11 import RecoTracker.TkSeedingLayers.PixelLayerQuadruplets_cfi
12 lowPtQuadStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerQuadruplets_cfi.PixelLayerQuadruplets.clone(
13 BPix =
dict(skipClusters = cms.InputTag(
'lowPtQuadStepClusters')),
14 FPix =
dict(skipClusters = cms.InputTag(
'lowPtQuadStepClusters'))
18 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpot_cfi
import globalTrackingRegionFromBeamSpot
as _globalTrackingRegionFromBeamSpot
19 lowPtQuadStepTrackingRegions = _globalTrackingRegionFromBeamSpot.clone(RegionPSet =
dict(
24 from Configuration.Eras.Modifier_trackingPhase2PU140_cff
import trackingPhase2PU140
25 trackingPhase2PU140.toModify(lowPtQuadStepTrackingRegions, RegionPSet =
dict(ptMin = 0.35,originRadius = 0.025))
27 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff
import pp_on_XeXe_2017
28 from Configuration.Eras.Modifier_pp_on_AA_2018_cff
import pp_on_AA_2018
30 for e
in [pp_on_XeXe_2017, pp_on_AA_2018]:
31 e.toReplaceWith(lowPtQuadStepTrackingRegions,
32 _globalTrackingRegionWithVertices.clone(RegionPSet=
dict(
41 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi
import hitPairEDProducer
as _hitPairEDProducer
42 lowPtQuadStepHitDoublets = _hitPairEDProducer.clone(
43 seedingLayers =
"lowPtQuadStepSeedLayers",
44 trackingRegions =
"lowPtQuadStepTrackingRegions",
47 produceIntermediateHitDoublets =
True,
49 from RecoPixelVertexing.PixelTriplets.caHitQuadrupletEDProducer_cfi
import caHitQuadrupletEDProducer
as _caHitQuadrupletEDProducer
50 from RecoPixelVertexing.PixelTriplets.pixelTripletHLTEDProducer_cfi
import pixelTripletHLTEDProducer
as _pixelTripletHLTEDProducer
52 import RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi
53 lowPtQuadStepHitQuadruplets = _caHitQuadrupletEDProducer.clone(
54 doublets =
"lowPtQuadStepHitDoublets",
55 extraHitRPhitolerance = _pixelTripletHLTEDProducer.extraHitRPhitolerance,
56 SeedComparitorPSet = RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi.LowPtClusterShapeSeedComparitor.clone(),
59 value1 = 1000, value2 = 150,
61 useBendingCorrection =
True,
63 fitFastCircleChi2Cut =
True,
67 trackingPhase2PU140.toModify(lowPtQuadStepHitQuadruplets,CAThetaCut = 0.0015,CAPhiCut = 0.25)
69 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsEDProducer
as _seedCreatorFromRegionConsecutiveHitsEDProducer
70 lowPtQuadStepSeeds = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
71 seedingHitSets =
"lowPtQuadStepHitQuadruplets",
77 _lowPtQuadStepTrajectoryFilterBase = _TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
78 minimumNumberOfHits = 3,
81 lowPtQuadStepTrajectoryFilterBase = _lowPtQuadStepTrajectoryFilterBase.clone(
83 minGoodStripCharge =
dict(refToPSet_ =
'SiStripClusterChargeCutLoose')
85 trackingPhase2PU140.toReplaceWith(lowPtQuadStepTrajectoryFilterBase, _lowPtQuadStepTrajectoryFilterBase)
87 for e
in [pp_on_XeXe_2017, pp_on_AA_2018]:
88 e.toModify(lowPtQuadStepTrajectoryFilterBase, minPt=0.3)
92 lowPtQuadStepTrajectoryFilter = _TrajectoryFilter_cff.CompositeTrajectoryFilter_block.clone(
93 filters = [cms.PSet(refToPSet_ = cms.string(
'lowPtQuadStepTrajectoryFilterBase'))]
95 trackingPhase2PU140.toModify(lowPtQuadStepTrajectoryFilter,
96 filters = lowPtQuadStepTrajectoryFilter.filters.value() + [cms.PSet(refToPSet_ = cms.string(
'ClusterShapeTrajectoryFilter'))]
99 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
100 lowPtQuadStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
101 ComponentName =
'lowPtQuadStepChi2Est',
104 clusterChargeCut =
dict(refToPSet_ = (
'SiStripClusterChargeCutTight')),
106 trackingPhase2PU140.toModify(lowPtQuadStepChi2Est,
108 clusterChargeCut =
dict(refToPSet_ =
'SiStripClusterChargeCutNone')
113 lowPtQuadStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
114 MeasurementTrackerName =
'',
115 trajectoryFilter =
dict(refToPSet_ =
'lowPtQuadStepTrajectoryFilter'),
117 estimator = cms.string(
'lowPtQuadStepChi2Est'),
118 maxDPhiForLooperReconstruction = cms.double(2.0),
121 maxPtForLooperReconstruction = cms.double(0.7)
123 trackingPhase2PU140.toModify(lowPtQuadStepTrajectoryBuilder,
124 minNrOfHitsForRebuild = 1,
125 keepOriginalIfRebuildFails =
True,
131 lowPtQuadStepTrajectoryCleanerBySharedHits = _trajectoryCleanerBySharedHits.clone(
132 ComponentName =
'lowPtQuadStepTrajectoryCleanerBySharedHits',
133 fractionShared = 0.16,
134 allowSharedFirstHit =
True 136 trackingPhase2PU140.toModify(lowPtQuadStepTrajectoryCleanerBySharedHits, fractionShared = 0.09)
139 lowPtQuadStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
140 src =
'lowPtQuadStepSeeds',
142 numHitsForSeedCleaner = cms.int32(50),
143 onlyPixelHitsForSeedCleaner = cms.bool(
True),
144 TrajectoryBuilderPSet =
dict(refToPSet_ =
'lowPtQuadStepTrajectoryBuilder'),
145 TrajectoryCleaner =
'lowPtQuadStepTrajectoryCleanerBySharedHits',
146 clustersToSkip = cms.InputTag(
'lowPtQuadStepClusters'),
147 doSeedingRegionRebuilding =
True,
148 useHitsSplitting =
True 150 trackingPhase2PU140.toModify(lowPtQuadStepTrackCandidates,
151 clustersToSkip =
None,
152 phase2clustersToSkip = cms.InputTag(
"lowPtQuadStepClusters")
156 lowPtQuadStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
157 src =
'lowPtQuadStepTrackCandidates',
158 AlgorithmName =
'lowPtQuadStep',
159 Fitter =
'FlexibleKFFittingSmoother',
166 lowPtQuadStep = TrackMVAClassifierPrompt.clone(
167 src =
'lowPtQuadStepTracks',
168 mva =
dict(GBRForestLabel =
'MVASelectorLowPtQuadStep_Phase1'),
169 qualityCuts = [-0.7,-0.35,-0.15],
173 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
174 lowPtQuadStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
175 src =
'lowPtQuadStepTracks',
177 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
178 name =
'lowPtQuadStepLoose',
180 res_par = ( 0.003, 0.002 ),
182 maxNumberLostLayers = 2,
183 minNumber3DLayers = 3,
184 d0_par1 = ( 0.8, 4.0 ),
185 dz_par1 = ( 0.7, 4.0 ),
186 d0_par2 = ( 0.6, 4.0 ),
187 dz_par2 = ( 0.6, 4.0 )
189 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
190 name =
'lowPtQuadStepTight',
191 preFilterName =
'lowPtQuadStepLoose',
193 res_par = ( 0.003, 0.002 ),
195 maxNumberLostLayers = 2,
196 minNumber3DLayers = 3,
197 d0_par1 = ( 0.7, 4.0 ),
198 dz_par1 = ( 0.6, 4.0 ),
199 d0_par2 = ( 0.5, 4.0 ),
200 dz_par2 = ( 0.5, 4.0 )
202 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
203 name =
'lowPtQuadStep',
204 preFilterName =
'lowPtQuadStepTight',
206 res_par = ( 0.003, 0.001 ),
208 maxNumberLostLayers = 2,
209 minNumber3DLayers = 3,
210 d0_par1 = ( 0.5, 4.0 ),
211 dz_par1 = ( 0.5, 4.0 ),
212 d0_par2 = ( 0.45, 4.0 ),
213 dz_par2 = ( 0.45, 4.0 )
220 LowPtQuadStepTask = cms.Task(lowPtQuadStepClusters,
221 lowPtQuadStepSeedLayers,
222 lowPtQuadStepTrackingRegions,
223 lowPtQuadStepHitDoublets,
224 lowPtQuadStepHitQuadruplets,
226 lowPtQuadStepTrackCandidates,
229 LowPtQuadStep = cms.Sequence(LowPtQuadStepTask)
231 _LowPtQuadStepTask_Phase2PU140 = LowPtQuadStepTask.copy()
232 _LowPtQuadStepTask_Phase2PU140.replace(lowPtQuadStep, lowPtQuadStepSelector)
233 trackingPhase2PU140.toReplaceWith(LowPtQuadStepTask, _LowPtQuadStepTask_Phase2PU140)