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 from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff import tracker_apv_vfp30_2016 as _tracker_apv_vfp30_2016
0003 import RecoTracker.IterativeTracking.iterativeTkConfig as _cfg
0004 from Configuration.Eras.Modifier_fastSim_cff import fastSim
0005 
0006 #for dnn classifier
0007 from Configuration.ProcessModifiers.trackdnn_cff import trackdnn
0008 from RecoTracker.IterativeTracking.dnnQualityCuts import qualityCutDictionary
0009 
0010 # for no-loopers
0011 from Configuration.ProcessModifiers.trackingNoLoopers_cff import trackingNoLoopers
0012 
0013 # NEW CLUSTERS (remove previously used clusters)
0014 lowPtTripletStepClusters = _cfg.clusterRemoverForIter('LowPtTripletStep')
0015 for _eraName, _postfix, _era in _cfg.nonDefaultEras():
0016     _era.toReplaceWith(lowPtTripletStepClusters, _cfg.clusterRemoverForIter('LowPtTripletStep', _eraName, _postfix))
0017 
0018 # SEEDING LAYERS
0019 import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi
0020 lowPtTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone(
0021     BPix = dict(skipClusters = cms.InputTag('lowPtTripletStepClusters')),
0022     FPix = dict(skipClusters = cms.InputTag('lowPtTripletStepClusters'))
0023 )
0024 _layerListForPhase1 = [
0025     'BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4',
0026     'BPix1+BPix3+BPix4', 'BPix1+BPix2+BPix4',
0027     'BPix2+BPix3+FPix1_pos', 'BPix2+BPix3+FPix1_neg',
0028     'BPix1+BPix2+FPix1_pos', 'BPix1+BPix2+FPix1_neg',
0029     'BPix1+BPix3+FPix1_pos', 'BPix1+BPix3+FPix1_neg',
0030     'BPix2+FPix1_pos+FPix2_pos', 'BPix2+FPix1_neg+FPix2_neg',
0031     'BPix1+FPix1_pos+FPix2_pos', 'BPix1+FPix1_neg+FPix2_neg',
0032     'BPix1+BPix2+FPix2_pos', 'BPix1+BPix2+FPix2_neg',
0033     'FPix1_pos+FPix2_pos+FPix3_pos', 'FPix1_neg+FPix2_neg+FPix3_neg',
0034     'BPix1+FPix2_pos+FPix3_pos', 'BPix1+FPix2_neg+FPix3_neg',
0035     'BPix1+FPix1_pos+FPix3_pos', 'BPix1+FPix1_neg+FPix3_neg'
0036 ]
0037 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
0038 trackingPhase1.toModify(lowPtTripletStepSeedLayers, layerList = _layerListForPhase1)
0039 
0040 # combination with gap removed as only source of fakes in current geometry (kept for doc,=)
0041 _layerListForPhase2 = ['BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4',
0042 #                       'BPix1+BPix3+BPix4', 'BPix1+BPix2+BPix4',
0043                        'BPix1+BPix2+FPix1_pos', 'BPix1+BPix2+FPix1_neg',
0044                        'BPix1+FPix1_pos+FPix2_pos', 'BPix1+FPix1_neg+FPix2_neg',
0045 #                       'BPix1+BPix2+FPix2_pos', 'BPix1+BPix2+FPix2_neg',
0046                        'FPix1_pos+FPix2_pos+FPix3_pos', 'FPix1_neg+FPix2_neg+FPix3_neg',
0047 #                       'BPix1+FPix1_pos+FPix3_pos', 'BPix1+FPix1_neg+FPix3_neg',
0048                        'FPix2_pos+FPix3_pos+FPix4_pos', 'FPix2_neg+FPix3_neg+FPix4_neg',
0049                        'FPix3_pos+FPix4_pos+FPix5_pos', 'FPix3_neg+FPix4_neg+FPix5_neg',
0050                        'FPix4_pos+FPix5_pos+FPix6_pos', 'FPix4_neg+FPix5_neg+FPix6_neg',
0051 #  removed as redunant and covering effectively only eta>4   (here for documentation, to be optimized after TDR)
0052 #                       'FPix5_pos+FPix6_pos+FPix7_pos', 'FPix5_neg+FPix6_neg+FPix7_neg',
0053 #                       'FPix6_pos+FPix7_pos+FPix8_pos', 'FPix6_neg+FPix7_neg+FPix8_neg'
0054 ]
0055 from Configuration.Eras.Modifier_trackingPhase2PU140_cff import trackingPhase2PU140
0056 trackingPhase2PU140.toModify(lowPtTripletStepSeedLayers, layerList = _layerListForPhase2)
0057 
0058 # TrackingRegion
0059 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpot_cfi import globalTrackingRegionFromBeamSpot as _globalTrackingRegionFromBeamSpot
0060 lowPtTripletStepTrackingRegions = _globalTrackingRegionFromBeamSpot.clone(RegionPSet = dict(
0061     ptMin        = 0.2,
0062     originRadius = 0.02,
0063     nSigmaZ      = 4.0
0064 ))
0065 trackingPhase1.toModify(lowPtTripletStepTrackingRegions, RegionPSet = dict(ptMin = 0.2))
0066 trackingPhase2PU140.toModify(lowPtTripletStepTrackingRegions, RegionPSet = dict(ptMin = 0.40))
0067 
0068 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff import pp_on_XeXe_2017
0069 from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA
0070 from RecoTracker.TkTrackingRegions.globalTrackingRegionWithVertices_cff import globalTrackingRegionWithVertices as _globalTrackingRegionWithVertices
0071 (pp_on_XeXe_2017 | pp_on_AA).toReplaceWith(lowPtTripletStepTrackingRegions, 
0072                 _globalTrackingRegionWithVertices.clone(RegionPSet=dict(
0073                     useFixedError = False,
0074                     ptMin         = 0.49,
0075                     originRadius  = 0.02 )
0076                )
0077 )
0078 from Configuration.Eras.Modifier_highBetaStar_2018_cff import highBetaStar_2018
0079 highBetaStar_2018.toModify(lowPtTripletStepTrackingRegions,RegionPSet = dict(
0080      ptMin        = 0.05,
0081      originRadius = 0.2 )
0082 )
0083 
0084 # seeding
0085 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi import hitPairEDProducer as _hitPairEDProducer
0086 lowPtTripletStepHitDoublets = _hitPairEDProducer.clone(
0087     seedingLayers   = 'lowPtTripletStepSeedLayers',
0088     trackingRegions = 'lowPtTripletStepTrackingRegions',
0089     maxElement      = 50000000,
0090     produceIntermediateHitDoublets = True,
0091 )
0092 from RecoPixelVertexing.PixelTriplets.pixelTripletHLTEDProducer_cfi import pixelTripletHLTEDProducer as _pixelTripletHLTEDProducer
0093 from RecoPixelVertexing.PixelLowPtUtilities.ClusterShapeHitFilterESProducer_cfi import *
0094 import RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi
0095 lowPtTripletStepHitTriplets = _pixelTripletHLTEDProducer.clone(
0096     doublets              = 'lowPtTripletStepHitDoublets',
0097     produceSeedingHitSets = True,
0098     SeedComparitorPSet = RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi.LowPtClusterShapeSeedComparitor.clone()
0099 )
0100 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff import seedCreatorFromRegionConsecutiveHitsEDProducer as _seedCreatorFromRegionConsecutiveHitsEDProducer
0101 lowPtTripletStepSeeds = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
0102     seedingHitSets = 'lowPtTripletStepHitTriplets',
0103 )
0104 
0105 from RecoPixelVertexing.PixelTriplets.caHitTripletEDProducer_cfi import caHitTripletEDProducer as _caHitTripletEDProducer
0106 trackingPhase1.toModify(lowPtTripletStepHitDoublets, layerPairs = [0,1]) # layer pairs (0,1), (1,2)
0107 trackingPhase1.toReplaceWith(lowPtTripletStepHitTriplets, _caHitTripletEDProducer.clone(
0108     doublets = 'lowPtTripletStepHitDoublets',
0109     extraHitRPhitolerance = lowPtTripletStepHitTriplets.extraHitRPhitolerance,
0110     SeedComparitorPSet = lowPtTripletStepHitTriplets.SeedComparitorPSet,
0111     maxChi2 = dict(
0112         pt1    = 0.8, pt2    = 2,
0113         value1 = 70 , value2 = 8,
0114     ),
0115     useBendingCorrection = True,
0116     CAThetaCut           = 0.002,
0117     CAPhiCut             = 0.05 )
0118 )
0119 
0120 trackingPhase2PU140.toModify(lowPtTripletStepHitDoublets, layerPairs = [0,1]) # layer pairs (0,1), (1,2)
0121 trackingPhase2PU140.toReplaceWith(lowPtTripletStepHitTriplets, _caHitTripletEDProducer.clone(
0122     doublets = 'lowPtTripletStepHitDoublets',
0123     extraHitRPhitolerance = lowPtTripletStepHitTriplets.extraHitRPhitolerance,
0124     SeedComparitorPSet = lowPtTripletStepHitTriplets.SeedComparitorPSet,
0125     maxChi2 = dict(
0126         pt1    = 0.8, pt2    = 2,
0127         value1 = 70 , value2 = 8,
0128     ),
0129     useBendingCorrection = True,
0130     CAThetaCut           = 0.002,
0131     CAPhiCut             = 0.05 )
0132 )
0133 highBetaStar_2018.toModify(lowPtTripletStepHitTriplets,CAThetaCut = 0.004,CAPhiCut = 0.1)
0134  
0135 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
0136 from FastSimulation.Tracking.SeedingMigration import _hitSetProducerToFactoryPSet
0137 _fastSim_lowPtTripletStepSeeds = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
0138     trackingRegions = 'lowPtTripletStepTrackingRegions',
0139     hitMasks        = cms.InputTag('lowPtTripletStepMasks'),
0140     seedFinderSelector = dict(pixelTripletGeneratorFactory = _hitSetProducerToFactoryPSet(lowPtTripletStepHitTriplets).clone(
0141                               SeedComparitorPSet = dict(ComponentName = 'none')),
0142                               layerList = lowPtTripletStepSeedLayers.layerList.value()
0143                          )
0144 )
0145 #new for phase1
0146 trackingPhase1.toModify(_fastSim_lowPtTripletStepSeeds, seedFinderSelector = dict(
0147         pixelTripletGeneratorFactory = None,
0148         CAHitTripletGeneratorFactory = _hitSetProducerToFactoryPSet(lowPtTripletStepHitTriplets).clone(SeedComparitorPSet = dict(ComponentName = 'none')),
0149         #new parameters required for phase1 seeding
0150         BPix = dict(
0151             TTRHBuilder = 'WithoutRefit',
0152             HitProducer = 'TrackingRecHitProducer',
0153             ),
0154         FPix = dict(
0155             TTRHBuilder = 'WithoutRefit',
0156             HitProducer = 'TrackingRecHitProducer',
0157             ),
0158         layerPairs = lowPtTripletStepHitDoublets.layerPairs.value()
0159         )
0160 )
0161 fastSim.toReplaceWith(lowPtTripletStepSeeds,_fastSim_lowPtTripletStepSeeds)
0162 
0163 # QUALITY CUTS DURING TRACK BUILDING
0164 import TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff as _TrajectoryFilter_cff
0165 _lowPtTripletStepStandardTrajectoryFilterBase = _TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
0166     minimumNumberOfHits = 3,
0167     minPt               = 0.075,
0168 )
0169 lowPtTripletStepStandardTrajectoryFilter = _lowPtTripletStepStandardTrajectoryFilterBase.clone(
0170     maxCCCLostHits     = 0,
0171     minGoodStripCharge = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutLoose'))
0172 )
0173 from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff import tracker_apv_vfp30_2016
0174 _tracker_apv_vfp30_2016.toModify(lowPtTripletStepStandardTrajectoryFilter, maxCCCLostHits = 1)
0175 from Configuration.Eras.Modifier_trackingLowPU_cff import trackingLowPU
0176 trackingLowPU.toReplaceWith(lowPtTripletStepStandardTrajectoryFilter, _lowPtTripletStepStandardTrajectoryFilterBase)
0177 trackingPhase2PU140.toReplaceWith(lowPtTripletStepStandardTrajectoryFilter, _lowPtTripletStepStandardTrajectoryFilterBase)
0178 
0179 (pp_on_XeXe_2017 | pp_on_AA).toModify(lowPtTripletStepStandardTrajectoryFilter, minPt=0.49)
0180 
0181 from RecoPixelVertexing.PixelLowPtUtilities.ClusterShapeTrajectoryFilter_cfi import *
0182 # Composite filter
0183 lowPtTripletStepTrajectoryFilter = _TrajectoryFilter_cff.CompositeTrajectoryFilter_block.clone(
0184     filters   = [cms.PSet(refToPSet_ = cms.string('lowPtTripletStepStandardTrajectoryFilter')),
0185                  # cms.PSet(refToPSet_ = cms.string('ClusterShapeTrajectoryFilter'))
0186                 ]
0187     )
0188 trackingPhase2PU140.toModify(lowPtTripletStepTrajectoryFilter,
0189     filters = lowPtTripletStepTrajectoryFilter.filters + [cms.PSet(refToPSet_ = cms.string('ClusterShapeTrajectoryFilter'))]
0190 )
0191 
0192 lowPtTripletStepTrajectoryFilterInOut = lowPtTripletStepStandardTrajectoryFilter.clone(
0193     minimumNumberOfHits = 4,
0194     seedExtension       = 1,
0195     strictSeedExtension = False, # allow inactive
0196     pixelSeedExtension  = False,
0197 )
0198 
0199 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
0200 lowPtTripletStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
0201     ComponentName    = 'lowPtTripletStepChi2Est',
0202     nSigma           = 3.0,
0203     MaxChi2          = 9.0,
0204     clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
0205 )
0206 _tracker_apv_vfp30_2016.toModify(lowPtTripletStepChi2Est,
0207     clusterChargeCut = dict(refToPSet_ = 'SiStripClusterChargeCutTiny')
0208 )
0209 
0210 # TRACK BUILDING
0211 import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi
0212 lowPtTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
0213     trajectoryFilter       = dict(refToPSet_ = 'lowPtTripletStepTrajectoryFilter'),
0214     maxCand                = 4,
0215     estimator              = 'lowPtTripletStepChi2Est',
0216     maxDPhiForLooperReconstruction = 2.0,
0217     # 0.63 GeV is the maximum pT for a charged particle to loop within the 1.1m radius
0218     # of the outermost Tracker barrel layer (with B=3.8T)
0219     maxPtForLooperReconstruction = 0.7,
0220 )
0221 trackingNoLoopers.toModify(lowPtTripletStepTrajectoryBuilder,
0222                            maxPtForLooperReconstruction = 0.0)
0223 trackingLowPU.toModify(lowPtTripletStepTrajectoryBuilder, maxCand = 3)
0224 trackingPhase2PU140.toModify(lowPtTripletStepTrajectoryBuilder, 
0225     inOutTrajectoryFilter = dict(refToPSet_ = 'lowPtTripletStepTrajectoryFilterInOut'),
0226     useSameTrajFilter     = False,
0227     maxCand               = 3,
0228 )
0229 
0230 # MAKING OF TRACK CANDIDATES
0231 import RecoTracker.CkfPattern.CkfTrackCandidates_cfi
0232 # Give handle for CKF for HI
0233 _lowPtTripletStepTrackCandidatesCkf = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
0234     src = 'lowPtTripletStepSeeds',
0235     ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
0236     numHitsForSeedCleaner       = 50,
0237     onlyPixelHitsForSeedCleaner = True,
0238     TrajectoryBuilderPSet       = dict(refToPSet_ = 'lowPtTripletStepTrajectoryBuilder'),
0239     clustersToSkip              = 'lowPtTripletStepClusters',
0240     doSeedingRegionRebuilding   = True,
0241     useHitsSplitting            = True,
0242     TrajectoryCleaner           = 'lowPtTripletStepTrajectoryCleanerBySharedHits',
0243 )
0244 lowPtTripletStepTrackCandidates = _lowPtTripletStepTrackCandidatesCkf.clone()
0245 
0246 trackingPhase2PU140.toModify(lowPtTripletStepTrackCandidates,
0247     clustersToSkip = '',
0248     phase2clustersToSkip = 'lowPtTripletStepClusters'
0249 )
0250 
0251 from Configuration.ProcessModifiers.trackingMkFitLowPtTripletStep_cff import trackingMkFitLowPtTripletStep
0252 import RecoTracker.MkFit.mkFitSeedConverter_cfi as mkFitSeedConverter_cfi
0253 import RecoTracker.MkFit.mkFitProducer_cfi as mkFitProducer_cfi
0254 import RecoTracker.MkFit.mkFitIterationConfigESProducer_cfi as mkFitIterationConfigESProducer_cfi
0255 import RecoTracker.MkFit.mkFitOutputConverter_cfi as mkFitOutputConverter_cfi
0256 lowPtTripletStepTrackCandidatesMkFitSeeds = mkFitSeedConverter_cfi.mkFitSeedConverter.clone(
0257     seeds = 'lowPtTripletStepSeeds',
0258 )
0259 lowPtTripletStepTrackCandidatesMkFitConfig = mkFitIterationConfigESProducer_cfi.mkFitIterationConfigESProducer.clone(
0260     ComponentName = 'lowPtTripletStepTrackCandidatesMkFitConfig',
0261     config = 'RecoTracker/MkFit/data/mkfit-phase1-lowPtTripletStep.json',
0262 )
0263 lowPtTripletStepTrackCandidatesMkFit = mkFitProducer_cfi.mkFitProducer.clone(
0264     seeds = 'lowPtTripletStepTrackCandidatesMkFitSeeds',
0265     config = ('', 'lowPtTripletStepTrackCandidatesMkFitConfig'),
0266     clustersToSkip = 'lowPtTripletStepClusters',
0267 )
0268 trackingMkFitLowPtTripletStep.toReplaceWith(lowPtTripletStepTrackCandidates, mkFitOutputConverter_cfi.mkFitOutputConverter.clone(
0269     seeds = 'lowPtTripletStepSeeds',
0270     mkFitSeeds = 'lowPtTripletStepTrackCandidatesMkFitSeeds',
0271     tracks = 'lowPtTripletStepTrackCandidatesMkFit',
0272 ))
0273 (pp_on_XeXe_2017 | pp_on_AA).toModify(lowPtTripletStepTrackCandidatesMkFitConfig, minPt=0.49)
0274 
0275 import FastSimulation.Tracking.TrackCandidateProducer_cfi
0276 fastSim.toReplaceWith(lowPtTripletStepTrackCandidates,
0277                       FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
0278         src = 'lowPtTripletStepSeeds',
0279         MinNumberOfCrossedLayers = 3,
0280         hitMasks = cms.InputTag('lowPtTripletStepMasks'))
0281 )
0282 
0283 # TRACK FITTING
0284 import RecoTracker.TrackProducer.TrackProducer_cfi
0285 lowPtTripletStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
0286     src           = 'lowPtTripletStepTrackCandidates',
0287     AlgorithmName = 'lowPtTripletStep',
0288     Fitter        = 'FlexibleKFFittingSmoother'
0289 )
0290 fastSim.toModify(lowPtTripletStepTracks, TTRHBuilder = 'WithoutRefit')
0291 
0292 from Configuration.Eras.Modifier_phase2_timing_layer_cff import phase2_timing_layer
0293 phase2_timing_layer.toModify(lowPtTripletStepTracks, TrajectoryInEvent = True)
0294 
0295 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
0296 lowPtTripletStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
0297     ComponentName       = 'lowPtTripletStepTrajectoryCleanerBySharedHits',
0298     fractionShared      = 0.16,
0299     allowSharedFirstHit = True
0300 )
0301 trackingLowPU.toModify(lowPtTripletStepTrajectoryCleanerBySharedHits, fractionShared = 0.19)
0302 trackingPhase2PU140.toModify(lowPtTripletStepTrajectoryCleanerBySharedHits, fractionShared = 0.09)
0303 
0304 # Final selection
0305 from RecoTracker.FinalTrackSelectors.TrackMVAClassifierPrompt_cfi import *
0306 lowPtTripletStep =  TrackMVAClassifierPrompt.clone(
0307     src         = 'lowPtTripletStepTracks',
0308     mva         = dict(GBRForestLabel = 'MVASelectorIter1_13TeV'),
0309     qualityCuts = [-0.6,-0.3,-0.1]
0310 )
0311 trackingPhase1.toReplaceWith(lowPtTripletStep, lowPtTripletStep.clone(
0312      mva         = dict(GBRForestLabel = 'MVASelectorLowPtTripletStep_Phase1'),
0313      qualityCuts = [-0.4,0.0,0.3],
0314 ))
0315 
0316 from RecoTracker.FinalTrackSelectors.trackTfClassifier_cfi import *
0317 from RecoTracker.FinalTrackSelectors.trackSelectionTf_cfi import *
0318 from RecoTracker.FinalTrackSelectors.trackSelectionTf_CKF_cfi import *
0319 trackdnn.toReplaceWith(lowPtTripletStep, trackTfClassifier.clone(
0320     src = 'lowPtTripletStepTracks',
0321     qualityCuts = qualityCutDictionary.LowPtTripletStep.value()
0322 ))
0323 highBetaStar_2018.toModify(lowPtTripletStep,qualityCuts = [-0.7,-0.3,-0.1])
0324 pp_on_AA.toModify(lowPtTripletStep, 
0325         mva         = dict(GBRForestLabel = 'HIMVASelectorLowPtTripletStep_Phase1'),
0326         qualityCuts = [-0.8, -0.4, 0.5],
0327 )
0328 fastSim.toModify(lowPtTripletStep, vertices = 'firstStepPrimaryVerticesBeforeMixing')
0329 
0330 # For LowPU and Phase2PU140
0331 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
0332 lowPtTripletStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
0333     src = 'lowPtTripletStepTracks',
0334     useAnyMVA      = cms.bool(False),
0335     GBRForestLabel = cms.string('MVASelectorIter1'),
0336     trackSelectors= [
0337         RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
0338             name = 'lowPtTripletStepLoose',
0339         ), #end of pset
0340         RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
0341             name = 'lowPtTripletStepTight',
0342             preFilterName = 'lowPtTripletStepLoose',
0343         ),
0344         RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
0345             name = 'QualityMasks',
0346             preFilterName = 'lowPtTripletStepTight',
0347         ),
0348     ] #end of vpset
0349 ) #end of clone
0350 trackingPhase2PU140.toModify(lowPtTripletStepSelector,
0351     useAnyMVA      = None,
0352     GBRForestLabel = None,
0353     trackSelectors= cms.VPSet(
0354         RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
0355             name = 'lowPtTripletStepLoose',
0356             chi2n_par = 1.2,
0357             res_par = ( 0.003, 0.002 ),
0358             minNumberLayers = 3,
0359             maxNumberLostLayers = 2,
0360             minNumber3DLayers = 3,
0361             d0_par1 = ( 0.7, 4.0 ),
0362             dz_par1 = ( 0.7, 4.0 ),
0363             d0_par2 = ( 0.6, 4.0 ),
0364             dz_par2 = ( 0.6, 4.0 )
0365             ), #end of pset
0366         RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
0367             name = 'lowPtTripletStepTight',
0368             preFilterName = 'lowPtTripletStepLoose',
0369             chi2n_par = 0.7,
0370             res_par = ( 0.003, 0.002 ),
0371             minNumberLayers = 3,
0372             maxNumberLostLayers = 2,
0373             minNumber3DLayers = 3,
0374             d0_par1 = ( 0.6, 4.0 ),
0375             dz_par1 = ( 0.6, 4.0 ),
0376             d0_par2 = ( 0.5, 4.0 ),
0377             dz_par2 = ( 0.5, 4.0 )
0378             ),
0379         RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
0380             name = 'lowPtTripletStep',
0381             preFilterName = 'lowPtTripletStepTight',
0382             min_eta = -4.0,
0383             max_eta = 4.0,
0384             chi2n_par = 0.4,
0385             res_par = ( 0.003, 0.001 ),
0386             min_nhits = 3,
0387             minNumberLayers = 4,
0388             maxNumberLostLayers = 2,
0389             minNumber3DLayers = 4,
0390             d0_par1 = ( 0.5, 4.0 ),
0391             dz_par1 = ( 0.5, 4.0 ),
0392             d0_par2 = ( 0.45, 4.0 ),
0393             dz_par2 = ( 0.45, 4.0 )
0394             ),
0395         ), #end of vpset
0396 ) #end of clone
0397 
0398 
0399 from Configuration.ProcessModifiers.vectorHits_cff import vectorHits
0400 vectorHits.toModify(lowPtTripletStepSelector.trackSelectors[2], minNumberLayers = 3, minNumber3DLayers = 3)
0401 
0402 
0403 # Final sequence
0404 LowPtTripletStepTask = cms.Task(lowPtTripletStepClusters,
0405                                 lowPtTripletStepSeedLayers,
0406                                 lowPtTripletStepTrackingRegions,
0407                                 lowPtTripletStepHitDoublets,
0408                                 lowPtTripletStepHitTriplets,
0409                                 lowPtTripletStepSeeds,
0410                                 lowPtTripletStepTrackCandidates,
0411                                 lowPtTripletStepTracks,
0412                                 lowPtTripletStep)
0413 LowPtTripletStep = cms.Sequence(LowPtTripletStepTask)
0414 
0415 _LowPtTripletStepTask_trackingMkFit = LowPtTripletStepTask.copy()
0416 _LowPtTripletStepTask_trackingMkFit.add(lowPtTripletStepTrackCandidatesMkFitSeeds, lowPtTripletStepTrackCandidatesMkFit)
0417 trackingMkFitLowPtTripletStep.toReplaceWith(LowPtTripletStepTask, _LowPtTripletStepTask_trackingMkFit)
0418 
0419 _LowPtTripletStepTask_LowPU_Phase2PU140 = LowPtTripletStepTask.copy()
0420 _LowPtTripletStepTask_LowPU_Phase2PU140.replace(lowPtTripletStep, lowPtTripletStepSelector)
0421 trackingLowPU.toReplaceWith(LowPtTripletStepTask, _LowPtTripletStepTask_LowPU_Phase2PU140)
0422 
0423 trackingPhase2PU140.toReplaceWith(LowPtTripletStepTask, _LowPtTripletStepTask_LowPU_Phase2PU140)
0424 #fastsim
0425 from FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi import maskProducerFromClusterRemover
0426 lowPtTripletStepMasks = maskProducerFromClusterRemover(lowPtTripletStepClusters)
0427 fastSim.toReplaceWith(LowPtTripletStepTask,
0428                       cms.Task(lowPtTripletStepMasks
0429                                    ,lowPtTripletStepTrackingRegions
0430                                    ,lowPtTripletStepSeeds
0431                                    ,lowPtTripletStepTrackCandidates
0432                                    ,lowPtTripletStepTracks  
0433                                    ,lowPtTripletStep   
0434                                    ))