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(
35 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff
import pp_on_XeXe_2017
36 from Configuration.Eras.Modifier_pp_on_AA_2018_cff
import pp_on_AA_2018
38 for e
in [pp_on_XeXe_2017, pp_on_AA_2018]:
39 e.toReplaceWith(detachedQuadStepTrackingRegions,
40 _globalTrackingRegionWithVertices.clone(RegionPSet=
dict(
49 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi
import hitPairEDProducer
as _hitPairEDProducer
50 detachedQuadStepHitDoublets = _hitPairEDProducer.clone(
51 seedingLayers =
"detachedQuadStepSeedLayers",
52 trackingRegions =
"detachedQuadStepTrackingRegions",
55 produceIntermediateHitDoublets =
True,
57 from RecoPixelVertexing.PixelTriplets.caHitQuadrupletEDProducer_cfi
import caHitQuadrupletEDProducer
as _caHitQuadrupletEDProducer
58 from RecoPixelVertexing.PixelTriplets.pixelTripletLargeTipEDProducer_cfi
import pixelTripletLargeTipEDProducer
as _pixelTripletLargeTipEDProducer
60 detachedQuadStepHitQuadruplets = _caHitQuadrupletEDProducer.clone(
61 doublets =
"detachedQuadStepHitDoublets",
62 extraHitRPhitolerance = _pixelTripletLargeTipEDProducer.extraHitRPhitolerance,
65 value1 = 500, value2 = 100,
67 useBendingCorrection =
True,
69 fitFastCircleChi2Cut =
True,
73 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
as _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
74 detachedQuadStepSeeds = _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer.clone(
75 seedingHitSets =
"detachedQuadStepHitQuadruplets",
77 ComponentName =
'PixelClusterShapeSeedComparitor',
78 FilterAtHelixStage = cms.bool(
False),
79 FilterPixelHits = cms.bool(
True),
80 FilterStripHits = cms.bool(
False),
81 ClusterShapeHitFilterName = cms.string(
'ClusterShapeHitFilter'),
82 ClusterShapeCacheSrc = cms.InputTag(
'siPixelClusterShapeCache')
89 _detachedQuadStepTrajectoryFilterBase = _TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
90 minimumNumberOfHits = 3,
93 detachedQuadStepTrajectoryFilterBase = _detachedQuadStepTrajectoryFilterBase.clone(
95 minGoodStripCharge =
dict(refToPSet_ =
'SiStripClusterChargeCutLoose')
97 trackingPhase2PU140.toReplaceWith(detachedQuadStepTrajectoryFilterBase,
98 _detachedQuadStepTrajectoryFilterBase.clone(
99 maxLostHitsFraction = 1./10.,
100 constantValueForLostHitsFractionFilter = 0.301,
103 detachedQuadStepTrajectoryFilter = _TrajectoryFilter_cff.CompositeTrajectoryFilter_block.clone(
104 filters = [cms.PSet(refToPSet_ = cms.string(
'detachedQuadStepTrajectoryFilterBase'))]
106 trackingPhase2PU140.toModify(detachedQuadStepTrajectoryFilter,
107 filters = detachedQuadStepTrajectoryFilter.filters.value()+[cms.PSet(refToPSet_ = cms.string(
'ClusterShapeTrajectoryFilter'))]
110 for e
in [pp_on_XeXe_2017, pp_on_AA_2018]:
111 e.toModify(detachedQuadStepTrajectoryFilterBase, minPt=0.9)
113 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
114 detachedQuadStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
115 ComponentName =
'detachedQuadStepChi2Est',
118 clusterChargeCut =
dict(refToPSet_ =
'SiStripClusterChargeCutTight'),
120 trackingPhase2PU140.toModify(detachedQuadStepChi2Est,
122 clusterChargeCut =
dict(refToPSet_ =
"SiStripClusterChargeCutNone")
128 detachedQuadStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
129 MeasurementTrackerName =
'',
130 trajectoryFilter =
dict(refToPSet_ =
'detachedQuadStepTrajectoryFilter'),
132 alwaysUseInvalidHits =
True,
133 estimator =
'detachedQuadStepChi2Est',
134 maxDPhiForLooperReconstruction = cms.double(2.0),
135 maxPtForLooperReconstruction = cms.double(0.7)
137 trackingPhase2PU140.toModify(detachedQuadStepTrajectoryBuilder,
139 alwaysUseInvalidHits =
False,
144 detachedQuadStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
145 ComponentName = cms.string(
'detachedQuadStepTrajectoryCleanerBySharedHits'),
146 fractionShared = cms.double(0.13),
147 allowSharedFirstHit = cms.bool(
True)
151 detachedQuadStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
152 src =
'detachedQuadStepSeeds',
153 clustersToSkip = cms.InputTag(
'detachedQuadStepClusters'),
155 numHitsForSeedCleaner = cms.int32(50),
156 onlyPixelHitsForSeedCleaner = cms.bool(
True),
157 TrajectoryBuilderPSet =
dict(refToPSet_ =
'detachedQuadStepTrajectoryBuilder'),
158 TrajectoryCleaner =
'detachedQuadStepTrajectoryCleanerBySharedHits',
159 doSeedingRegionRebuilding =
True,
160 useHitsSplitting =
True 162 trackingPhase2PU140.toModify(detachedQuadStepTrackCandidates,
163 clustersToSkip =
None,
164 phase2clustersToSkip = cms.InputTag(
"detachedQuadStepClusters")
170 detachedQuadStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
171 AlgorithmName =
'detachedQuadStep',
172 src =
'detachedQuadStepTrackCandidates',
173 Fitter =
'FlexibleKFFittingSmoother',
178 detachedQuadStep = TrackMVAClassifierDetached.clone(
179 src =
'detachedQuadStepTracks',
180 mva =
dict(GBRForestLabel =
'MVASelectorDetachedQuadStep_Phase1'),
181 qualityCuts = [-0.5,0.0,0.5],
186 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
187 detachedQuadStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
188 src =
'detachedQuadStepTracks',
190 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
191 name =
'detachedQuadStepVtxLoose',
193 res_par = ( 0.003, 0.001 ),
195 d0_par1 = ( 0.9, 3.0 ),
196 dz_par1 = ( 0.9, 3.0 ),
197 d0_par2 = ( 1.0, 3.0 ),
198 dz_par2 = ( 1.0, 3.0 )
200 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
201 name =
'detachedQuadStepTrkLoose',
203 res_par = ( 0.003, 0.001 ),
205 d0_par1 = ( 1.3, 4.0 ),
206 dz_par1 = ( 1.3, 4.0 ),
207 d0_par2 = ( 1.3, 4.0 ),
208 dz_par2 = ( 1.3, 4.0 )
210 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
211 name =
'detachedQuadStepVtxTight',
212 preFilterName =
'detachedQuadStepVtxLoose',
214 res_par = ( 0.003, 0.001 ),
216 maxNumberLostLayers = 1,
217 minNumber3DLayers = 3,
218 d0_par1 = ( 0.9, 3.0 ),
219 dz_par1 = ( 0.9, 3.0 ),
220 d0_par2 = ( 0.9, 3.0 ),
221 dz_par2 = ( 0.9, 3.0 )
223 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
224 name =
'detachedQuadStepTrkTight',
225 preFilterName =
'detachedQuadStepTrkLoose',
227 res_par = ( 0.003, 0.001 ),
229 maxNumberLostLayers = 1,
230 minNumber3DLayers = 3,
231 d0_par1 = ( 1.1, 4.0 ),
232 dz_par1 = ( 1.1, 4.0 ),
233 d0_par2 = ( 1.1, 4.0 ),
234 dz_par2 = ( 1.1, 4.0 )
236 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
237 name =
'detachedQuadStepVtx',
238 preFilterName =
'detachedQuadStepVtxTight',
240 res_par = ( 0.003, 0.001 ),
242 maxNumberLostLayers = 1,
243 minNumber3DLayers = 3,
244 d0_par1 = ( 0.8, 3.0 ),
245 dz_par1 = ( 0.8, 3.0 ),
246 d0_par2 = ( 0.8, 3.0 ),
247 dz_par2 = ( 0.8, 3.0 )
249 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
250 name =
'detachedQuadStepTrk',
251 preFilterName =
'detachedQuadStepTrkTight',
253 res_par = ( 0.003, 0.001 ),
255 maxNumberLostLayers = 1,
256 minNumber3DLayers = 3,
257 d0_par1 = ( 0.9, 4.0 ),
258 dz_par1 = ( 0.9, 4.0 ),
259 d0_par2 = ( 0.9, 4.0 ),
260 dz_par2 = ( 0.9, 4.0 )
266 from RecoTracker.FinalTrackSelectors.trackAlgoPriorityOrder_cfi
import trackAlgoPriorityOrder
268 trackingPhase2PU140.toReplaceWith(detachedQuadStep, RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
269 TrackProducers = cms.VInputTag(cms.InputTag(
'detachedQuadStepTracks'),
270 cms.InputTag(
'detachedQuadStepTracks')),
271 hasSelector=cms.vint32(1,1),
272 shareFrac = cms.double(0.09),
273 indivShareFrac=cms.vdouble(0.09,0.09),
274 selectedTrackQuals = cms.VInputTag(cms.InputTag(
"detachedQuadStepSelector",
"detachedQuadStepVtx"),
275 cms.InputTag(
"detachedQuadStepSelector",
"detachedQuadStepTrk")),
276 setsToMerge = cms.VPSet(cms.PSet( tLists=cms.vint32(0,1), pQual=cms.bool(
True) )),
277 writeOnlyTrkQuals=cms.bool(
True)
281 DetachedQuadStepTask = cms.Task(detachedQuadStepClusters,
282 detachedQuadStepSeedLayers,
283 detachedQuadStepTrackingRegions,
284 detachedQuadStepHitDoublets,
285 detachedQuadStepHitQuadruplets,
286 detachedQuadStepSeeds,
287 detachedQuadStepTrackCandidates,
288 detachedQuadStepTracks,
290 DetachedQuadStep = cms.Sequence(DetachedQuadStepTask)
291 _DetachedQuadStepTask_Phase2PU140 = DetachedQuadStepTask.copy()
292 _DetachedQuadStepTask_Phase2PU140.replace(detachedQuadStep, cms.Task(detachedQuadStepSelector,detachedQuadStep))
293 trackingPhase2PU140.toReplaceWith(DetachedQuadStepTask, _DetachedQuadStepTask_Phase2PU140)