File indexing completed on 2024-10-09 23:02:43
0001 import FWCore.ParameterSet.Config as cms
0002 import RecoTracker.IterativeTracking.iterativeTkConfig as _cfg
0003 from Configuration.Eras.Modifier_fastSim_cff import fastSim
0004
0005
0006 from Configuration.ProcessModifiers.trackdnn_cff import trackdnn
0007 from RecoTracker.IterativeTracking.dnnQualityCuts import qualityCutDictionary
0008
0009
0010 from Configuration.ProcessModifiers.trackingNoLoopers_cff import trackingNoLoopers
0011
0012
0013
0014
0015
0016
0017 detachedQuadStepClusters = _cfg.clusterRemoverForIter('DetachedQuadStep')
0018 for _eraName, _postfix, _era in _cfg.nonDefaultEras():
0019 _era.toReplaceWith(detachedQuadStepClusters, _cfg.clusterRemoverForIter('DetachedQuadStep', _eraName, _postfix))
0020
0021
0022 import RecoTracker.TkSeedingLayers.PixelLayerQuadruplets_cfi
0023 detachedQuadStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerQuadruplets_cfi.PixelLayerQuadruplets.clone(
0024 BPix = dict(skipClusters = cms.InputTag('detachedQuadStepClusters')),
0025 FPix = dict(skipClusters = cms.InputTag('detachedQuadStepClusters'))
0026 )
0027
0028
0029 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpotFixedZ_cfi import globalTrackingRegionFromBeamSpotFixedZ as _globalTrackingRegionFromBeamSpotFixedZ
0030 detachedQuadStepTrackingRegions = _globalTrackingRegionFromBeamSpotFixedZ.clone(RegionPSet = dict(
0031 ptMin = 0.3,
0032 originHalfLength = 15.0,
0033 originRadius = 1.5
0034 ))
0035 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpot_cfi import globalTrackingRegionFromBeamSpot as _globalTrackingRegionFromBeamSpot
0036 from Configuration.Eras.Modifier_trackingPhase2PU140_cff import trackingPhase2PU140
0037 trackingPhase2PU140.toReplaceWith(detachedQuadStepTrackingRegions, _globalTrackingRegionFromBeamSpot.clone(RegionPSet = dict(
0038 ptMin = 0.45,
0039 originRadius = 0.9,
0040 nSigmaZ = 5.0
0041 )))
0042
0043 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff import pp_on_XeXe_2017
0044 from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA
0045 from RecoTracker.TkTrackingRegions.globalTrackingRegionWithVertices_cff import globalTrackingRegionWithVertices as _globalTrackingRegionWithVertices
0046 (pp_on_XeXe_2017 | pp_on_AA).toReplaceWith(detachedQuadStepTrackingRegions,
0047 _globalTrackingRegionWithVertices.clone(RegionPSet=dict(
0048 fixedError = 3.75,
0049 ptMin = 0.9,
0050 originRadius = 1.5
0051 )
0052 )
0053 )
0054 from Configuration.Eras.Modifier_highBetaStar_cff import highBetaStar
0055 highBetaStar.toModify(detachedQuadStepTrackingRegions,RegionPSet = dict(ptMin = 0.05))
0056
0057
0058
0059 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi import hitPairEDProducer as _hitPairEDProducer
0060 detachedQuadStepHitDoublets = _hitPairEDProducer.clone(
0061 seedingLayers = 'detachedQuadStepSeedLayers',
0062 trackingRegions = 'detachedQuadStepTrackingRegions',
0063 layerPairs = [0,1,2],
0064 maxElement = 50000000,
0065 produceIntermediateHitDoublets = True,
0066 )
0067 from RecoTracker.PixelSeeding.caHitQuadrupletEDProducer_cfi import caHitQuadrupletEDProducer as _caHitQuadrupletEDProducer
0068 from RecoTracker.PixelSeeding.pixelTripletLargeTipEDProducer_cfi import pixelTripletLargeTipEDProducer as _pixelTripletLargeTipEDProducer
0069 from RecoTracker.PixelLowPtUtilities.ClusterShapeHitFilterESProducer_cfi import *
0070 detachedQuadStepHitQuadruplets = _caHitQuadrupletEDProducer.clone(
0071 doublets = 'detachedQuadStepHitDoublets',
0072 extraHitRPhitolerance = _pixelTripletLargeTipEDProducer.extraHitRPhitolerance,
0073 maxChi2 = dict(
0074 pt1 = 0.8, pt2 = 2,
0075 value1 = 500, value2 = 100,
0076 ),
0077 useBendingCorrection = True,
0078 fitFastCircle = True,
0079 fitFastCircleChi2Cut = True,
0080 CAThetaCut = 0.0011,
0081 CAPhiCut = 0,
0082 )
0083 highBetaStar.toModify(detachedQuadStepHitQuadruplets,CAThetaCut = 0.0022,CAPhiCut = 0.1)
0084
0085 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer_cff import seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer as _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
0086 detachedQuadStepSeeds = _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer.clone(
0087 seedingHitSets = 'detachedQuadStepHitQuadruplets',
0088 SeedComparitorPSet = dict(
0089 ComponentName = 'PixelClusterShapeSeedComparitor',
0090 FilterAtHelixStage = cms.bool(False),
0091 FilterPixelHits = cms.bool(True),
0092 FilterStripHits = cms.bool(False),
0093 ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter'),
0094 ClusterShapeCacheSrc = cms.InputTag('siPixelClusterShapeCache')
0095 ),
0096 )
0097
0098
0099 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
0100 from FastSimulation.Tracking.SeedingMigration import _hitSetProducerToFactoryPSet
0101 _fastSim_detachedQuadStepSeeds = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
0102 trackingRegions = 'detachedQuadStepTrackingRegions',
0103 hitMasks = cms.InputTag('detachedQuadStepMasks'),
0104 seedFinderSelector = dict( CAHitQuadrupletGeneratorFactory = _hitSetProducerToFactoryPSet(detachedQuadStepHitQuadruplets).clone(
0105 SeedComparitorPSet = dict(ComponentName = 'none')),
0106 layerList = detachedQuadStepSeedLayers.layerList.value(),
0107
0108 BPix = dict(TTRHBuilder = 'WithoutRefit', HitProducer = 'TrackingRecHitProducer',),
0109 FPix = dict(TTRHBuilder = 'WithoutRefit', HitProducer = 'TrackingRecHitProducer',),
0110 layerPairs = detachedQuadStepHitDoublets.layerPairs.value()
0111 ))
0112 fastSim.toReplaceWith(detachedQuadStepSeeds,_fastSim_detachedQuadStepSeeds)
0113
0114
0115 import TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff as _TrajectoryFilter_cff
0116 _detachedQuadStepTrajectoryFilterBase = _TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
0117 minimumNumberOfHits = 3,
0118 minPt = 0.075,
0119 )
0120 detachedQuadStepTrajectoryFilterBase = _detachedQuadStepTrajectoryFilterBase.clone(
0121 maxCCCLostHits = 0,
0122 minGoodStripCharge = dict(refToPSet_ = 'SiStripClusterChargeCutLoose')
0123 )
0124 trackingPhase2PU140.toReplaceWith(detachedQuadStepTrajectoryFilterBase,
0125 _detachedQuadStepTrajectoryFilterBase.clone(
0126 maxLostHitsFraction = 1./10.,
0127 constantValueForLostHitsFractionFilter = 0.301,
0128 )
0129 )
0130 detachedQuadStepTrajectoryFilter = _TrajectoryFilter_cff.CompositeTrajectoryFilter_block.clone(
0131 filters = [cms.PSet(refToPSet_ = cms.string('detachedQuadStepTrajectoryFilterBase'))]
0132 )
0133 trackingPhase2PU140.toModify(detachedQuadStepTrajectoryFilter,
0134 filters = detachedQuadStepTrajectoryFilter.filters.value()+[cms.PSet(refToPSet_ = cms.string('ClusterShapeTrajectoryFilter'))]
0135 )
0136
0137 (pp_on_XeXe_2017 | pp_on_AA).toModify(detachedQuadStepTrajectoryFilterBase, minPt=0.9)
0138
0139 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
0140 detachedQuadStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
0141 ComponentName = 'detachedQuadStepChi2Est',
0142 nSigma = 3.0,
0143 MaxChi2 = 9.0,
0144 clusterChargeCut = dict(refToPSet_ = 'SiStripClusterChargeCutTight'),
0145 )
0146 trackingPhase2PU140.toModify(detachedQuadStepChi2Est,
0147 MaxChi2 = 12.0,
0148 clusterChargeCut = dict(refToPSet_ = 'SiStripClusterChargeCutNone')
0149 )
0150
0151
0152 import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi
0153 detachedQuadStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilderIterativeDefault.clone(
0154 trajectoryFilter = dict(refToPSet_ = 'detachedQuadStepTrajectoryFilter'),
0155 maxCand = 3,
0156 alwaysUseInvalidHits = True,
0157 estimator = 'detachedQuadStepChi2Est',
0158 maxDPhiForLooperReconstruction = 2.0,
0159 maxPtForLooperReconstruction = 0.7,
0160 )
0161 trackingNoLoopers.toModify(detachedQuadStepTrajectoryBuilder,
0162 maxPtForLooperReconstruction = 0.0)
0163 trackingPhase2PU140.toModify(detachedQuadStepTrajectoryBuilder,
0164 maxCand = 2,
0165 alwaysUseInvalidHits = False,
0166 )
0167
0168
0169 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
0170 detachedQuadStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
0171 ComponentName = 'detachedQuadStepTrajectoryCleanerBySharedHits',
0172 fractionShared = 0.13,
0173 allowSharedFirstHit = True
0174 )
0175
0176 import RecoTracker.CkfPattern.CkfTrackCandidates_cfi
0177 detachedQuadStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidatesIterativeDefault.clone(
0178 src = 'detachedQuadStepSeeds',
0179 clustersToSkip = 'detachedQuadStepClusters',
0180
0181 numHitsForSeedCleaner = 50,
0182 onlyPixelHitsForSeedCleaner = True,
0183 TrajectoryBuilderPSet = dict(refToPSet_ = 'detachedQuadStepTrajectoryBuilder'),
0184 TrajectoryCleaner = 'detachedQuadStepTrajectoryCleanerBySharedHits',
0185 doSeedingRegionRebuilding = True,
0186 useHitsSplitting = True,
0187 )
0188 trackingPhase2PU140.toModify(detachedQuadStepTrackCandidates,
0189 clustersToSkip = '',
0190 phase2clustersToSkip = 'detachedQuadStepClusters'
0191 )
0192
0193 from Configuration.ProcessModifiers.trackingMkFitDetachedQuadStep_cff import trackingMkFitDetachedQuadStep
0194 import RecoTracker.MkFit.mkFitSeedConverter_cfi as mkFitSeedConverter_cfi
0195 import RecoTracker.MkFit.mkFitIterationConfigESProducer_cfi as mkFitIterationConfigESProducer_cfi
0196 import RecoTracker.MkFit.mkFitProducer_cfi as mkFitProducer_cfi
0197 import RecoTracker.MkFit.mkFitOutputConverter_cfi as mkFitOutputConverter_cfi
0198 detachedQuadStepTrackCandidatesMkFitSeeds = mkFitSeedConverter_cfi.mkFitSeedConverter.clone(
0199 seeds = 'detachedQuadStepSeeds',
0200 )
0201 detachedQuadStepTrackCandidatesMkFitConfig = mkFitIterationConfigESProducer_cfi.mkFitIterationConfigESProducer.clone(
0202 config = 'RecoTracker/MkFit/data/mkfit-phase1-detachedQuadStep.json',
0203 ComponentName = 'detachedQuadStepTrackCandidatesMkFitConfig',
0204 )
0205 detachedQuadStepTrackCandidatesMkFit = mkFitProducer_cfi.mkFitProducer.clone(
0206 seeds = 'detachedQuadStepTrackCandidatesMkFitSeeds',
0207 config = ('', 'detachedQuadStepTrackCandidatesMkFitConfig'),
0208 clustersToSkip = 'detachedQuadStepClusters',
0209 )
0210 trackingMkFitDetachedQuadStep.toReplaceWith(detachedQuadStepTrackCandidates, mkFitOutputConverter_cfi.mkFitOutputConverter.clone(
0211 seeds = 'detachedQuadStepSeeds',
0212 mkFitSeeds = 'detachedQuadStepTrackCandidatesMkFitSeeds',
0213 tracks = 'detachedQuadStepTrackCandidatesMkFit',
0214 ))
0215 (pp_on_XeXe_2017 | pp_on_AA).toModify(detachedQuadStepTrackCandidatesMkFitConfig, minPt=0.9)
0216
0217
0218 import FastSimulation.Tracking.TrackCandidateProducer_cfi
0219 _fastSim_detachedQuadStepTrackCandidates = FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
0220 src = 'detachedQuadStepSeeds',
0221 MinNumberOfCrossedLayers = 4,
0222 hitMasks = cms.InputTag('detachedQuadStepMasks')
0223 )
0224 fastSim.toReplaceWith(detachedQuadStepTrackCandidates,_fastSim_detachedQuadStepTrackCandidates)
0225
0226
0227 import RecoTracker.TrackProducer.TrackProducerIterativeDefault_cfi
0228 detachedQuadStepTracks = RecoTracker.TrackProducer.TrackProducerIterativeDefault_cfi.TrackProducerIterativeDefault.clone(
0229 AlgorithmName = 'detachedQuadStep',
0230 src = 'detachedQuadStepTrackCandidates',
0231 Fitter = 'FlexibleKFFittingSmoother',
0232 )
0233 fastSim.toModify(detachedQuadStepTracks,TTRHBuilder = 'WithoutRefit')
0234
0235 from Configuration.Eras.Modifier_phase2_timing_layer_cff import phase2_timing_layer
0236 phase2_timing_layer.toModify(detachedQuadStepTracks, TrajectoryInEvent = True)
0237
0238
0239 from RecoTracker.FinalTrackSelectors.TrackMVAClassifierDetached_cfi import *
0240 detachedQuadStep = TrackMVAClassifierDetached.clone(
0241 mva = dict(GBRForestLabel = 'MVASelectorDetachedQuadStep_Phase1'),
0242 src = 'detachedQuadStepTracks',
0243 qualityCuts = [-0.5,0.0,0.5]
0244 )
0245 pp_on_AA.toModify(detachedQuadStep,
0246 mva = dict(GBRForestLabel = 'HIMVASelectorDetachedQuadStep_Phase1'),
0247 qualityCuts = [-0.2, 0.2, 0.5],
0248 )
0249
0250 from RecoTracker.FinalTrackSelectors.trackTfClassifier_cfi import *
0251 from RecoTracker.FinalTrackSelectors.trackSelectionTf_cfi import *
0252 from RecoTracker.FinalTrackSelectors.trackSelectionTf_CKF_cfi import *
0253 trackdnn.toReplaceWith(detachedQuadStep, trackTfClassifier.clone(
0254 src = 'detachedQuadStepTracks',
0255 qualityCuts = qualityCutDictionary.DetachedQuadStep.value()
0256 ))
0257
0258
0259 highBetaStar.toModify(detachedQuadStep,qualityCuts = [-0.7,0.0,0.5])
0260
0261 (pp_on_AA & trackdnn).toModify(detachedQuadStep, qualityCuts = [-0.63, 0.5, 0.94] )
0262
0263 fastSim.toModify(detachedQuadStep,vertices = 'firstStepPrimaryVerticesBeforeMixing')
0264
0265
0266 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
0267 detachedQuadStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
0268 src = 'detachedQuadStepTracks',
0269 trackSelectors = [
0270 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
0271 name = 'detachedQuadStepVtxLoose',
0272 chi2n_par = 1.0,
0273 res_par = ( 0.003, 0.001 ),
0274 minNumberLayers = 3,
0275 d0_par1 = ( 0.9, 3.0 ),
0276 dz_par1 = ( 0.9, 3.0 ),
0277 d0_par2 = ( 1.0, 3.0 ),
0278 dz_par2 = ( 1.0, 3.0 )
0279 ),
0280 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
0281 name = 'detachedQuadStepTrkLoose',
0282 chi2n_par = 0.6,
0283 res_par = ( 0.003, 0.001 ),
0284 minNumberLayers = 3,
0285 d0_par1 = ( 1.3, 4.0 ),
0286 dz_par1 = ( 1.3, 4.0 ),
0287 d0_par2 = ( 1.3, 4.0 ),
0288 dz_par2 = ( 1.3, 4.0 )
0289 ),
0290 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
0291 name = 'detachedQuadStepVtxTight',
0292 preFilterName = 'detachedQuadStepVtxLoose',
0293 chi2n_par = 0.9,
0294 res_par = ( 0.003, 0.001 ),
0295 minNumberLayers = 3,
0296 maxNumberLostLayers = 1,
0297 minNumber3DLayers = 3,
0298 d0_par1 = ( 0.9, 3.0 ),
0299 dz_par1 = ( 0.9, 3.0 ),
0300 d0_par2 = ( 0.9, 3.0 ),
0301 dz_par2 = ( 0.9, 3.0 )
0302 ),
0303 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
0304 name = 'detachedQuadStepTrkTight',
0305 preFilterName = 'detachedQuadStepTrkLoose',
0306 chi2n_par = 0.5,
0307 res_par = ( 0.003, 0.001 ),
0308 minNumberLayers = 4,
0309 maxNumberLostLayers = 1,
0310 minNumber3DLayers = 3,
0311 d0_par1 = ( 1.1, 4.0 ),
0312 dz_par1 = ( 1.1, 4.0 ),
0313 d0_par2 = ( 1.1, 4.0 ),
0314 dz_par2 = ( 1.1, 4.0 )
0315 ),
0316 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
0317 name = 'detachedQuadStepVtx',
0318 preFilterName = 'detachedQuadStepVtxTight',
0319 min_eta = -4.0,
0320 max_eta = 4.0,
0321 chi2n_par = 0.9,
0322 res_par = ( 0.003, 0.001 ),
0323 minNumberLayers = 3,
0324 maxNumberLostLayers = 1,
0325 minNumber3DLayers = 3,
0326 d0_par1 = ( 0.8, 3.0 ),
0327 dz_par1 = ( 0.8, 3.0 ),
0328 d0_par2 = ( 0.8, 3.0 ),
0329 dz_par2 = ( 0.8, 3.0 )
0330 ),
0331 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
0332 name = 'detachedQuadStepTrk',
0333 preFilterName = 'detachedQuadStepTrkTight',
0334 min_eta = -4.0,
0335 max_eta = 4.0,
0336 chi2n_par = 0.5,
0337 res_par = ( 0.003, 0.001 ),
0338 minNumberLayers = 4,
0339 maxNumberLostLayers = 1,
0340 minNumber3DLayers = 3,
0341 d0_par1 = ( 0.9, 4.0 ),
0342 dz_par1 = ( 0.9, 4.0 ),
0343 d0_par2 = ( 0.9, 4.0 ),
0344 dz_par2 = ( 0.9, 4.0 )
0345 )
0346 ]
0347 )
0348
0349
0350 from RecoTracker.FinalTrackSelectors.trackAlgoPriorityOrder_cfi import trackAlgoPriorityOrder
0351 import RecoTracker.FinalTrackSelectors.trackListMerger_cfi
0352 trackingPhase2PU140.toReplaceWith(detachedQuadStep, RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
0353 TrackProducers =['detachedQuadStepTracks',
0354 'detachedQuadStepTracks'],
0355 hasSelector =[1,1],
0356 ShareFrac = 0.09,
0357 indivShareFrac =[0.09,0.09],
0358 selectedTrackQuals =['detachedQuadStepSelector:detachedQuadStepVtx',
0359 'detachedQuadStepSelector:detachedQuadStepTrk'],
0360 setsToMerge = cms.VPSet(cms.PSet( tLists=cms.vint32(0,1), pQual=cms.bool(True) )),
0361 writeOnlyTrkQuals =True
0362 )
0363 )
0364
0365 DetachedQuadStepTask = cms.Task(detachedQuadStepClusters,
0366 detachedQuadStepSeedLayers,
0367 detachedQuadStepTrackingRegions,
0368 detachedQuadStepHitDoublets,
0369 detachedQuadStepHitQuadruplets,
0370 detachedQuadStepSeeds,
0371 detachedQuadStepTrackCandidates,
0372 detachedQuadStepTracks,
0373 detachedQuadStep)
0374 DetachedQuadStep = cms.Sequence(DetachedQuadStepTask)
0375
0376 _DetachedQuadStepTask_trackingMkFit = DetachedQuadStepTask.copy()
0377 _DetachedQuadStepTask_trackingMkFit.add(detachedQuadStepTrackCandidatesMkFitSeeds, detachedQuadStepTrackCandidatesMkFit, detachedQuadStepTrackCandidatesMkFitConfig)
0378 trackingMkFitDetachedQuadStep.toReplaceWith(DetachedQuadStepTask, _DetachedQuadStepTask_trackingMkFit)
0379
0380 _DetachedQuadStepTask_Phase2PU140 = DetachedQuadStepTask.copy()
0381 _DetachedQuadStepTask_Phase2PU140.replace(detachedQuadStep, cms.Task(detachedQuadStepSelector,detachedQuadStep))
0382 trackingPhase2PU140.toReplaceWith(DetachedQuadStepTask, _DetachedQuadStepTask_Phase2PU140)
0383
0384
0385 from FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi import maskProducerFromClusterRemover
0386 detachedQuadStepMasks = maskProducerFromClusterRemover(detachedQuadStepClusters)
0387 fastSim.toReplaceWith(DetachedQuadStepTask,
0388 cms.Task(detachedQuadStepMasks
0389 ,detachedQuadStepTrackingRegions
0390 ,detachedQuadStepSeeds
0391 ,detachedQuadStepTrackCandidates
0392 ,detachedQuadStepTracks
0393 ,detachedQuadStep
0394 ) )