1 import FWCore.ParameterSet.Config
as cms
2 import RecoTracker.IterativeTracking.iterativeTkConfig
as _cfg
9 detachedQuadStepClusters = _cfg.clusterRemoverForIter(
"DetachedQuadStep")
10 for _eraName, _postfix, _era
in _cfg.nonDefaultEras():
11 _era.toReplaceWith(detachedQuadStepClusters, _cfg.clusterRemoverForIter(
"DetachedQuadStep", _eraName, _postfix))
14 import RecoTracker.TkSeedingLayers.PixelLayerQuadruplets_cfi
15 detachedQuadStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerQuadruplets_cfi.PixelLayerQuadruplets.clone(
16 BPix =
dict(skipClusters = cms.InputTag(
'detachedQuadStepClusters')),
17 FPix =
dict(skipClusters = cms.InputTag(
'detachedQuadStepClusters'))
21 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpotFixedZ_cfi
import globalTrackingRegionFromBeamSpotFixedZ
as _globalTrackingRegionFromBeamSpotFixedZ
22 detachedQuadStepTrackingRegions = _globalTrackingRegionFromBeamSpotFixedZ.clone(RegionPSet =
dict(
24 originHalfLength = 15.0,
27 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpot_cfi
import globalTrackingRegionFromBeamSpot
as _globalTrackingRegionFromBeamSpot
28 from Configuration.Eras.Modifier_trackingPhase2PU140_cff
import trackingPhase2PU140
29 trackingPhase2PU140.toReplaceWith(detachedQuadStepTrackingRegions, _globalTrackingRegionFromBeamSpot.clone(RegionPSet =
dict(
36 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi
import hitPairEDProducer
as _hitPairEDProducer
37 detachedQuadStepHitDoublets = _hitPairEDProducer.clone(
38 seedingLayers =
"detachedQuadStepSeedLayers",
39 trackingRegions =
"detachedQuadStepTrackingRegions",
42 produceIntermediateHitDoublets =
True,
44 from RecoPixelVertexing.PixelTriplets.caHitQuadrupletEDProducer_cfi
import caHitQuadrupletEDProducer
as _caHitQuadrupletEDProducer
45 from RecoPixelVertexing.PixelTriplets.pixelTripletLargeTipEDProducer_cfi
import pixelTripletLargeTipEDProducer
as _pixelTripletLargeTipEDProducer
47 detachedQuadStepHitQuadruplets = _caHitQuadrupletEDProducer.clone(
48 doublets =
"detachedQuadStepHitDoublets",
49 extraHitRPhitolerance = _pixelTripletLargeTipEDProducer.extraHitRPhitolerance,
52 value1 = 500, value2 = 100,
54 useBendingCorrection =
True,
56 fitFastCircleChi2Cut =
True,
60 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
as _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
61 detachedQuadStepSeeds = _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer.clone(
62 seedingHitSets =
"detachedQuadStepHitQuadruplets",
64 ComponentName =
'PixelClusterShapeSeedComparitor',
65 FilterAtHelixStage = cms.bool(
False),
66 FilterPixelHits = cms.bool(
True),
67 FilterStripHits = cms.bool(
False),
68 ClusterShapeHitFilterName = cms.string(
'ClusterShapeHitFilter'),
69 ClusterShapeCacheSrc = cms.InputTag(
'siPixelClusterShapeCache')
74 from Configuration.Eras.Modifier_trackingPhase1QuadProp_cff
import trackingPhase1QuadProp
75 trackingPhase1QuadProp.toModify(detachedQuadStepHitDoublets, layerPairs = [0])
76 detachedQuadStepHitTriplets = _pixelTripletLargeTipEDProducer.clone(
77 doublets =
"detachedQuadStepHitDoublets",
78 produceIntermediateHitTriplets =
True,
80 from RecoPixelVertexing.PixelTriplets.pixelQuadrupletEDProducer_cfi
import pixelQuadrupletEDProducer
as _pixelQuadrupletEDProducer
81 _detachedQuadStepHitQuadruplets_propagation = _pixelQuadrupletEDProducer.clone(
82 triplets =
"detachedQuadStepHitTriplets",
83 extraHitRZtolerance = detachedQuadStepHitTriplets.extraHitRZtolerance,
84 extraHitRPhitolerance = detachedQuadStepHitTriplets.extraHitRPhitolerance,
87 value1 = 500, value2 = 100,
92 value1 = 0.2, value2 = 0.05,
95 useBendingCorrection =
True,
97 fitFastCircleChi2Cut =
True,
99 trackingPhase1QuadProp.toReplaceWith(detachedQuadStepHitQuadruplets, _detachedQuadStepHitQuadruplets_propagation)
104 _detachedQuadStepTrajectoryFilterBase = _TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
105 minimumNumberOfHits = 3,
108 detachedQuadStepTrajectoryFilterBase = _detachedQuadStepTrajectoryFilterBase.clone(
110 minGoodStripCharge =
dict(refToPSet_ =
'SiStripClusterChargeCutLoose')
112 trackingPhase2PU140.toReplaceWith(detachedQuadStepTrajectoryFilterBase,
113 _detachedQuadStepTrajectoryFilterBase.clone(
114 maxLostHitsFraction = 1./10.,
115 constantValueForLostHitsFractionFilter = 0.301,
118 detachedQuadStepTrajectoryFilter = _TrajectoryFilter_cff.CompositeTrajectoryFilter_block.clone(
119 filters = [cms.PSet(refToPSet_ = cms.string(
'detachedQuadStepTrajectoryFilterBase'))]
121 trackingPhase2PU140.toModify(detachedQuadStepTrajectoryFilter,
122 filters = detachedQuadStepTrajectoryFilter.filters.value()+[cms.PSet(refToPSet_ = cms.string(
'ClusterShapeTrajectoryFilter'))]
126 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
127 detachedQuadStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
128 ComponentName =
'detachedQuadStepChi2Est',
131 clusterChargeCut =
dict(refToPSet_ =
'SiStripClusterChargeCutTight'),
133 trackingPhase2PU140.toModify(detachedQuadStepChi2Est,
135 clusterChargeCut =
dict(refToPSet_ =
"SiStripClusterChargeCutNone")
141 detachedQuadStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
142 MeasurementTrackerName =
'',
143 trajectoryFilter =
dict(refToPSet_ =
'detachedQuadStepTrajectoryFilter'),
145 alwaysUseInvalidHits =
True,
146 estimator =
'detachedQuadStepChi2Est',
147 maxDPhiForLooperReconstruction = cms.double(2.0),
148 maxPtForLooperReconstruction = cms.double(0.7)
150 trackingPhase2PU140.toModify(detachedQuadStepTrajectoryBuilder,
152 alwaysUseInvalidHits =
False,
157 detachedQuadStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
158 ComponentName = cms.string(
'detachedQuadStepTrajectoryCleanerBySharedHits'),
159 fractionShared = cms.double(0.13),
160 allowSharedFirstHit = cms.bool(
True)
164 detachedQuadStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
165 src =
'detachedQuadStepSeeds',
166 clustersToSkip = cms.InputTag(
'detachedQuadStepClusters'),
168 numHitsForSeedCleaner = cms.int32(50),
169 onlyPixelHitsForSeedCleaner = cms.bool(
True),
170 TrajectoryBuilderPSet =
dict(refToPSet_ =
'detachedQuadStepTrajectoryBuilder'),
171 TrajectoryCleaner =
'detachedQuadStepTrajectoryCleanerBySharedHits',
172 doSeedingRegionRebuilding =
True,
173 useHitsSplitting =
True 175 trackingPhase2PU140.toModify(detachedQuadStepTrackCandidates,
176 clustersToSkip =
None,
177 phase2clustersToSkip = cms.InputTag(
"detachedQuadStepClusters")
183 detachedQuadStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
184 AlgorithmName =
'detachedQuadStep',
185 src =
'detachedQuadStepTrackCandidates',
186 Fitter =
'FlexibleKFFittingSmoother',
191 detachedQuadStep = TrackMVAClassifierDetached.clone(
192 src =
'detachedQuadStepTracks',
193 GBRForestLabel =
'MVASelectorDetachedQuadStep_Phase1',
194 qualityCuts = [-0.5,0.0,0.5],
199 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
200 detachedQuadStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
201 src =
'detachedQuadStepTracks',
203 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
204 name =
'detachedQuadStepVtxLoose',
206 res_par = ( 0.003, 0.001 ),
208 d0_par1 = ( 0.9, 3.0 ),
209 dz_par1 = ( 0.9, 3.0 ),
210 d0_par2 = ( 1.0, 3.0 ),
211 dz_par2 = ( 1.0, 3.0 )
213 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
214 name =
'detachedQuadStepTrkLoose',
216 res_par = ( 0.003, 0.001 ),
218 d0_par1 = ( 1.3, 4.0 ),
219 dz_par1 = ( 1.3, 4.0 ),
220 d0_par2 = ( 1.3, 4.0 ),
221 dz_par2 = ( 1.3, 4.0 )
223 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
224 name =
'detachedQuadStepVtxTight',
225 preFilterName =
'detachedQuadStepVtxLoose',
227 res_par = ( 0.003, 0.001 ),
229 maxNumberLostLayers = 1,
230 minNumber3DLayers = 3,
231 d0_par1 = ( 0.9, 3.0 ),
232 dz_par1 = ( 0.9, 3.0 ),
233 d0_par2 = ( 0.9, 3.0 ),
234 dz_par2 = ( 0.9, 3.0 )
236 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
237 name =
'detachedQuadStepTrkTight',
238 preFilterName =
'detachedQuadStepTrkLoose',
240 res_par = ( 0.003, 0.001 ),
242 maxNumberLostLayers = 1,
243 minNumber3DLayers = 3,
244 d0_par1 = ( 1.1, 4.0 ),
245 dz_par1 = ( 1.1, 4.0 ),
246 d0_par2 = ( 1.1, 4.0 ),
247 dz_par2 = ( 1.1, 4.0 )
249 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
250 name =
'detachedQuadStepVtx',
251 preFilterName =
'detachedQuadStepVtxTight',
253 res_par = ( 0.003, 0.001 ),
255 maxNumberLostLayers = 1,
256 minNumber3DLayers = 3,
257 d0_par1 = ( 0.8, 3.0 ),
258 dz_par1 = ( 0.8, 3.0 ),
259 d0_par2 = ( 0.8, 3.0 ),
260 dz_par2 = ( 0.8, 3.0 )
262 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
263 name =
'detachedQuadStepTrk',
264 preFilterName =
'detachedQuadStepTrkTight',
266 res_par = ( 0.003, 0.001 ),
268 maxNumberLostLayers = 1,
269 minNumber3DLayers = 3,
270 d0_par1 = ( 0.9, 4.0 ),
271 dz_par1 = ( 0.9, 4.0 ),
272 d0_par2 = ( 0.9, 4.0 ),
273 dz_par2 = ( 0.9, 4.0 )
279 from RecoTracker.FinalTrackSelectors.trackAlgoPriorityOrder_cfi
import trackAlgoPriorityOrder
281 trackingPhase2PU140.toReplaceWith(detachedQuadStep, RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
282 TrackProducers = cms.VInputTag(cms.InputTag(
'detachedQuadStepTracks'),
283 cms.InputTag(
'detachedQuadStepTracks')),
284 hasSelector=cms.vint32(1,1),
285 shareFrac = cms.double(0.09),
286 indivShareFrac=cms.vdouble(0.09,0.09),
287 selectedTrackQuals = cms.VInputTag(cms.InputTag(
"detachedQuadStepSelector",
"detachedQuadStepVtx"),
288 cms.InputTag(
"detachedQuadStepSelector",
"detachedQuadStepTrk")),
289 setsToMerge = cms.VPSet(cms.PSet( tLists=cms.vint32(0,1), pQual=cms.bool(
True) )),
290 writeOnlyTrkQuals=cms.bool(
True)
294 DetachedQuadStep = cms.Sequence(detachedQuadStepClusters*
295 detachedQuadStepSeedLayers*
296 detachedQuadStepTrackingRegions*
297 detachedQuadStepHitDoublets*
298 detachedQuadStepHitQuadruplets*
299 detachedQuadStepSeeds*
300 detachedQuadStepTrackCandidates*
301 detachedQuadStepTracks*
303 _DetachedQuadStep_Phase1Prop = DetachedQuadStep.copy()
304 _DetachedQuadStep_Phase1Prop.replace(detachedQuadStepHitDoublets, detachedQuadStepHitDoublets+detachedQuadStepHitTriplets)
305 trackingPhase1QuadProp.toReplaceWith(DetachedQuadStep, _DetachedQuadStep_Phase1Prop)
306 _DetachedQuadStep_Phase2PU140 = DetachedQuadStep.copy()
307 _DetachedQuadStep_Phase2PU140.replace(detachedQuadStep, detachedQuadStepSelector+detachedQuadStep)
308 trackingPhase2PU140.toReplaceWith(DetachedQuadStep, _DetachedQuadStep_Phase2PU140)