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))
13 lowPtQuadStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone(
14 BPix =
dict(skipClusters = cms.InputTag(
'lowPtQuadStepClusters')),
15 FPix =
dict(skipClusters = cms.InputTag(
'lowPtQuadStepClusters'))
17 from Configuration.Eras.Modifier_trackingPhase1_cff
import trackingPhase1
18 trackingPhase1.toModify(lowPtQuadStepSeedLayers,
19 layerList = RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff.PixelSeedMergerQuadruplets.layerList.value()
21 from Configuration.Eras.Modifier_trackingPhase1QuadProp_cff
import trackingPhase1QuadProp
22 trackingPhase1QuadProp.toModify(lowPtQuadStepSeedLayers,
23 layerList = RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff.PixelSeedMergerQuadruplets.layerList.value()
25 from Configuration.Eras.Modifier_trackingPhase2PU140_cff
import trackingPhase2PU140
26 trackingPhase2PU140.toModify(lowPtQuadStepSeedLayers,
27 layerList = RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff.PixelSeedMergerQuadruplets.layerList.value()
31 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpot_cfi
import globalTrackingRegionFromBeamSpot
as _globalTrackingRegionFromBeamSpot
32 lowPtQuadStepTrackingRegions = _globalTrackingRegionFromBeamSpot.clone(RegionPSet =
dict(
37 trackingPhase1.toModify(lowPtQuadStepTrackingRegions, RegionPSet =
dict(ptMin = 0.15))
38 trackingPhase2PU140.toModify(lowPtQuadStepTrackingRegions, RegionPSet =
dict(ptMin = 0.35))
42 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi
import hitPairEDProducer
as _hitPairEDProducer
43 lowPtQuadStepHitDoublets = _hitPairEDProducer.clone(
44 seedingLayers =
"lowPtQuadStepSeedLayers",
45 trackingRegions =
"lowPtQuadStepTrackingRegions",
47 produceIntermediateHitDoublets =
True,
49 from RecoPixelVertexing.PixelTriplets.pixelTripletHLTEDProducer_cfi
import pixelTripletHLTEDProducer
as _pixelTripletHLTEDProducer
51 import RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi
52 lowPtQuadStepHitTriplets = _pixelTripletHLTEDProducer.clone(
53 doublets =
"lowPtQuadStepHitDoublets",
54 produceIntermediateHitTriplets =
True,
55 SeedComparitorPSet = RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi.LowPtClusterShapeSeedComparitor.clone()
57 from RecoPixelVertexing.PixelTriplets.pixelQuadrupletEDProducer_cfi
import pixelQuadrupletEDProducer
as _pixelQuadrupletEDProducer
58 lowPtQuadStepHitQuadruplets = _pixelQuadrupletEDProducer.clone(
59 triplets =
"lowPtQuadStepHitTriplets",
60 extraHitRZtolerance = lowPtQuadStepHitTriplets.extraHitRZtolerance,
61 extraHitRPhitolerance = lowPtQuadStepHitTriplets.extraHitRPhitolerance,
64 value1 = 2000, value2 = 100,
69 value1 = 0.4, value2 = 0.05,
72 useBendingCorrection =
True,
74 fitFastCircleChi2Cut =
True,
75 SeedComparitorPSet = lowPtQuadStepHitTriplets.SeedComparitorPSet,
77 from RecoPixelVertexing.PixelTriplets.caHitQuadrupletEDProducer_cfi
import caHitQuadrupletEDProducer
as _caHitQuadrupletEDProducer
78 trackingPhase1.toModify(lowPtQuadStepHitDoublets, layerPairs = [0,1,2])
79 trackingPhase1.toReplaceWith(lowPtQuadStepHitQuadruplets, _caHitQuadrupletEDProducer.clone(
80 doublets =
"lowPtQuadStepHitDoublets",
81 extraHitRPhitolerance = lowPtQuadStepHitTriplets.extraHitRPhitolerance,
82 SeedComparitorPSet = lowPtQuadStepHitTriplets.SeedComparitorPSet,
85 value1 = 1000, value2 = 150,
87 useBendingCorrection =
True,
89 fitFastCircleChi2Cut =
True,
94 from RecoPixelVertexing.PixelTriplets.pixelQuadrupletMergerEDProducer_cfi
import pixelQuadrupletMergerEDProducer
as _pixelQuadrupletMergerEDProducer
96 _lowPtQuadStepHitQuadrupletsMerging = _pixelQuadrupletMergerEDProducer.clone(
97 triplets =
"lowPtQuadStepHitTriplets",
98 layerList =
dict(refToPSet_ = cms.string(
"PixelSeedMergerQuadruplets")),
100 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsEDProducer
as _seedCreatorFromRegionConsecutiveHitsEDProducer
101 lowPtQuadStepSeeds = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
102 seedingHitSets =
"lowPtQuadStepHitQuadruplets",
105 _lowPtQuadStepHitQuadrupletsMerging.SeedCreatorPSet = cms.PSet(
106 ComponentName = cms.string(
"SeedFromConsecutiveHitsCreator"),
107 MinOneOverPtError = lowPtQuadStepSeeds.MinOneOverPtError,
108 OriginTransverseErrorMultiplier = lowPtQuadStepSeeds.OriginTransverseErrorMultiplier,
109 SeedMomentumForBOFF = lowPtQuadStepSeeds.SeedMomentumForBOFF,
110 TTRHBuilder = lowPtQuadStepSeeds.TTRHBuilder,
111 forceKinematicWithRegionDirection = lowPtQuadStepSeeds.forceKinematicWithRegionDirection,
112 magneticField = lowPtQuadStepSeeds.magneticField,
113 propagator = lowPtQuadStepSeeds.propagator,
116 _lowPtQuadStepHitQuadrupletsMerging.SeedComparitorPSet = lowPtQuadStepSeeds.SeedComparitorPSet
118 trackingPhase1PU70.toModify(lowPtQuadStepHitTriplets, produceIntermediateHitTriplets=
False, produceSeedingHitSets=
True)
119 trackingPhase1PU70.toReplaceWith(lowPtQuadStepHitQuadruplets, _lowPtQuadStepHitQuadrupletsMerging)
124 _lowPtQuadStepTrajectoryFilterBase = _TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
125 minimumNumberOfHits = 3,
128 lowPtQuadStepTrajectoryFilterBase = _lowPtQuadStepTrajectoryFilterBase.clone(
130 minGoodStripCharge =
dict(refToPSet_ =
'SiStripClusterChargeCutLoose')
132 trackingPhase1PU70.toReplaceWith(lowPtQuadStepTrajectoryFilterBase, _lowPtQuadStepTrajectoryFilterBase)
133 trackingPhase2PU140.toReplaceWith(lowPtQuadStepTrajectoryFilterBase, _lowPtQuadStepTrajectoryFilterBase)
137 lowPtQuadStepTrajectoryFilter = _TrajectoryFilter_cff.CompositeTrajectoryFilter_block.clone(
138 filters = [cms.PSet(refToPSet_ = cms.string(
'lowPtQuadStepTrajectoryFilterBase'))]
140 trackingPhase1PU70.toModify(lowPtQuadStepTrajectoryFilter,
141 filters = lowPtQuadStepTrajectoryFilter.filters.value() + [cms.PSet(refToPSet_ = cms.string(
'ClusterShapeTrajectoryFilter'))]
143 trackingPhase2PU140.toModify(lowPtQuadStepTrajectoryFilter,
144 filters = lowPtQuadStepTrajectoryFilter.filters.value() + [cms.PSet(refToPSet_ = cms.string(
'ClusterShapeTrajectoryFilter'))]
147 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
148 lowPtQuadStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
149 ComponentName =
'lowPtQuadStepChi2Est',
152 clusterChargeCut =
dict(refToPSet_ = (
'SiStripClusterChargeCutTight')),
154 trackingPhase1PU70.toModify(lowPtQuadStepChi2Est,
156 clusterChargeCut =
dict(refToPSet_ =
'SiStripClusterChargeCutNone')
158 trackingPhase2PU140.toModify(lowPtQuadStepChi2Est,
160 clusterChargeCut =
dict(refToPSet_ =
'SiStripClusterChargeCutNone')
165 lowPtQuadStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
166 MeasurementTrackerName =
'',
167 trajectoryFilter =
dict(refToPSet_ =
'lowPtQuadStepTrajectoryFilter'),
169 estimator = cms.string(
'lowPtQuadStepChi2Est'),
170 maxDPhiForLooperReconstruction = cms.double(2.0),
173 maxPtForLooperReconstruction = cms.double(0.7)
175 trackingPhase2PU140.toModify(lowPtQuadStepTrajectoryBuilder, maxCand = 5)
179 lowPtQuadStepTrajectoryCleanerBySharedHits = _trajectoryCleanerBySharedHits.clone(
180 ComponentName =
'lowPtQuadStepTrajectoryCleanerBySharedHits',
181 fractionShared = 0.16,
182 allowSharedFirstHit =
True 184 trackingPhase1PU70.toModify(lowPtQuadStepTrajectoryCleanerBySharedHits, fractionShared = 0.095)
185 trackingPhase2PU140.toModify(lowPtQuadStepTrajectoryCleanerBySharedHits, fractionShared = 0.09)
188 lowPtQuadStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
189 src =
'lowPtQuadStepSeeds',
191 numHitsForSeedCleaner = cms.int32(50),
192 onlyPixelHitsForSeedCleaner = cms.bool(
True),
193 TrajectoryBuilderPSet =
dict(refToPSet_ =
'lowPtQuadStepTrajectoryBuilder'),
194 TrajectoryCleaner =
'lowPtQuadStepTrajectoryCleanerBySharedHits',
195 clustersToSkip = cms.InputTag(
'lowPtQuadStepClusters'),
196 doSeedingRegionRebuilding =
True,
197 useHitsSplitting =
True 199 trackingPhase2PU140.toModify(lowPtQuadStepTrackCandidates,
200 clustersToSkip =
None,
201 phase2clustersToSkip = cms.InputTag(
"lowPtQuadStepClusters")
205 lowPtQuadStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
206 src =
'lowPtQuadStepTrackCandidates',
207 AlgorithmName =
'lowPtQuadStep',
208 Fitter =
'FlexibleKFFittingSmoother',
215 lowPtQuadStep = TrackMVAClassifierPrompt.clone(
216 src =
'lowPtQuadStepTracks',
217 GBRForestLabel =
'MVASelectorIter1_13TeV',
218 qualityCuts = [-0.6,-0.3,-0.1]
221 trackingPhase1.toReplaceWith(lowPtQuadStep, lowPtQuadStep.clone(
222 GBRForestLabel =
'MVASelectorLowPtQuadStep_Phase1',
223 qualityCuts = [-0.65,-0.35,-0.15],
225 trackingPhase1QuadProp.toReplaceWith(lowPtQuadStep, lowPtQuadStep.clone(
226 GBRForestLabel =
'MVASelectorLowPtQuadStep_Phase1',
227 qualityCuts = [-0.65,-0.35,-0.15],
231 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
232 lowPtQuadStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
233 src =
'lowPtQuadStepTracks',
235 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
236 name =
'lowPtQuadStepLoose',
238 res_par = ( 0.003, 0.002 ),
240 maxNumberLostLayers = 2,
241 minNumber3DLayers = 3,
242 d0_par1 = ( 0.8, 4.0 ),
243 dz_par1 = ( 0.7, 4.0 ),
244 d0_par2 = ( 0.5, 4.0 ),
245 dz_par2 = ( 0.5, 4.0 )
247 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
248 name =
'lowPtQuadStepTight',
249 preFilterName =
'lowPtQuadStepLoose',
251 res_par = ( 0.003, 0.002 ),
253 maxNumberLostLayers = 2,
254 minNumber3DLayers = 3,
255 d0_par1 = ( 0.7, 4.0 ),
256 dz_par1 = ( 0.6, 4.0 ),
257 d0_par2 = ( 0.4, 4.0 ),
258 dz_par2 = ( 0.4, 4.0 )
260 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
261 name =
'lowPtQuadStep',
262 preFilterName =
'lowPtQuadStepTight',
264 res_par = ( 0.003, 0.001 ),
266 maxNumberLostLayers = 2,
267 minNumber3DLayers = 3,
268 d0_par1 = ( 0.6, 4.0 ),
269 dz_par1 = ( 0.5, 4.0 ),
270 d0_par2 = ( 0.3, 4.0 ),
271 dz_par2 = ( 0.4, 4.0 )
276 trackingPhase2PU140.toModify(lowPtQuadStepSelector,
277 trackSelectors= cms.VPSet(
278 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
279 name =
'lowPtQuadStepLoose',
281 res_par = ( 0.003, 0.002 ),
283 maxNumberLostLayers = 2,
284 minNumber3DLayers = 3,
285 d0_par1 = ( 0.8, 4.0 ),
286 dz_par1 = ( 0.7, 4.0 ),
287 d0_par2 = ( 0.6, 4.0 ),
288 dz_par2 = ( 0.6, 4.0 )
290 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
291 name =
'lowPtQuadStepTight',
292 preFilterName =
'lowPtQuadStepLoose',
294 res_par = ( 0.003, 0.002 ),
296 maxNumberLostLayers = 2,
297 minNumber3DLayers = 3,
298 d0_par1 = ( 0.7, 4.0 ),
299 dz_par1 = ( 0.6, 4.0 ),
300 d0_par2 = ( 0.5, 4.0 ),
301 dz_par2 = ( 0.5, 4.0 )
303 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
304 name =
'lowPtQuadStep',
305 preFilterName =
'lowPtQuadStepTight',
307 res_par = ( 0.003, 0.001 ),
309 maxNumberLostLayers = 2,
310 minNumber3DLayers = 3,
311 d0_par1 = ( 0.5, 4.0 ),
312 dz_par1 = ( 0.5, 4.0 ),
313 d0_par2 = ( 0.45, 4.0 ),
314 dz_par2 = ( 0.45, 4.0 )
317 vertices =
"pixelVertices" 321 LowPtQuadStep = cms.Sequence(lowPtQuadStepClusters*
322 lowPtQuadStepSeedLayers*
323 lowPtQuadStepTrackingRegions*
324 lowPtQuadStepHitDoublets*
325 lowPtQuadStepHitTriplets*
326 lowPtQuadStepHitQuadruplets*
328 lowPtQuadStepTrackCandidates*
331 trackingPhase1.toReplaceWith(LowPtQuadStep, LowPtQuadStep.copyAndExclude([lowPtQuadStepHitTriplets]))
332 _LowPtQuadStep_Phase1PU70 = LowPtQuadStep.copy()
333 _LowPtQuadStep_Phase1PU70.replace(lowPtQuadStep, lowPtQuadStepSelector)
334 trackingPhase1PU70.toReplaceWith(LowPtQuadStep, _LowPtQuadStep_Phase1PU70)
335 trackingPhase2PU140.toReplaceWith(LowPtQuadStep, _LowPtQuadStep_Phase1PU70)