1 import FWCore.ParameterSet.Config
as cms
2 import RecoTracker.IterativeTracking.iterativeTkConfig
as _cfg
3 from Configuration.Eras.Modifier_fastSim_cff
import fastSim
10 detachedQuadStepClusters = _cfg.clusterRemoverForIter(
"DetachedQuadStep")
11 for _eraName, _postfix, _era
in _cfg.nonDefaultEras():
12 _era.toReplaceWith(detachedQuadStepClusters, _cfg.clusterRemoverForIter(
"DetachedQuadStep", _eraName, _postfix))
15 import RecoTracker.TkSeedingLayers.PixelLayerQuadruplets_cfi
16 detachedQuadStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerQuadruplets_cfi.PixelLayerQuadruplets.clone(
17 BPix =
dict(skipClusters = cms.InputTag(
'detachedQuadStepClusters')),
18 FPix =
dict(skipClusters = cms.InputTag(
'detachedQuadStepClusters'))
22 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpotFixedZ_cfi
import globalTrackingRegionFromBeamSpotFixedZ
as _globalTrackingRegionFromBeamSpotFixedZ
23 detachedQuadStepTrackingRegions = _globalTrackingRegionFromBeamSpotFixedZ.clone(RegionPSet =
dict(
25 originHalfLength = 15.0,
28 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpot_cfi
import globalTrackingRegionFromBeamSpot
as _globalTrackingRegionFromBeamSpot
29 from Configuration.Eras.Modifier_trackingPhase2PU140_cff
import trackingPhase2PU140
30 trackingPhase2PU140.toReplaceWith(detachedQuadStepTrackingRegions, _globalTrackingRegionFromBeamSpot.clone(RegionPSet =
dict(
36 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff
import pp_on_XeXe_2017
37 from RecoTracker.TkTrackingRegions.globalTrackingRegionWithVertices_cff
import globalTrackingRegionWithVertices
as _globalTrackingRegionWithVertices
38 pp_on_XeXe_2017.toReplaceWith(detachedQuadStepTrackingRegions,
39 _globalTrackingRegionWithVertices.clone(RegionPSet=
dict(
48 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi
import hitPairEDProducer
as _hitPairEDProducer
49 detachedQuadStepHitDoublets = _hitPairEDProducer.clone(
50 seedingLayers =
"detachedQuadStepSeedLayers",
51 trackingRegions =
"detachedQuadStepTrackingRegions",
54 produceIntermediateHitDoublets =
True,
56 from RecoPixelVertexing.PixelTriplets.caHitQuadrupletEDProducer_cfi
import caHitQuadrupletEDProducer
as _caHitQuadrupletEDProducer
57 from RecoPixelVertexing.PixelTriplets.pixelTripletLargeTipEDProducer_cfi
import pixelTripletLargeTipEDProducer
as _pixelTripletLargeTipEDProducer
59 detachedQuadStepHitQuadruplets = _caHitQuadrupletEDProducer.clone(
60 doublets =
"detachedQuadStepHitDoublets",
61 extraHitRPhitolerance = _pixelTripletLargeTipEDProducer.extraHitRPhitolerance,
64 value1 = 500, value2 = 100,
66 useBendingCorrection =
True,
68 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')
87 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
88 from FastSimulation.Tracking.SeedingMigration
import _hitSetProducerToFactoryPSet
89 _fastSim_detachedQuadStepSeeds = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
90 trackingRegions =
"detachedQuadStepTrackingRegions",
91 hitMasks = cms.InputTag(
"detachedQuadStepMasks"),
93 SeedComparitorPSet =
dict(ComponentName =
"none")),
94 layerList = detachedQuadStepSeedLayers.layerList.value(),
96 BPix =
dict(TTRHBuilder =
'WithoutRefit', HitProducer =
'TrackingRecHitProducer',),
97 FPix =
dict(TTRHBuilder =
'WithoutRefit', HitProducer =
'TrackingRecHitProducer',),
98 layerPairs = detachedQuadStepHitDoublets.layerPairs.value()
100 fastSim.toReplaceWith(detachedQuadStepSeeds,_fastSim_detachedQuadStepSeeds)
102 from Configuration.Eras.Modifier_trackingPhase1QuadProp_cff
import trackingPhase1QuadProp
103 trackingPhase1QuadProp.toModify(detachedQuadStepHitDoublets, layerPairs = [0])
104 detachedQuadStepHitTriplets = _pixelTripletLargeTipEDProducer.clone(
105 doublets =
"detachedQuadStepHitDoublets",
106 produceIntermediateHitTriplets =
True,
108 from RecoPixelVertexing.PixelTriplets.pixelQuadrupletEDProducer_cfi
import pixelQuadrupletEDProducer
as _pixelQuadrupletEDProducer
109 _detachedQuadStepHitQuadruplets_propagation = _pixelQuadrupletEDProducer.clone(
110 triplets =
"detachedQuadStepHitTriplets",
111 extraHitRZtolerance = detachedQuadStepHitTriplets.extraHitRZtolerance,
112 extraHitRPhitolerance = detachedQuadStepHitTriplets.extraHitRPhitolerance,
115 value1 = 500, value2 = 100,
120 value1 = 0.2, value2 = 0.05,
123 useBendingCorrection =
True,
124 fitFastCircle =
True,
125 fitFastCircleChi2Cut =
True,
127 trackingPhase1QuadProp.toReplaceWith(detachedQuadStepHitQuadruplets, _detachedQuadStepHitQuadruplets_propagation)
132 _detachedQuadStepTrajectoryFilterBase = _TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
133 minimumNumberOfHits = 3,
136 detachedQuadStepTrajectoryFilterBase = _detachedQuadStepTrajectoryFilterBase.clone(
138 minGoodStripCharge =
dict(refToPSet_ =
'SiStripClusterChargeCutLoose')
140 trackingPhase2PU140.toReplaceWith(detachedQuadStepTrajectoryFilterBase,
141 _detachedQuadStepTrajectoryFilterBase.clone(
142 maxLostHitsFraction = 1./10.,
143 constantValueForLostHitsFractionFilter = 0.301,
146 detachedQuadStepTrajectoryFilter = _TrajectoryFilter_cff.CompositeTrajectoryFilter_block.clone(
147 filters = [cms.PSet(refToPSet_ = cms.string(
'detachedQuadStepTrajectoryFilterBase'))]
149 trackingPhase2PU140.toModify(detachedQuadStepTrajectoryFilter,
150 filters = detachedQuadStepTrajectoryFilter.filters.value()+[cms.PSet(refToPSet_ = cms.string(
'ClusterShapeTrajectoryFilter'))]
153 pp_on_XeXe_2017.toModify(detachedQuadStepTrajectoryFilterBase, minPt=0.9)
155 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
156 detachedQuadStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
157 ComponentName =
'detachedQuadStepChi2Est',
160 clusterChargeCut =
dict(refToPSet_ =
'SiStripClusterChargeCutTight'),
162 trackingPhase2PU140.toModify(detachedQuadStepChi2Est,
164 clusterChargeCut =
dict(refToPSet_ =
"SiStripClusterChargeCutNone")
170 detachedQuadStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
171 MeasurementTrackerName =
'',
172 trajectoryFilter =
dict(refToPSet_ =
'detachedQuadStepTrajectoryFilter'),
174 alwaysUseInvalidHits =
True,
175 estimator =
'detachedQuadStepChi2Est',
176 maxDPhiForLooperReconstruction = cms.double(2.0),
177 maxPtForLooperReconstruction = cms.double(0.7)
179 trackingPhase2PU140.toModify(detachedQuadStepTrajectoryBuilder,
181 alwaysUseInvalidHits =
False,
186 detachedQuadStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
187 ComponentName = cms.string(
'detachedQuadStepTrajectoryCleanerBySharedHits'),
188 fractionShared = cms.double(0.13),
189 allowSharedFirstHit = cms.bool(
True)
193 detachedQuadStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
194 src =
'detachedQuadStepSeeds',
195 clustersToSkip = cms.InputTag(
'detachedQuadStepClusters'),
197 numHitsForSeedCleaner = cms.int32(50),
198 onlyPixelHitsForSeedCleaner = cms.bool(
True),
199 TrajectoryBuilderPSet =
dict(refToPSet_ =
'detachedQuadStepTrajectoryBuilder'),
200 TrajectoryCleaner =
'detachedQuadStepTrajectoryCleanerBySharedHits',
201 doSeedingRegionRebuilding =
True,
202 useHitsSplitting =
True 204 trackingPhase2PU140.toModify(detachedQuadStepTrackCandidates,
205 clustersToSkip =
None,
206 phase2clustersToSkip = cms.InputTag(
"detachedQuadStepClusters")
210 import FastSimulation.Tracking.TrackCandidateProducer_cfi
211 _fastSim_detachedQuadStepTrackCandidates = FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
212 src = cms.InputTag(
"detachedQuadStepSeeds"),
213 MinNumberOfCrossedLayers = 4,
214 hitMasks = cms.InputTag(
"detachedQuadStepMasks")
216 fastSim.toReplaceWith(detachedQuadStepTrackCandidates,_fastSim_detachedQuadStepTrackCandidates)
220 detachedQuadStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
221 AlgorithmName =
'detachedQuadStep',
222 src =
'detachedQuadStepTrackCandidates',
223 Fitter =
'FlexibleKFFittingSmoother',
225 fastSim.toModify(detachedQuadStepTracks,TTRHBuilder =
'WithoutRefit')
229 detachedQuadStep = TrackMVAClassifierDetached.clone(
230 src =
'detachedQuadStepTracks',
231 mva =
dict(GBRForestLabel =
'MVASelectorDetachedQuadStep_Phase1'),
232 qualityCuts = [-0.5,0.0,0.5],
234 fastSim.toModify(detachedQuadStep,vertices =
"firstStepPrimaryVerticesBeforeMixing")
237 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
238 detachedQuadStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
239 src =
'detachedQuadStepTracks',
241 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
242 name =
'detachedQuadStepVtxLoose',
244 res_par = ( 0.003, 0.001 ),
246 d0_par1 = ( 0.9, 3.0 ),
247 dz_par1 = ( 0.9, 3.0 ),
248 d0_par2 = ( 1.0, 3.0 ),
249 dz_par2 = ( 1.0, 3.0 )
251 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
252 name =
'detachedQuadStepTrkLoose',
254 res_par = ( 0.003, 0.001 ),
256 d0_par1 = ( 1.3, 4.0 ),
257 dz_par1 = ( 1.3, 4.0 ),
258 d0_par2 = ( 1.3, 4.0 ),
259 dz_par2 = ( 1.3, 4.0 )
261 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
262 name =
'detachedQuadStepVtxTight',
263 preFilterName =
'detachedQuadStepVtxLoose',
265 res_par = ( 0.003, 0.001 ),
267 maxNumberLostLayers = 1,
268 minNumber3DLayers = 3,
269 d0_par1 = ( 0.9, 3.0 ),
270 dz_par1 = ( 0.9, 3.0 ),
271 d0_par2 = ( 0.9, 3.0 ),
272 dz_par2 = ( 0.9, 3.0 )
274 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
275 name =
'detachedQuadStepTrkTight',
276 preFilterName =
'detachedQuadStepTrkLoose',
278 res_par = ( 0.003, 0.001 ),
280 maxNumberLostLayers = 1,
281 minNumber3DLayers = 3,
282 d0_par1 = ( 1.1, 4.0 ),
283 dz_par1 = ( 1.1, 4.0 ),
284 d0_par2 = ( 1.1, 4.0 ),
285 dz_par2 = ( 1.1, 4.0 )
287 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
288 name =
'detachedQuadStepVtx',
289 preFilterName =
'detachedQuadStepVtxTight',
291 res_par = ( 0.003, 0.001 ),
293 maxNumberLostLayers = 1,
294 minNumber3DLayers = 3,
295 d0_par1 = ( 0.8, 3.0 ),
296 dz_par1 = ( 0.8, 3.0 ),
297 d0_par2 = ( 0.8, 3.0 ),
298 dz_par2 = ( 0.8, 3.0 )
300 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
301 name =
'detachedQuadStepTrk',
302 preFilterName =
'detachedQuadStepTrkTight',
304 res_par = ( 0.003, 0.001 ),
306 maxNumberLostLayers = 1,
307 minNumber3DLayers = 3,
308 d0_par1 = ( 0.9, 4.0 ),
309 dz_par1 = ( 0.9, 4.0 ),
310 d0_par2 = ( 0.9, 4.0 ),
311 dz_par2 = ( 0.9, 4.0 )
317 from RecoTracker.FinalTrackSelectors.trackAlgoPriorityOrder_cfi
import trackAlgoPriorityOrder
319 trackingPhase2PU140.toReplaceWith(detachedQuadStep, RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
320 TrackProducers = cms.VInputTag(cms.InputTag(
'detachedQuadStepTracks'),
321 cms.InputTag(
'detachedQuadStepTracks')),
322 hasSelector=cms.vint32(1,1),
323 shareFrac = cms.double(0.09),
324 indivShareFrac=cms.vdouble(0.09,0.09),
325 selectedTrackQuals = cms.VInputTag(cms.InputTag(
"detachedQuadStepSelector",
"detachedQuadStepVtx"),
326 cms.InputTag(
"detachedQuadStepSelector",
"detachedQuadStepTrk")),
327 setsToMerge = cms.VPSet(cms.PSet( tLists=cms.vint32(0,1), pQual=cms.bool(
True) )),
328 writeOnlyTrkQuals=cms.bool(
True)
332 DetachedQuadStep = cms.Sequence(detachedQuadStepClusters*
333 detachedQuadStepSeedLayers*
334 detachedQuadStepTrackingRegions*
335 detachedQuadStepHitDoublets*
336 detachedQuadStepHitQuadruplets*
337 detachedQuadStepSeeds*
338 detachedQuadStepTrackCandidates*
339 detachedQuadStepTracks*
341 _DetachedQuadStep_Phase1Prop = DetachedQuadStep.copy()
342 _DetachedQuadStep_Phase1Prop.replace(detachedQuadStepHitDoublets, detachedQuadStepHitDoublets+detachedQuadStepHitTriplets)
343 trackingPhase1QuadProp.toReplaceWith(DetachedQuadStep, _DetachedQuadStep_Phase1Prop)
344 _DetachedQuadStep_Phase2PU140 = DetachedQuadStep.copy()
345 _DetachedQuadStep_Phase2PU140.replace(detachedQuadStep, detachedQuadStepSelector+detachedQuadStep)
346 trackingPhase2PU140.toReplaceWith(DetachedQuadStep, _DetachedQuadStep_Phase2PU140)
349 from FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi
import maskProducerFromClusterRemover
351 fastSim.toReplaceWith(DetachedQuadStep,
352 cms.Sequence(detachedQuadStepMasks
353 *detachedQuadStepTrackingRegions
354 *detachedQuadStepSeeds
355 *detachedQuadStepTrackCandidates
356 *detachedQuadStepTracks
def _hitSetProducerToFactoryPSet(producer)
def maskProducerFromClusterRemover(clusterRemover)
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)