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))
16 detachedQuadStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone(
17 layerList = RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff.PixelSeedMergerQuadruplets.layerList.value(),
18 BPix =
dict(skipClusters = cms.InputTag(
'detachedQuadStepClusters')),
19 FPix =
dict(skipClusters = cms.InputTag(
'detachedQuadStepClusters'))
23 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpotFixedZ_cfi
import globalTrackingRegionFromBeamSpotFixedZ
as _globalTrackingRegionFromBeamSpotFixedZ
24 detachedQuadStepTrackingRegions = _globalTrackingRegionFromBeamSpotFixedZ.clone(RegionPSet =
dict(
26 originHalfLength = 15.0,
29 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpot_cfi
import globalTrackingRegionFromBeamSpot
as _globalTrackingRegionFromBeamSpot
30 from Configuration.Eras.Modifier_trackingPhase2PU140_cff
import trackingPhase2PU140
31 trackingPhase2PU140.toReplaceWith(detachedQuadStepTrackingRegions, _globalTrackingRegionFromBeamSpot.clone(RegionPSet =
dict(
38 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi
import hitPairEDProducer
as _hitPairEDProducer
39 detachedQuadStepHitDoublets = _hitPairEDProducer.clone(
40 seedingLayers =
"detachedQuadStepSeedLayers",
41 trackingRegions =
"detachedQuadStepTrackingRegions",
44 produceIntermediateHitDoublets =
True,
46 from RecoPixelVertexing.PixelTriplets.caHitQuadrupletEDProducer_cfi
import caHitQuadrupletEDProducer
as _caHitQuadrupletEDProducer
47 from RecoPixelVertexing.PixelTriplets.pixelTripletLargeTipEDProducer_cfi
import pixelTripletLargeTipEDProducer
as _pixelTripletLargeTipEDProducer
49 detachedQuadStepHitQuadruplets = _caHitQuadrupletEDProducer.clone(
50 doublets =
"detachedQuadStepHitDoublets",
51 extraHitRPhitolerance = _pixelTripletLargeTipEDProducer.extraHitRPhitolerance,
54 value1 = 500, value2 = 100,
56 useBendingCorrection =
True,
58 fitFastCircleChi2Cut =
True,
62 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
as _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
63 detachedQuadStepSeeds = _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer.clone(
64 seedingHitSets =
"detachedQuadStepHitQuadruplets",
66 ComponentName =
'PixelClusterShapeSeedComparitor',
67 FilterAtHelixStage = cms.bool(
False),
68 FilterPixelHits = cms.bool(
True),
69 FilterStripHits = cms.bool(
False),
70 ClusterShapeHitFilterName = cms.string(
'ClusterShapeHitFilter'),
71 ClusterShapeCacheSrc = cms.InputTag(
'siPixelClusterShapeCache')
76 from Configuration.Eras.Modifier_trackingPhase1QuadProp_cff
import trackingPhase1QuadProp
77 trackingPhase1QuadProp.toModify(detachedQuadStepHitDoublets, layerPairs = [0])
78 trackingPhase2PU140.toModify(detachedQuadStepHitDoublets, layerPairs = [0])
79 detachedQuadStepHitTriplets = _pixelTripletLargeTipEDProducer.clone(
80 doublets =
"detachedQuadStepHitDoublets",
81 produceIntermediateHitTriplets =
True,
83 from RecoPixelVertexing.PixelTriplets.pixelQuadrupletEDProducer_cfi
import pixelQuadrupletEDProducer
as _pixelQuadrupletEDProducer
84 _detachedQuadStepHitQuadruplets_propagation = _pixelQuadrupletEDProducer.clone(
85 triplets =
"detachedQuadStepHitTriplets",
86 extraHitRZtolerance = detachedQuadStepHitTriplets.extraHitRZtolerance,
87 extraHitRPhitolerance = detachedQuadStepHitTriplets.extraHitRPhitolerance,
90 value1 = 500, value2 = 100,
95 value1 = 0.2, value2 = 0.05,
98 useBendingCorrection =
True,
100 fitFastCircleChi2Cut =
True,
102 trackingPhase1QuadProp.toReplaceWith(detachedQuadStepHitQuadruplets, _detachedQuadStepHitQuadruplets_propagation)
103 trackingPhase2PU140.toReplaceWith(detachedQuadStepHitQuadruplets, _detachedQuadStepHitQuadruplets_propagation)
108 _detachedQuadStepTrajectoryFilterBase = _TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
109 minimumNumberOfHits = 3,
112 detachedQuadStepTrajectoryFilterBase = _detachedQuadStepTrajectoryFilterBase.clone(
114 minGoodStripCharge =
dict(refToPSet_ =
'SiStripClusterChargeCutLoose')
116 trackingPhase2PU140.toReplaceWith(detachedQuadStepTrajectoryFilterBase,
117 _detachedQuadStepTrajectoryFilterBase.clone(
118 maxLostHitsFraction = 1./10.,
119 constantValueForLostHitsFractionFilter = 0.301,
122 detachedQuadStepTrajectoryFilter = _TrajectoryFilter_cff.CompositeTrajectoryFilter_block.clone(
123 filters = [cms.PSet(refToPSet_ = cms.string(
'detachedQuadStepTrajectoryFilterBase'))]
125 trackingPhase2PU140.toModify(detachedQuadStepTrajectoryFilter,
126 filters = detachedQuadStepTrajectoryFilter.filters.value()+[cms.PSet(refToPSet_ = cms.string(
'ClusterShapeTrajectoryFilter'))]
130 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
131 detachedQuadStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
132 ComponentName =
'detachedQuadStepChi2Est',
135 clusterChargeCut =
dict(refToPSet_ =
'SiStripClusterChargeCutTight'),
137 trackingPhase2PU140.toModify(detachedQuadStepChi2Est,
139 clusterChargeCut =
dict(refToPSet_ =
"SiStripClusterChargeCutNone")
145 detachedQuadStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
146 MeasurementTrackerName =
'',
147 trajectoryFilter =
dict(refToPSet_ =
'detachedQuadStepTrajectoryFilter'),
149 alwaysUseInvalidHits =
True,
150 estimator =
'detachedQuadStepChi2Est',
151 maxDPhiForLooperReconstruction = cms.double(2.0),
152 maxPtForLooperReconstruction = cms.double(0.7)
154 trackingPhase2PU140.toModify(detachedQuadStepTrajectoryBuilder,
156 alwaysUseInvalidHits =
False,
161 detachedQuadStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
162 ComponentName = cms.string(
'detachedQuadStepTrajectoryCleanerBySharedHits'),
163 fractionShared = cms.double(0.13),
164 allowSharedFirstHit = cms.bool(
True)
166 trackingPhase2PU140.toModify(detachedQuadStepTrajectoryCleanerBySharedHits,
167 fractionShared = 0.09
171 detachedQuadStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
172 src =
'detachedQuadStepSeeds',
173 clustersToSkip = cms.InputTag(
'detachedQuadStepClusters'),
175 numHitsForSeedCleaner = cms.int32(50),
176 onlyPixelHitsForSeedCleaner = cms.bool(
True),
177 TrajectoryBuilderPSet =
dict(refToPSet_ =
'detachedQuadStepTrajectoryBuilder'),
178 TrajectoryCleaner =
'detachedQuadStepTrajectoryCleanerBySharedHits',
179 doSeedingRegionRebuilding =
True,
180 useHitsSplitting =
True 182 trackingPhase2PU140.toModify(detachedQuadStepTrackCandidates,
183 clustersToSkip =
None,
184 phase2clustersToSkip = cms.InputTag(
"detachedQuadStepClusters")
190 detachedQuadStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
191 AlgorithmName =
'detachedQuadStep',
192 src =
'detachedQuadStepTrackCandidates',
193 Fitter =
'FlexibleKFFittingSmoother',
198 detachedQuadStep = TrackMVAClassifierDetached.clone(
199 src =
'detachedQuadStepTracks',
200 GBRForestLabel =
'MVASelectorDetachedQuadStep_Phase1',
201 qualityCuts = [-0.5,0.0,0.5],
206 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
207 detachedQuadStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
208 src =
'detachedQuadStepTracks',
210 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
211 name =
'detachedQuadStepVtxLoose',
213 res_par = ( 0.003, 0.001 ),
215 d0_par1 = ( 0.9, 3.0 ),
216 dz_par1 = ( 0.9, 3.0 ),
217 d0_par2 = ( 1.0, 3.0 ),
218 dz_par2 = ( 1.0, 3.0 )
220 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
221 name =
'detachedQuadStepTrkLoose',
223 res_par = ( 0.003, 0.001 ),
225 d0_par1 = ( 1.3, 4.0 ),
226 dz_par1 = ( 1.3, 4.0 ),
227 d0_par2 = ( 1.3, 4.0 ),
228 dz_par2 = ( 1.3, 4.0 )
230 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
231 name =
'detachedQuadStepVtxTight',
232 preFilterName =
'detachedQuadStepVtxLoose',
234 res_par = ( 0.003, 0.001 ),
236 maxNumberLostLayers = 1,
237 minNumber3DLayers = 3,
238 d0_par1 = ( 0.9, 3.0 ),
239 dz_par1 = ( 0.9, 3.0 ),
240 d0_par2 = ( 0.9, 3.0 ),
241 dz_par2 = ( 0.9, 3.0 )
243 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
244 name =
'detachedQuadStepTrkTight',
245 preFilterName =
'detachedQuadStepTrkLoose',
247 res_par = ( 0.003, 0.001 ),
249 maxNumberLostLayers = 1,
250 minNumber3DLayers = 3,
251 d0_par1 = ( 1.1, 4.0 ),
252 dz_par1 = ( 1.1, 4.0 ),
253 d0_par2 = ( 1.1, 4.0 ),
254 dz_par2 = ( 1.1, 4.0 )
256 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
257 name =
'detachedQuadStepVtx',
258 preFilterName =
'detachedQuadStepVtxTight',
260 res_par = ( 0.003, 0.001 ),
262 maxNumberLostLayers = 1,
263 minNumber3DLayers = 3,
264 d0_par1 = ( 0.8, 3.0 ),
265 dz_par1 = ( 0.8, 3.0 ),
266 d0_par2 = ( 0.8, 3.0 ),
267 dz_par2 = ( 0.8, 3.0 )
269 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
270 name =
'detachedQuadStepTrk',
271 preFilterName =
'detachedQuadStepTrkTight',
273 res_par = ( 0.003, 0.001 ),
275 maxNumberLostLayers = 0,
276 minNumber3DLayers = 3,
277 d0_par1 = ( 0.8, 4.0 ),
278 dz_par1 = ( 0.8, 4.0 ),
279 d0_par2 = ( 0.8, 4.0 ),
280 dz_par2 = ( 0.8, 4.0 )
286 from RecoTracker.FinalTrackSelectors.trackAlgoPriorityOrder_cfi
import trackAlgoPriorityOrder
288 trackingPhase2PU140.toReplaceWith(detachedQuadStep, RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
289 TrackProducers = cms.VInputTag(cms.InputTag(
'detachedQuadStepTracks'),
290 cms.InputTag(
'detachedQuadStepTracks')),
291 hasSelector=cms.vint32(1,1),
292 shareFrac = cms.double(0.09),
293 indivShareFrac=cms.vdouble(0.09,0.09),
294 selectedTrackQuals = cms.VInputTag(cms.InputTag(
"detachedQuadStepSelector",
"detachedQuadStepVtx"),
295 cms.InputTag(
"detachedQuadStepSelector",
"detachedQuadStepTrk")),
296 setsToMerge = cms.VPSet(cms.PSet( tLists=cms.vint32(0,1), pQual=cms.bool(
True) )),
297 writeOnlyTrkQuals=cms.bool(
True)
301 DetachedQuadStep = cms.Sequence(detachedQuadStepClusters*
302 detachedQuadStepSeedLayers*
303 detachedQuadStepTrackingRegions*
304 detachedQuadStepHitDoublets*
305 detachedQuadStepHitQuadruplets*
306 detachedQuadStepSeeds*
307 detachedQuadStepTrackCandidates*
308 detachedQuadStepTracks*
310 _DetachedQuadStep_Phase1Prop = DetachedQuadStep.copy()
311 _DetachedQuadStep_Phase1Prop.replace(detachedQuadStepHitDoublets, detachedQuadStepHitDoublets+detachedQuadStepHitTriplets)
312 trackingPhase1QuadProp.toReplaceWith(DetachedQuadStep, _DetachedQuadStep_Phase1Prop)
313 _DetachedQuadStep_Phase2PU140 = _DetachedQuadStep_Phase1Prop.copy()
314 _DetachedQuadStep_Phase2PU140.replace(detachedQuadStep, detachedQuadStepSelector+detachedQuadStep)
315 trackingPhase2PU140.toReplaceWith(DetachedQuadStep, _DetachedQuadStep_Phase2PU140)