Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:28:09

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 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_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.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 # 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.ckfTrackCandidatesIterativeDefault.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.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 # 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 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_2018.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 # For Phase2PU140
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, # it is particularly effective against fake tracks
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, # it is particularly effective against fake tracks
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     ] #end of vpset
0347 ) #end of clone
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 #fastsim
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                                ) )