File indexing completed on 2024-11-19 23:20:19
0001 import FWCore.ParameterSet.Config as cms
0002
0003 from RecoTracker.TkSeedingLayers.seedingLayersEDProducer_cfi import *
0004
0005 from RecoTracker.ConversionSeedGenerators.PhotonConversionTrajectorySeedProducerFromSingleLeg_cfi import *
0006 from RecoTracker.ConversionSeedGenerators.ConversionStep2_cff import *
0007
0008 from RecoLocalTracker.SubCollectionProducers.trackClusterRemover_cfi import trackClusterRemover as _trackClusterRemover
0009 _convClustersBase = _trackClusterRemover.clone(
0010 maxChi2 = 30.0,
0011 trajectories = 'tobTecStepTracks',
0012 pixelClusters = 'siPixelClusters',
0013 stripClusters = 'siStripClusters',
0014 oldClusterRemovalInfo = 'tobTecStepClusters',
0015 TrackQuality = 'highPurity'
0016 )
0017
0018 convClusters = _convClustersBase.clone(
0019 trackClassifier = 'tobTecStep:QualityMasks',
0020 )
0021
0022
0023
0024 from RecoLocalTracker.SubCollectionProducers.phase2trackClusterRemover_cfi import phase2trackClusterRemover as _phase2trackClusterRemover
0025 from Configuration.Eras.Modifier_trackingPhase2PU140_cff import trackingPhase2PU140
0026 trackingPhase2PU140.toReplaceWith(convClusters, _phase2trackClusterRemover.clone(
0027 maxChi2 = 30.0,
0028 phase2pixelClusters = 'siPixelClusters',
0029 phase2OTClusters = 'siPhase2Clusters',
0030 TrackQuality = 'highPurity',
0031 minNumberOfLayersWithMeasBeforeFiltering = 0,
0032 trajectories = 'detachedQuadStepTracks',
0033 oldClusterRemovalInfo = 'detachedQuadStepClusters',
0034 overrideTrkQuals = 'detachedQuadStepSelector:detachedQuadStepTrk'
0035 ))
0036 from Configuration.ProcessModifiers.trackingIters01_cff import trackingIters01
0037 trackingIters01.toModify(convClusters,
0038 trajectories = "highPtTripletStepTracks",
0039 oldClusterRemovalInfo = "highPtTripletStepClusters",
0040 overrideTrkQuals = "highPtTripletStepSelector:highPtTripletStep"
0041 )
0042 from Configuration.ProcessModifiers.trackingLST_cff import trackingLST
0043 (trackingIters01 & trackingPhase2PU140 & trackingLST).toModify(convClusters,
0044 overrideTrkQuals = ""
0045 )
0046
0047 _convLayerPairsStripOnlyLayers = ['TIB1+TID1_pos',
0048 'TIB1+TID1_neg',
0049 'TIB1+TID2_pos',
0050 'TIB1+TID2_neg',
0051 'TIB1+TIB2',
0052 'TIB1+MTIB3',
0053
0054 'TIB2+TID1_pos',
0055 'TIB2+TID1_neg',
0056 'TIB2+TID2_pos',
0057 'TIB2+TID2_neg',
0058 'TIB2+MTIB3',
0059 'TIB2+MTIB4',
0060
0061 'MTIB3+MTIB4',
0062 'MTIB3+TOB1',
0063 'MTIB3+TID1_pos',
0064 'MTIB3+TID1_neg',
0065
0066 'MTIB4+TOB1',
0067 'MTIB4+TOB2',
0068
0069 'TOB1+TOB2',
0070 'TOB1+MTOB3',
0071 'TOB1+TEC1_pos',
0072 'TOB1+TEC1_neg',
0073
0074 'TOB2+MTOB3',
0075 'TOB2+MTOB4',
0076 'TOB2+TEC1_pos',
0077 'TOB2+TEC1_neg',
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092 'TID1_pos+TID2_pos',
0093 'TID2_pos+TID3_pos',
0094 'TID3_pos+TEC1_pos',
0095
0096 'TID1_neg+TID2_neg',
0097 'TID2_neg+TID3_neg',
0098 'TID3_neg+TEC1_neg',
0099
0100 'TEC1_pos+TEC2_pos',
0101 'TEC2_pos+TEC3_pos',
0102 'TEC3_pos+TEC4_pos',
0103 'TEC4_pos+TEC5_pos',
0104 'TEC5_pos+TEC6_pos',
0105 'TEC6_pos+TEC7_pos',
0106 'TEC7_pos+TEC8_pos',
0107
0108 'TEC1_neg+TEC2_neg',
0109 'TEC2_neg+TEC3_neg',
0110 'TEC3_neg+TEC4_neg',
0111 'TEC4_neg+TEC5_neg',
0112 'TEC5_neg+TEC6_neg',
0113 'TEC6_neg+TEC7_neg',
0114 'TEC7_neg+TEC8_neg']
0115
0116 _convLayerPairsLayerList = _convLayerPairsStripOnlyLayers
0117 _convLayerPairsLayerList =['BPix1+BPix2',
0118
0119 'BPix2+BPix3',
0120 'BPix2+FPix1_pos',
0121 'BPix2+FPix1_neg',
0122 'BPix2+FPix2_pos',
0123 'BPix2+FPix2_neg',
0124
0125 'FPix1_pos+FPix2_pos',
0126 'FPix1_neg+FPix2_neg',
0127
0128 'BPix3+TIB1',
0129 'BPix3+TIB2']
0130 _convLayerPairsLayerList.extend(_convLayerPairsStripOnlyLayers)
0131
0132
0133 import RecoTracker.TkSeedingLayers.seedingLayersEDProducer_cfi as _mod
0134
0135 convLayerPairs = _mod.seedingLayersEDProducer.clone(
0136 layerList = _convLayerPairsLayerList,
0137 BPix = dict(
0138 TTRHBuilder = cms.string('WithTrackAngle'),
0139 HitProducer = cms.string('siPixelRecHits'),
0140 skipClusters = cms.InputTag('convClusters'),
0141 ),
0142 FPix = dict(
0143 TTRHBuilder = cms.string('WithTrackAngle'),
0144 HitProducer = cms.string('siPixelRecHits'),
0145 skipClusters = cms.InputTag('convClusters'),
0146 ),
0147 TIB = dict(
0148 TTRHBuilder = cms.string('WithTrackAngle'),
0149 clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
0150 matchedRecHits = cms.InputTag('siStripMatchedRecHits','matchedRecHit'),
0151 skipClusters = cms.InputTag('convClusters'),
0152 ),
0153 MTIB = dict(
0154 TTRHBuilder = cms.string('WithTrackAngle'),
0155 clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
0156 rphiRecHits = cms.InputTag('siStripMatchedRecHits','rphiRecHit'),
0157 skipClusters = cms.InputTag('convClusters'),
0158 ),
0159 TID = dict(
0160 useSimpleRphiHitsCleaner = cms.bool(False),
0161 matchedRecHits = cms.InputTag('siStripMatchedRecHits','matchedRecHit'),
0162 useRingSlector = cms.bool(True),
0163 TTRHBuilder = cms.string('WithTrackAngle'),
0164 clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
0165 maxRing = cms.int32(2),
0166 minRing = cms.int32(1),
0167 skipClusters = cms.InputTag('convClusters'),
0168 ),
0169 TEC = dict(
0170 useSimpleRphiHitsCleaner = cms.bool(False),
0171 minRing = cms.int32(1),
0172 matchedRecHits = cms.InputTag('siStripMatchedRecHits','matchedRecHit'),
0173 useRingSlector = cms.bool(True),
0174 TTRHBuilder = cms.string('WithTrackAngle'),
0175 clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
0176 rphiRecHits = cms.InputTag('siStripMatchedRecHits','rphiRecHitUnmatched'),
0177 maxRing = cms.int32(7),
0178 stereoRecHits = cms.InputTag('siStripMatchedRecHits','stereoRecHitUnmatched'),
0179 skipClusters = cms.InputTag('convClusters'),
0180 ),
0181 TOB = dict(
0182 matchedRecHits = cms.InputTag('siStripMatchedRecHits','matchedRecHit'),
0183 TTRHBuilder = cms.string('WithTrackAngle'),
0184 clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
0185 skipClusters = cms.InputTag('convClusters'),
0186 ),
0187 MTOB = dict(
0188 TTRHBuilder = cms.string('WithTrackAngle'),
0189 clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
0190 rphiRecHits = cms.InputTag('siStripMatchedRecHits','rphiRecHit'),
0191 skipClusters = cms.InputTag('convClusters'),
0192 ),
0193 )
0194
0195
0196
0197
0198 _convLayerPairsLayerListPhaseI = ['BPix1+BPix2',
0199
0200 'BPix2+BPix3',
0201 'BPix3+BPix4',
0202
0203 'BPix2+FPix1_pos',
0204 'BPix2+FPix1_neg',
0205 'BPix2+FPix2_pos',
0206 'BPix2+FPix2_neg',
0207 'BPix3+FPix1_pos',
0208 'BPix3+FPix1_neg',
0209
0210 'FPix1_pos+FPix2_pos',
0211 'FPix1_neg+FPix2_neg',
0212
0213 'FPix2_pos+FPix3_pos',
0214 'FPix2_neg+FPix3_neg',
0215
0216 'BPix3+TIB1',
0217
0218 'BPix4+TIB1',
0219 'BPix4+TIB2',
0220 ]
0221 _convLayerPairsLayerListPhaseI.extend(_convLayerPairsStripOnlyLayers)
0222
0223 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
0224 trackingPhase1.toModify(convLayerPairs, layerList = _convLayerPairsLayerListPhaseI)
0225
0226
0227 trackingPhase2PU140.toReplaceWith(convLayerPairs, cms.EDProducer('SeedingLayersEDProducer',
0228 layerList = cms.vstring('BPix1+BPix2',
0229 'BPix2+BPix3',
0230 'BPix3+BPix4',
0231
0232 'BPix1+FPix1_pos',
0233 'BPix1+FPix1_neg',
0234 'BPix2+FPix1_pos',
0235 'BPix2+FPix1_neg',
0236 'BPix3+FPix1_pos',
0237 'BPix3+FPix1_neg',
0238
0239 'FPix1_pos+FPix2_pos',
0240 'FPix1_neg+FPix2_neg',
0241 'FPix2_pos+FPix3_pos',
0242 'FPix2_neg+FPix3_neg'
0243 ),
0244
0245 BPix = cms.PSet(
0246 hitErrorRZ = cms.double(0.006),
0247 hitErrorRPhi = cms.double(0.0027),
0248 TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'),
0249 HitProducer = cms.string('siPixelRecHits'),
0250 useErrorsFromParam = cms.bool(True),
0251 skipClusters = cms.InputTag('convClusters'),
0252 ),
0253 FPix = cms.PSet(
0254 hitErrorRZ = cms.double(0.0036),
0255 hitErrorRPhi = cms.double(0.0051),
0256 TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4PixelPairs'),
0257 HitProducer = cms.string('siPixelRecHits'),
0258 useErrorsFromParam = cms.bool(True),
0259 skipClusters = cms.InputTag('convClusters'),
0260 )
0261 )
0262 )
0263
0264 photonConvTrajSeedFromSingleLeg.TrackRefitter = 'generalTracks'
0265 photonConvTrajSeedFromSingleLeg.primaryVerticesTag = 'firstStepPrimaryVertices'
0266
0267
0268 from Configuration.Eras.Modifier_trackingLowPU_cff import trackingLowPU
0269 trackingLowPU.toModify(photonConvTrajSeedFromSingleLeg, primaryVerticesTag = 'pixelVertices')
0270 from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA
0271 pp_on_AA.toModify(photonConvTrajSeedFromSingleLeg, vtxMinDoF = 999999.)
0272
0273
0274
0275
0276 import TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff
0277 convCkfTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
0278 maxLostHits = 1,
0279 minimumNumberOfHits = 3,
0280 minPt = 0.1
0281 )
0282
0283
0284 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
0285 convStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
0286 ComponentName = 'convStepChi2Est',
0287 nSigma = 3.0,
0288 MaxChi2 = 30.0,
0289 MaxDisplacement = 100,
0290 MaxSagitta = -1.,
0291 clusterChargeCut = dict(refToPSet_ = 'SiStripClusterChargeCutTight')
0292 )
0293
0294
0295
0296 import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi
0297 _convCkfTrajectoryBuilderBase = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
0298 trajectoryFilter = dict(refToPSet_ = 'convCkfTrajectoryFilter'),
0299 minNrOfHitsForRebuild = 3,
0300 maxCand = 1
0301 )
0302
0303 convCkfTrajectoryBuilder = _convCkfTrajectoryBuilderBase.clone(
0304 estimator = 'convStepChi2Est'
0305 )
0306
0307 trackingPhase2PU140.toReplaceWith(convCkfTrajectoryBuilder, _convCkfTrajectoryBuilderBase.clone(
0308 maxCand = 2
0309 ))
0310
0311
0312 import RecoTracker.CkfPattern.CkfTrackCandidates_cfi
0313 convTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
0314 src = 'photonConvTrajSeedFromSingleLeg:convSeedCandidates',
0315 clustersToSkip = 'convClusters',
0316 TrajectoryBuilderPSet = dict(refToPSet_ = 'convCkfTrajectoryBuilder')
0317 )
0318
0319 trackingPhase2PU140.toModify(convTrackCandidates,
0320 clustersToSkip = '',
0321 phase2clustersToSkip = 'convClusters'
0322 )
0323
0324 import TrackingTools.TrackFitters.RungeKuttaFitters_cff
0325 convStepFitterSmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.KFFittingSmootherWithOutliersRejectionAndRK.clone(
0326 ComponentName = 'convStepFitterSmoother',
0327 EstimateCut = 30,
0328 Smoother = 'convStepRKSmoother'
0329 )
0330
0331 convStepRKTrajectorySmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectorySmoother.clone(
0332 ComponentName = 'convStepRKSmoother',
0333 errorRescaling = 10.0
0334 )
0335
0336
0337
0338 import RecoTracker.TrackProducer.TrackProducer_cfi
0339 convStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
0340 src = 'convTrackCandidates',
0341 AlgorithmName = 'conversionStep',
0342 Fitter = 'convStepFitterSmoother'
0343 )
0344
0345
0346 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
0347 convStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
0348 src='convStepTracks',
0349 trackSelectors= cms.VPSet(
0350 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
0351 name = 'convStepLoose',
0352 applyAdaptedPVCuts = False,
0353 chi2n_par = 3.0,
0354 res_par = ( 0.003, 0.001 ),
0355 minNumberLayers = 3,
0356 maxNumberLostLayers = 1,
0357 minNumber3DLayers = 1,
0358 d0_par1 = ( 5., 8.0 ),
0359 dz_par1 = ( 5., 8.0 ),
0360 d0_par2 = ( 5., 8.0 ),
0361 dz_par2 = ( 5., 8.0 )
0362 ),
0363 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
0364 name = 'convStepTight',
0365 preFilterName = 'convStepLoose',
0366 chi2n_par = 2.5,
0367 res_par = ( 0.003, 0.001 ),
0368 minNumberLayers = 3,
0369 maxNumberLostLayers = 1,
0370 minNumber3DLayers = 1,
0371 d0_par1 = ( 5., 8.0 ),
0372 dz_par1 = ( 5., 8.0 ),
0373 d0_par2 = ( 5., 8.0 ),
0374 dz_par2 = ( 5., 8.0 )
0375 ),
0376 RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
0377 name = 'convStep',
0378 preFilterName = 'convStepTight',
0379 chi2n_par = 2.0,
0380 res_par = ( 0.003, 0.001 ),
0381 minNumberLayers = 3,
0382 maxNumberLostLayers = 1,
0383 minNumber3DLayers = 1,
0384 d0_par1 = ( 5., 8.0 ),
0385 dz_par1 = ( 5., 8.0 ),
0386 d0_par2 = ( 5., 8.0 ),
0387 dz_par2 = ( 5., 8.0 )
0388 ),
0389 )
0390 )
0391
0392 ConvStepTask = cms.Task( convClusters
0393 , convLayerPairs
0394 , photonConvTrajSeedFromSingleLeg
0395 , convTrackCandidates
0396 , convStepTracks
0397 , convStepSelector
0398
0399 )
0400 ConvStep = cms.Sequence( ConvStepTask )
0401
0402
0403
0404
0405
0406
0407
0408
0409
0410
0411
0412
0413
0414
0415
0416
0417
0418
0419
0420
0421
0422
0423
0424
0425
0426