Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2022-04-22 22:55:56

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 #for dnn classifier
0006 from Configuration.ProcessModifiers.trackdnn_cff import trackdnn
0007 from RecoTracker.IterativeTracking.dnnQualityCuts import qualityCutDictionary
0008 
0009 # for no-loopers
0010 from Configuration.ProcessModifiers.trackingNoLoopers_cff import trackingNoLoopers
0011 
0012 ###############################################
0013 # Low pT and detached tracks from pixel quadruplets
0014 ###############################################
0015 
0016 # REMOVE HITS ASSIGNED TO GOOD TRACKS FROM PREVIOUS ITERATIONS
0017 detachedQuadStepClusters = _cfg.clusterRemoverForIter('DetachedQuadStep')
0018 for _eraName, _postfix, _era in _cfg.nonDefaultEras():
0019     _era.toReplaceWith(detachedQuadStepClusters, _cfg.clusterRemoverForIter('DetachedQuadStep', _eraName, _postfix))
0020 
0021 # SEEDING LAYERS
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 # TrackingRegion
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_2018_cff import highBetaStar_2018
0055 highBetaStar_2018.toModify(detachedQuadStepTrackingRegions,RegionPSet = dict(ptMin = 0.05))
0056 
0057 
0058 # seeding
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], # layer pairs (0,1), (1,2), (2,3),
0064     maxElement      = 50000000,
0065     produceIntermediateHitDoublets = True,
0066 )
0067 from RecoPixelVertexing.PixelTriplets.caHitQuadrupletEDProducer_cfi import caHitQuadrupletEDProducer as _caHitQuadrupletEDProducer
0068 from RecoPixelVertexing.PixelTriplets.pixelTripletLargeTipEDProducer_cfi import pixelTripletLargeTipEDProducer as _pixelTripletLargeTipEDProducer
0069 from RecoPixelVertexing.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_2018.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(# FIXME: is this defined in any cfi that could be imported instead of copy-paste?
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 #For FastSim phase1 tracking
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                                #new parameters required for phase1 seeding
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 # QUALITY CUTS DURING TRACK BUILDING
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 # TRACK BUILDING
0152 import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi
0153 detachedQuadStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.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 # MAKING OF TRACK CANDIDATES
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.ckfTrackCandidates.clone(
0178     src = 'detachedQuadStepSeeds',
0179     clustersToSkip = 'detachedQuadStepClusters',
0180     ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
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 #For FastSim phase1 tracking 
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 # TRACK FITTING
0227 import RecoTracker.TrackProducer.TrackProducer_cfi
0228 detachedQuadStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.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 # TRACK SELECTION AND QUALITY FLAG SETTING.
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 
0246 from RecoTracker.FinalTrackSelectors.trackTfClassifier_cfi import *
0247 from RecoTracker.FinalTrackSelectors.trackSelectionTf_cfi import *
0248 from RecoTracker.FinalTrackSelectors.trackSelectionTf_CKF_cfi import *
0249 trackdnn.toReplaceWith(detachedQuadStep, trackTfClassifier.clone(
0250     src = 'detachedQuadStepTracks',
0251     qualityCuts = qualityCutDictionary.DetachedQuadStep.value()
0252 ))
0253 
0254 
0255 highBetaStar_2018.toModify(detachedQuadStep,qualityCuts = [-0.7,0.0,0.5])
0256 pp_on_AA.toModify(detachedQuadStep, 
0257         mva         = dict(GBRForestLabel = 'HIMVASelectorDetachedQuadStep_Phase1'),
0258         qualityCuts = [-0.2, 0.2, 0.5],
0259 )
0260 
0261 fastSim.toModify(detachedQuadStep,vertices = 'firstStepPrimaryVerticesBeforeMixing')
0262 
0263 # For Phase2PU140
0264 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
0265 detachedQuadStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
0266     src = 'detachedQuadStepTracks',
0267     trackSelectors = [
0268         RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
0269             name = 'detachedQuadStepVtxLoose',
0270             chi2n_par = 1.0,
0271             res_par = ( 0.003, 0.001 ),
0272             minNumberLayers = 3,
0273             d0_par1 = ( 0.9, 3.0 ),
0274             dz_par1 = ( 0.9, 3.0 ),
0275             d0_par2 = ( 1.0, 3.0 ),
0276             dz_par2 = ( 1.0, 3.0 )
0277             ),
0278         RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
0279             name = 'detachedQuadStepTrkLoose',
0280             chi2n_par = 0.6,
0281             res_par = ( 0.003, 0.001 ),
0282             minNumberLayers = 3,
0283             d0_par1 = ( 1.3, 4.0 ),
0284             dz_par1 = ( 1.3, 4.0 ),
0285             d0_par2 = ( 1.3, 4.0 ),
0286             dz_par2 = ( 1.3, 4.0 )
0287             ),
0288         RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
0289             name = 'detachedQuadStepVtxTight',
0290             preFilterName = 'detachedQuadStepVtxLoose',
0291             chi2n_par = 0.9,
0292             res_par = ( 0.003, 0.001 ),
0293             minNumberLayers = 3,
0294             maxNumberLostLayers = 1,
0295             minNumber3DLayers = 3,
0296             d0_par1 = ( 0.9, 3.0 ),
0297             dz_par1 = ( 0.9, 3.0 ),
0298             d0_par2 = ( 0.9, 3.0 ),
0299             dz_par2 = ( 0.9, 3.0 )
0300             ),
0301         RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
0302             name = 'detachedQuadStepTrkTight',
0303             preFilterName = 'detachedQuadStepTrkLoose',
0304             chi2n_par = 0.5,
0305             res_par = ( 0.003, 0.001 ),
0306             minNumberLayers = 4,
0307             maxNumberLostLayers = 1,
0308             minNumber3DLayers = 3,
0309             d0_par1 = ( 1.1, 4.0 ),
0310             dz_par1 = ( 1.1, 4.0 ),
0311             d0_par2 = ( 1.1, 4.0 ),
0312             dz_par2 = ( 1.1, 4.0 )
0313             ),
0314         RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
0315             name = 'detachedQuadStepVtx',
0316             preFilterName = 'detachedQuadStepVtxTight',
0317             min_eta = -4.0, # it is particularly effective against fake tracks
0318             max_eta = 4.0,
0319             chi2n_par = 0.9,
0320             res_par = ( 0.003, 0.001 ),
0321             minNumberLayers = 3,
0322             maxNumberLostLayers = 1,
0323             minNumber3DLayers = 3,
0324             d0_par1 = ( 0.8, 3.0 ),
0325             dz_par1 = ( 0.8, 3.0 ),
0326             d0_par2 = ( 0.8, 3.0 ),
0327             dz_par2 = ( 0.8, 3.0 )
0328             ),
0329         RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
0330             name = 'detachedQuadStepTrk',
0331             preFilterName = 'detachedQuadStepTrkTight',
0332             min_eta = -4.0, # it is particularly effective against fake tracks
0333             max_eta = 4.0,
0334             chi2n_par = 0.5,
0335             res_par = ( 0.003, 0.001 ),
0336             minNumberLayers = 4,
0337             maxNumberLostLayers = 1,
0338             minNumber3DLayers = 3,
0339             d0_par1 = ( 0.9, 4.0 ),
0340             dz_par1 = ( 0.9, 4.0 ),
0341             d0_par2 = ( 0.9, 4.0 ),
0342             dz_par2 = ( 0.9, 4.0 )
0343             )
0344     ] #end of vpset
0345 ) #end of clone
0346 
0347 
0348 from RecoTracker.FinalTrackSelectors.trackAlgoPriorityOrder_cfi import trackAlgoPriorityOrder
0349 import RecoTracker.FinalTrackSelectors.trackListMerger_cfi
0350 trackingPhase2PU140.toReplaceWith(detachedQuadStep, RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
0351     TrackProducers     =['detachedQuadStepTracks',
0352                          'detachedQuadStepTracks'],
0353     hasSelector        =[1,1],
0354     ShareFrac          = 0.09,
0355     indivShareFrac     =[0.09,0.09],
0356     selectedTrackQuals =['detachedQuadStepSelector:detachedQuadStepVtx',
0357                          'detachedQuadStepSelector:detachedQuadStepTrk'],
0358     setsToMerge = cms.VPSet(cms.PSet( tLists=cms.vint32(0,1), pQual=cms.bool(True) )),
0359     writeOnlyTrkQuals  =True
0360     )
0361 )
0362 
0363 DetachedQuadStepTask = cms.Task(detachedQuadStepClusters,
0364                                 detachedQuadStepSeedLayers,
0365                                 detachedQuadStepTrackingRegions,
0366                                 detachedQuadStepHitDoublets,
0367                                 detachedQuadStepHitQuadruplets,
0368                                 detachedQuadStepSeeds,
0369                                 detachedQuadStepTrackCandidates,
0370                                 detachedQuadStepTracks,
0371                                 detachedQuadStep)
0372 DetachedQuadStep = cms.Sequence(DetachedQuadStepTask)
0373 
0374 _DetachedQuadStepTask_trackingMkFit = DetachedQuadStepTask.copy()
0375 _DetachedQuadStepTask_trackingMkFit.add(detachedQuadStepTrackCandidatesMkFitSeeds, detachedQuadStepTrackCandidatesMkFit, detachedQuadStepTrackCandidatesMkFitConfig)
0376 trackingMkFitDetachedQuadStep.toReplaceWith(DetachedQuadStepTask, _DetachedQuadStepTask_trackingMkFit)
0377 
0378 _DetachedQuadStepTask_Phase2PU140 = DetachedQuadStepTask.copy()
0379 _DetachedQuadStepTask_Phase2PU140.replace(detachedQuadStep, cms.Task(detachedQuadStepSelector,detachedQuadStep))
0380 trackingPhase2PU140.toReplaceWith(DetachedQuadStepTask, _DetachedQuadStepTask_Phase2PU140)
0381 
0382 #fastsim
0383 from FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi import maskProducerFromClusterRemover
0384 detachedQuadStepMasks = maskProducerFromClusterRemover(detachedQuadStepClusters)
0385 fastSim.toReplaceWith(DetachedQuadStepTask,
0386                       cms.Task(detachedQuadStepMasks
0387                                ,detachedQuadStepTrackingRegions
0388                                ,detachedQuadStepSeeds
0389                                ,detachedQuadStepTrackCandidates
0390                                ,detachedQuadStepTracks
0391                                ,detachedQuadStep
0392                                ) )