1 import FWCore.ParameterSet.Config
as cms
2 from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff
import tracker_apv_vfp30_2016
as _tracker_apv_vfp30_2016
3 from Configuration.Eras.Modifier_fastSim_cff
import fastSim
13 import RecoTracker.TkSeedingLayers.PixelLayerQuadruplets_cfi
14 initialStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone()
15 from Configuration.Eras.Modifier_trackingPhase1_cff
import trackingPhase1
16 trackingPhase1.toModify(initialStepSeedLayers,
17 layerList = RecoTracker.TkSeedingLayers.PixelLayerQuadruplets_cfi.PixelLayerQuadruplets.layerList.value()
19 from Configuration.Eras.Modifier_trackingPhase1QuadProp_cff
import trackingPhase1QuadProp
20 trackingPhase1QuadProp.toModify(initialStepSeedLayers,
23 'BPix1+BPix2+FPix1_pos',
24 'BPix1+BPix2+FPix1_neg',
25 'BPix1+FPix1_pos+FPix2_pos',
26 'BPix1+FPix1_neg+FPix2_neg' 29 trackingPhase2PU140.toModify(initialStepSeedLayers,
30 layerList = RecoTracker.TkSeedingLayers.PixelLayerQuadruplets_cfi.PixelLayerQuadruplets.layerList.value()
34 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpot_cfi
import globalTrackingRegionFromBeamSpot
as _globalTrackingRegionFromBeamSpot
35 initialStepTrackingRegions = _globalTrackingRegionFromBeamSpot.clone(RegionPSet =
dict(
40 from Configuration.Eras.Modifier_trackingPhase2PU140_cff
import trackingPhase2PU140
41 trackingPhase1.toModify(initialStepTrackingRegions, RegionPSet =
dict(ptMin = 0.5))
42 trackingPhase2PU140.toModify(initialStepTrackingRegions, RegionPSet =
dict(ptMin = 0.6,originRadius = 0.03))
45 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi
import hitPairEDProducer
as _hitPairEDProducer
46 initialStepHitDoublets = _hitPairEDProducer.clone(
47 seedingLayers =
"initialStepSeedLayers",
48 trackingRegions =
"initialStepTrackingRegions",
50 produceIntermediateHitDoublets =
True,
52 from RecoPixelVertexing.PixelTriplets.pixelTripletHLTEDProducer_cfi
import pixelTripletHLTEDProducer
as _pixelTripletHLTEDProducer
54 import RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi
55 initialStepHitTriplets = _pixelTripletHLTEDProducer.clone(
56 doublets =
"initialStepHitDoublets",
57 produceSeedingHitSets =
True,
58 SeedComparitorPSet = RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi.LowPtClusterShapeSeedComparitor.clone()
60 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsEDProducer
as _seedCreatorFromRegionConsecutiveHitsEDProducer
61 initialStepSeeds = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
62 seedingHitSets =
"initialStepHitTriplets",
64 from RecoPixelVertexing.PixelTriplets.caHitQuadrupletEDProducer_cfi
import caHitQuadrupletEDProducer
as _caHitQuadrupletEDProducer
65 _initialStepCAHitQuadruplets = _caHitQuadrupletEDProducer.clone(
66 doublets =
"initialStepHitDoublets",
67 extraHitRPhitolerance = initialStepHitTriplets.extraHitRPhitolerance,
68 SeedComparitorPSet = initialStepHitTriplets.SeedComparitorPSet,
71 value1 = 200, value2 = 50,
73 useBendingCorrection =
True,
75 fitFastCircleChi2Cut =
True,
79 initialStepHitQuadruplets = _initialStepCAHitQuadruplets.clone()
80 trackingPhase1.toModify(initialStepHitDoublets, layerPairs = [0,1,2])
82 from RecoPixelVertexing.PixelTriplets.pixelQuadrupletEDProducer_cfi
import pixelQuadrupletEDProducer
as _pixelQuadrupletEDProducer
83 trackingPhase1QuadProp.toReplaceWith(initialStepHitQuadruplets, _pixelQuadrupletEDProducer.clone(
84 triplets =
"initialStepHitTriplets",
85 extraHitRZtolerance = initialStepHitTriplets.extraHitRZtolerance,
86 extraHitRPhitolerance = initialStepHitTriplets.extraHitRPhitolerance,
89 value1 = 200, value2 = 100,
94 value1 = 0.15, value2 = 0.1,
97 useBendingCorrection =
True,
99 fitFastCircleChi2Cut =
True,
100 SeedComparitorPSet = initialStepHitTriplets.SeedComparitorPSet
103 trackingPhase2PU140.toModify(initialStepHitDoublets, layerPairs = [0,1,2])
104 trackingPhase2PU140.toModify(initialStepHitQuadruplets,
109 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer_cff
import seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
as _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
110 _initialStepSeedsConsecutiveHitsTripletOnly = _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer.clone(
111 seedingHitSets =
"initialStepHitTriplets",
112 SeedComparitorPSet =
dict(
113 ComponentName =
'PixelClusterShapeSeedComparitor',
114 FilterAtHelixStage = cms.bool(
False),
115 FilterPixelHits = cms.bool(
True),
116 FilterStripHits = cms.bool(
False),
117 ClusterShapeHitFilterName = cms.string(
'ClusterShapeHitFilter'),
118 ClusterShapeCacheSrc = cms.InputTag(
'siPixelClusterShapeCache')
121 trackingPhase1QuadProp.toReplaceWith(initialStepSeeds, _initialStepSeedsConsecutiveHitsTripletOnly)
122 trackingPhase1.toReplaceWith(initialStepSeeds, _initialStepSeedsConsecutiveHitsTripletOnly.clone(
123 seedingHitSets =
"initialStepHitQuadruplets" 125 trackingPhase2PU140.toReplaceWith(initialStepSeeds, _initialStepSeedsConsecutiveHitsTripletOnly.clone(
126 seedingHitSets =
"initialStepHitQuadruplets" 128 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
129 from FastSimulation.Tracking.SeedingMigration
import _hitSetProducerToFactoryPSet
130 _fastSim_initialStepSeeds = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
131 trackingRegions =
"initialStepTrackingRegions",
133 layerList = initialStepSeedLayers.layerList.value())
135 _fastSim_initialStepSeeds.seedFinderSelector.pixelTripletGeneratorFactory.SeedComparitorPSet.ComponentName =
"none" 137 trackingPhase1.toModify(_fastSim_initialStepSeeds, seedFinderSelector =
dict(
138 pixelTripletGeneratorFactory =
None,
142 TTRHBuilder =
'WithoutRefit',
143 HitProducer =
'TrackingRecHitProducer',
146 TTRHBuilder =
'WithoutRefit',
147 HitProducer =
'TrackingRecHitProducer',
149 layerPairs = initialStepHitDoublets.layerPairs.value()
153 fastSim.toReplaceWith(initialStepSeeds,_fastSim_initialStepSeeds)
158 _initialStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
159 minimumNumberOfHits = 3,
162 initialStepTrajectoryFilterBase = _initialStepTrajectoryFilterBase.clone(
164 minGoodStripCharge = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutLoose'))
166 from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff
import tracker_apv_vfp30_2016
167 _tracker_apv_vfp30_2016.toModify(initialStepTrajectoryFilterBase, maxCCCLostHits = 2)
169 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff
import pp_on_XeXe_2017
170 pp_on_XeXe_2017.toModify(initialStepTrajectoryFilterBase, minPt=0.6)
172 initialStepTrajectoryFilterInOut = initialStepTrajectoryFilterBase.clone(
173 minimumNumberOfHits = 4,
175 strictSeedExtension =
True,
176 pixelSeedExtension =
True,
178 from Configuration.Eras.Modifier_trackingLowPU_cff
import trackingLowPU
179 trackingLowPU.toReplaceWith(initialStepTrajectoryFilterBase, _initialStepTrajectoryFilterBase)
180 trackingPhase2PU140.toReplaceWith(initialStepTrajectoryFilterBase, _initialStepTrajectoryFilterBase)
182 import RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi
183 initialStepTrajectoryFilterShape = RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi.StripSubClusterShapeTrajectoryFilterTIX12.clone()
184 initialStepTrajectoryFilter = cms.PSet(
185 ComponentType = cms.string(
'CompositeTrajectoryFilter'),
187 cms.PSet( refToPSet_ = cms.string(
'initialStepTrajectoryFilterBase')),
192 trackingPhase2PU140.toReplaceWith(initialStepTrajectoryFilter, TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
193 minimumNumberOfHits = 3,
197 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
198 initialStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
199 ComponentName = cms.string(
'initialStepChi2Est'),
200 nSigma = cms.double(3.0),
201 MaxChi2 = cms.double(30.0),
202 clusterChargeCut = cms.PSet(refToPSet_ = cms.string(
'SiStripClusterChargeCutLoose')),
203 pTChargeCutThreshold = cms.double(15.)
205 _tracker_apv_vfp30_2016.toModify(initialStepChi2Est,
206 clusterChargeCut =
dict(refToPSet_ =
"SiStripClusterChargeCutTiny")
208 trackingPhase2PU140.toModify(initialStepChi2Est,
209 clusterChargeCut =
dict(refToPSet_ =
'SiStripClusterChargeCutNone'),
214 initialStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
215 trajectoryFilter = cms.PSet(refToPSet_ = cms.string(
'initialStepTrajectoryFilter')),
216 alwaysUseInvalidHits =
True,
218 estimator = cms.string(
'initialStepChi2Est'),
219 maxDPhiForLooperReconstruction = cms.double(2.0),
220 maxPtForLooperReconstruction = cms.double(0.7)
222 trackingLowPU.toModify(initialStepTrajectoryBuilder, maxCand = 5)
223 trackingPhase1.toModify(initialStepTrajectoryBuilder,
224 minNrOfHitsForRebuild = 1,
225 keepOriginalIfRebuildFails =
True,
227 trackingPhase1QuadProp.toModify(initialStepTrajectoryBuilder,
228 minNrOfHitsForRebuild = 1,
229 keepOriginalIfRebuildFails =
True,
230 inOutTrajectoryFilter =
dict(refToPSet_ =
"initialStepTrajectoryFilterInOut"),
231 useSameTrajFilter =
False 234 trackingPhase2PU140.toModify(initialStepTrajectoryBuilder,
235 minNrOfHitsForRebuild = 1,
236 keepOriginalIfRebuildFails =
True,
240 initialStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
241 src = cms.InputTag(
'initialStepSeeds'),
243 numHitsForSeedCleaner = cms.int32(50),
244 onlyPixelHitsForSeedCleaner = cms.bool(
True),
245 TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string(
'initialStepTrajectoryBuilder')),
246 doSeedingRegionRebuilding =
True,
247 useHitsSplitting =
True 250 import FastSimulation.Tracking.TrackCandidateProducer_cfi
251 fastSim.toReplaceWith(initialStepTrackCandidates,
252 FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
253 src = cms.InputTag(
"initialStepSeeds"),
254 MinNumberOfCrossedLayers = 3
260 initialStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
261 src =
'initialStepTrackCandidates',
262 AlgorithmName = cms.string(
'initialStep'),
263 Fitter = cms.string(
'FlexibleKFFittingSmoother')
265 fastSim.toModify(initialStepTracks, TTRHBuilder =
'WithoutRefit')
269 firstStepPrimaryVerticesUnsorted = _offlinePrimaryVertices.clone()
270 firstStepPrimaryVerticesUnsorted.TrackLabel = cms.InputTag(
"initialStepTracks")
271 firstStepPrimaryVerticesUnsorted.vertexCollections = [_offlinePrimaryVertices.vertexCollections[0].
clone()]
276 firstStepPrimaryVerticesBeforeMixing = firstStepPrimaryVerticesUnsorted.clone()
277 fastSim.toModify(firstStepPrimaryVerticesUnsorted, TrackLabel =
"generalTracks")
281 initialStepTrackRefsForJets = trackRefsForJets.clone(src = cms.InputTag(
'initialStepTracks'))
282 fastSim.toModify(initialStepTrackRefsForJets, src =
"generalTracks")
285 firstStepPrimaryVertices = _sortedPrimaryVertices.clone(
286 vertices =
"firstStepPrimaryVerticesUnsorted",
287 particles =
"initialStepTrackRefsForJets",
296 initialStepClassifier1 = TrackMVAClassifierPrompt.clone()
297 initialStepClassifier1.src =
'initialStepTracks' 298 initialStepClassifier1.mva.GBRForestLabel =
'MVASelectorIter0_13TeV' 299 initialStepClassifier1.qualityCuts = [-0.9,-0.8,-0.7]
300 fastSim.toModify(initialStepClassifier1,vertices =
"firstStepPrimaryVerticesBeforeMixing")
304 initialStepClassifier2 = detachedTripletStepClassifier1.clone()
305 initialStepClassifier2.src =
'initialStepTracks' 306 fastSim.toModify(initialStepClassifier2,vertices =
"firstStepPrimaryVerticesBeforeMixing")
307 initialStepClassifier3 = lowPtTripletStep.clone()
308 initialStepClassifier3.src =
'initialStepTracks' 309 fastSim.toModify(initialStepClassifier3,vertices =
"firstStepPrimaryVerticesBeforeMixing")
312 initialStep = ClassifierMerger.clone()
313 initialStep.inputClassifiers=[
'initialStepClassifier1',
'initialStepClassifier2',
'initialStepClassifier3']
315 trackingPhase1.toReplaceWith(initialStep, initialStepClassifier1.clone(
316 mva =
dict(GBRForestLabel =
'MVASelectorInitialStep_Phase1'),
317 qualityCuts = [-0.95,-0.85,-0.75],
319 trackingPhase1QuadProp.toReplaceWith(initialStep, initialStepClassifier1.clone(
320 mva =
dict(GBRForestLabel =
'MVASelectorInitialStep_Phase1'),
321 qualityCuts = [-0.95,-0.85,-0.75],
325 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
326 initialStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
327 src =
'initialStepTracks',
328 useAnyMVA = cms.bool(
False),
329 GBRForestLabel = cms.string(
'MVASelectorIter0'),
331 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
332 name =
'initialStepLoose',
334 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
335 name =
'initialStepTight',
336 preFilterName =
'initialStepLoose',
338 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
339 name =
'QualityMasks',
340 preFilterName =
'initialStepTight',
344 trackingPhase2PU140.toModify(initialStepSelector,
346 GBRForestLabel =
None,
347 trackSelectors= cms.VPSet(
348 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
349 name =
'initialStepLoose',
351 res_par = ( 0.003, 0.002 ),
353 maxNumberLostLayers = 3,
354 minNumber3DLayers = 3,
355 d0_par1 = ( 0.8, 4.0 ),
356 dz_par1 = ( 0.9, 4.0 ),
357 d0_par2 = ( 0.6, 4.0 ),
358 dz_par2 = ( 0.8, 4.0 )
360 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
361 name =
'initialStepTight',
362 preFilterName =
'initialStepLoose',
364 res_par = ( 0.003, 0.002 ),
366 maxNumberLostLayers = 2,
367 minNumber3DLayers = 3,
368 d0_par1 = ( 0.7, 4.0 ),
369 dz_par1 = ( 0.8, 4.0 ),
370 d0_par2 = ( 0.5, 4.0 ),
371 dz_par2 = ( 0.7, 4.0 )
373 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
374 name =
'initialStep',
375 preFilterName =
'initialStepTight',
377 res_par = ( 0.003, 0.001 ),
379 maxNumberLostLayers = 2,
380 minNumber3DLayers = 3,
381 d0_par1 = ( 0.6, 4.0 ),
382 dz_par1 = ( 0.7, 4.0 ),
383 d0_par2 = ( 0.45, 4.0 ),
384 dz_par2 = ( 0.55, 4.0 )
392 InitialStep = cms.Sequence(initialStepSeedLayers*
393 initialStepTrackingRegions*
394 initialStepHitDoublets*
395 initialStepHitTriplets*
397 initialStepTrackCandidates*
399 firstStepPrimaryVerticesUnsorted*
400 initialStepTrackRefsForJets*
402 firstStepPrimaryVertices*
403 initialStepClassifier1*initialStepClassifier2*initialStepClassifier3*
405 _InitialStep_LowPU = InitialStep.copyAndExclude([firstStepPrimaryVerticesUnsorted, initialStepTrackRefsForJets, caloJetsForTrk, firstStepPrimaryVertices, initialStepClassifier1, initialStepClassifier2, initialStepClassifier3])
406 _InitialStep_LowPU.replace(initialStep, initialStepSelector)
407 trackingLowPU.toReplaceWith(InitialStep, _InitialStep_LowPU)
408 _InitialStep_Phase1QuadProp = InitialStep.copyAndExclude([initialStepClassifier2, initialStepClassifier3])
409 _InitialStep_Phase1QuadProp.replace(initialStepHitTriplets, initialStepHitTriplets+initialStepHitQuadruplets)
410 trackingPhase1QuadProp.toReplaceWith(InitialStep, _InitialStep_Phase1QuadProp)
411 _InitialStep_Phase1 = _InitialStep_Phase1QuadProp.copyAndExclude([initialStepHitTriplets])
412 trackingPhase1.toReplaceWith(InitialStep, _InitialStep_Phase1)
413 _InitialStep_trackingPhase2 = InitialStep.copyAndExclude([initialStepClassifier1, initialStepClassifier2, initialStepClassifier3])
414 _InitialStep_trackingPhase2.replace(initialStepHitTriplets, initialStepHitQuadruplets)
415 _InitialStep_trackingPhase2.replace(initialStep, initialStepSelector)
416 trackingPhase2PU140.toReplaceWith(InitialStep, _InitialStep_trackingPhase2)
418 from Configuration.Eras.Modifier_fastSim_cff
import fastSim
419 _InitialStep_fastSim = cms.Sequence(initialStepTrackingRegions
421 +initialStepTrackCandidates
423 +firstStepPrimaryVerticesBeforeMixing
424 +initialStepClassifier1*initialStepClassifier2*initialStepClassifier3
427 fastSim.toReplaceWith(InitialStep, _InitialStep_fastSim)
def _hitSetProducerToFactoryPSet(producer)
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)