Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-10-25 10:02:25

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 # Very large impact parameter tracking using TOB + TEC ring 5 seeding #
0014 #######################################################################
0015 
0016 tobTecStepClusters = _cfg.clusterRemoverForIter('TobTecStep')
0017 for _eraName, _postfix, _era in _cfg.nonDefaultEras():
0018     _era.toReplaceWith(tobTecStepClusters, _cfg.clusterRemoverForIter('TobTecStep', _eraName, _postfix))
0019 
0020 # TRIPLET SEEDING LAYERS
0021 from RecoLocalTracker.SiStripClusterizer.SiStripClusterChargeCut_cfi import *
0022 import RecoTracker.TkSeedingLayers.seedingLayersEDProducer_cfi as _mod
0023 
0024 tobTecStepSeedLayersTripl = _mod.seedingLayersEDProducer.clone(
0025     layerList = [
0026     #TOB
0027     'TOB1+TOB2+MTOB3','TOB1+TOB2+MTOB4',
0028     #TOB+MTEC
0029     'TOB1+TOB2+MTEC1_pos','TOB1+TOB2+MTEC1_neg',
0030     ],
0031     TOB = dict(
0032          TTRHBuilder      = cms.string('WithTrackAngle'), 
0033          clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
0034          matchedRecHits   = cms.InputTag('siStripMatchedRecHits','matchedRecHit'),
0035          skipClusters     = cms.InputTag('tobTecStepClusters')
0036     ),
0037     MTOB = dict(
0038          TTRHBuilder      = cms.string('WithTrackAngle'), 
0039          clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
0040          skipClusters     = cms.InputTag('tobTecStepClusters'),
0041          rphiRecHits      = cms.InputTag('siStripMatchedRecHits','rphiRecHit')
0042     ),
0043     MTEC = dict(
0044         rphiRecHits      = cms.InputTag('siStripMatchedRecHits','rphiRecHit'),
0045         skipClusters     = cms.InputTag('tobTecStepClusters'),
0046         useRingSlector   = cms.bool(True),
0047         TTRHBuilder      = cms.string('WithTrackAngle'), 
0048         clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
0049         minRing          = cms.int32(6),
0050         maxRing          = cms.int32(7)
0051     )
0052 )
0053 
0054 # Triplet TrackingRegion
0055 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpotFixedZ_cfi import globalTrackingRegionFromBeamSpotFixedZ as _globalTrackingRegionFromBeamSpotFixedZ
0056 tobTecStepTrackingRegionsTripl = _globalTrackingRegionFromBeamSpotFixedZ.clone(
0057     RegionPSet = dict(
0058         ptMin            = 0.55,
0059         originHalfLength = 20.0,
0060         originRadius     = 3.5)
0061 )
0062 
0063 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff import pp_on_XeXe_2017
0064 from Configuration.ProcessModifiers.pp_on_AA_cff import pp_on_AA
0065 from RecoTracker.IterativeTracking.MixedTripletStep_cff import _mixedTripletStepTrackingRegionsCommon_pp_on_HI
0066 (pp_on_XeXe_2017 | pp_on_AA).toReplaceWith(tobTecStepTrackingRegionsTripl, 
0067                 _mixedTripletStepTrackingRegionsCommon_pp_on_HI.clone(RegionPSet=dict(
0068                     ptMinScaling4BigEvts = False,
0069                     fixedError           = 5.0,
0070                     ptMin                = 2.0,
0071                     originRadius         = 3.5
0072                 )                                                                      )
0073 )
0074 
0075 # Triplet seeding
0076 from RecoTracker.PixelLowPtUtilities.ClusterShapeHitFilterESProducer_cfi import ClusterShapeHitFilterESProducer as _ClusterShapeHitFilterESProducer
0077 tobTecStepClusterShapeHitFilter = _ClusterShapeHitFilterESProducer.clone(
0078     ComponentName    = 'tobTecStepClusterShapeHitFilter',
0079     doStripShapeCut  = cms.bool(False),
0080     clusterChargeCut = dict(refToPSet_ = 'SiStripClusterChargeCutTight')
0081 )
0082 
0083 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi import hitPairEDProducer as _hitPairEDProducer
0084 tobTecStepHitDoubletsTripl = _hitPairEDProducer.clone(
0085     seedingLayers   = 'tobTecStepSeedLayersTripl',
0086     trackingRegions = 'tobTecStepTrackingRegionsTripl',
0087     maxElement      = 50000000,
0088     produceIntermediateHitDoublets = True,
0089 )
0090 from RecoTracker.TkSeedGenerator.multiHitFromChi2EDProducer_cfi import multiHitFromChi2EDProducer as _multiHitFromChi2EDProducer
0091 tobTecStepHitTripletsTripl = _multiHitFromChi2EDProducer.clone(
0092     doublets      = 'tobTecStepHitDoubletsTripl',
0093     extraPhiKDBox = 0.01,
0094 )
0095 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff import seedCreatorFromRegionConsecutiveHitsEDProducer as _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer
0096 from RecoTracker.PixelLowPtUtilities.StripSubClusterShapeSeedFilter_cfi import StripSubClusterShapeSeedFilter as _StripSubClusterShapeSeedFilter
0097 _tobTecStepSeedComparitorPSet = dict(
0098     ComponentName = 'CombinedSeedComparitor',
0099     mode          = cms.string('and'),
0100     comparitors   = cms.VPSet(
0101         cms.PSet(# FIXME: is this defined in any cfi that could be imported instead of copy-paste?
0102             ComponentName      = cms.string('PixelClusterShapeSeedComparitor'),
0103             FilterAtHelixStage = cms.bool(True),
0104             FilterPixelHits    = cms.bool(False),
0105             FilterStripHits    = cms.bool(True),
0106             ClusterShapeHitFilterName = cms.string('tobTecStepClusterShapeHitFilter'),
0107             ClusterShapeCacheSrc = cms.InputTag('siPixelClusterShapeCache') # not really needed here since FilterPixelHits=False
0108         ),
0109         _StripSubClusterShapeSeedFilter.clone()
0110     )
0111 )
0112 
0113 tobTecStepSeedsTripl = _seedCreatorFromRegionConsecutiveHitsTripletOnlyEDProducer.clone(#empirically better than 'SeedFromConsecutiveHitsTripletOnlyCreator'
0114     seedingHitSets     = 'tobTecStepHitTripletsTripl',
0115     SeedComparitorPSet = _tobTecStepSeedComparitorPSet,
0116 )
0117 
0118 #fastsim
0119 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
0120 from FastSimulation.Tracking.SeedingMigration import _hitSetProducerToFactoryPSet
0121 _fastSim_tobTecStepSeedsTripl = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
0122     trackingRegions = 'tobTecStepTrackingRegionsTripl',
0123     hitMasks        = cms.InputTag('tobTecStepMasks'),
0124     seedFinderSelector = dict(MultiHitGeneratorFactory = _hitSetProducerToFactoryPSet(tobTecStepHitTripletsTripl).clone(
0125                               SeedComparitorPSet = cms.PSet(ComponentName = cms.string('none')), 
0126                               refitHits          = False),
0127                               layerList = tobTecStepSeedLayersTripl.layerList.value()
0128                               )
0129 )
0130 fastSim.toReplaceWith(tobTecStepSeedsTripl,_fastSim_tobTecStepSeedsTripl)
0131 
0132 # PAIR SEEDING LAYERS
0133 tobTecStepSeedLayersPair = _mod.seedingLayersEDProducer.clone( 
0134     layerList = ['TOB1+TEC1_pos','TOB1+TEC1_neg', 
0135                  'TEC1_pos+TEC2_pos','TEC1_neg+TEC2_neg', 
0136                  'TEC2_pos+TEC3_pos','TEC2_neg+TEC3_neg', 
0137                  'TEC3_pos+TEC4_pos','TEC3_neg+TEC4_neg', 
0138                  'TEC4_pos+TEC5_pos','TEC4_neg+TEC5_neg', 
0139                  'TEC5_pos+TEC6_pos','TEC5_neg+TEC6_neg', 
0140                  'TEC6_pos+TEC7_pos','TEC6_neg+TEC7_neg'],
0141     TOB = dict(
0142          TTRHBuilder    = cms.string('WithTrackAngle'),
0143          clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
0144          matchedRecHits = cms.InputTag('siStripMatchedRecHits','matchedRecHit'),
0145          skipClusters   = cms.InputTag('tobTecStepClusters')
0146     ),
0147     TEC = dict(
0148         matchedRecHits = cms.InputTag('siStripMatchedRecHits','matchedRecHit'),
0149         skipClusters = cms.InputTag('tobTecStepClusters'),
0150         useRingSlector = cms.bool(True),
0151         TTRHBuilder = cms.string('WithTrackAngle'), 
0152         clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
0153         minRing = cms.int32(5),
0154         maxRing = cms.int32(5)
0155     )
0156 )
0157 # Pair TrackingRegion
0158 tobTecStepTrackingRegionsPair = _globalTrackingRegionFromBeamSpotFixedZ.clone(
0159     RegionPSet = dict(
0160         ptMin            = 0.6,
0161         originHalfLength = 30.0,
0162         originRadius     = 6.0)
0163 )
0164 
0165 (pp_on_XeXe_2017 | pp_on_AA).toReplaceWith(tobTecStepTrackingRegionsPair, 
0166                 _mixedTripletStepTrackingRegionsCommon_pp_on_HI.clone(RegionPSet = dict(
0167                     ptMinScaling4BigEvts = False,
0168                     fixedError           = 7.5,
0169                     ptMin                = 2.0,
0170                     originRadius         = 6.0
0171                 )                                                                      )
0172 )
0173 
0174 
0175 # Pair seeds
0176 tobTecStepHitDoubletsPair = _hitPairEDProducer.clone(
0177     seedingLayers         = 'tobTecStepSeedLayersPair',
0178     trackingRegions       = 'tobTecStepTrackingRegionsPair',
0179     produceSeedingHitSets = True,
0180     maxElementTotal       = 12000000,
0181 )
0182 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff import seedCreatorFromRegionConsecutiveHitsEDProducer as _seedCreatorFromRegionConsecutiveHitsEDProducer
0183 tobTecStepSeedsPair = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
0184     seedingHitSets     = 'tobTecStepHitDoubletsPair',
0185     SeedComparitorPSet = _tobTecStepSeedComparitorPSet,
0186 )
0187 #fastsim
0188 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
0189 fastSim.toReplaceWith(tobTecStepSeedsPair,
0190                       FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
0191         trackingRegions = 'tobTecStepTrackingRegionsPair',
0192         hitMasks        = cms.InputTag('tobTecStepMasks'),
0193         seedFinderSelector = dict(layerList = tobTecStepSeedLayersPair.layerList.value())
0194         )
0195 )
0196 
0197 
0198 # Combined seeds
0199 import RecoTracker.TkSeedGenerator.GlobalCombinedSeeds_cfi
0200 tobTecStepSeeds = RecoTracker.TkSeedGenerator.GlobalCombinedSeeds_cfi.globalCombinedSeeds.clone(
0201     seedCollections = ['tobTecStepSeedsTripl', 'tobTecStepSeedsPair']
0202 )
0203 # LowPU
0204 from Configuration.Eras.Modifier_trackingLowPU_cff import trackingLowPU
0205 trackingLowPU.toModify(tobTecStepHitDoubletsPair, seedingLayers = 'tobTecStepSeedLayers')
0206 trackingLowPU.toReplaceWith(tobTecStepSeeds, _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
0207     seedingHitSets = 'tobTecStepHitDoubletsPair',
0208 ))
0209 
0210 
0211 # QUALITY CUTS DURING TRACK BUILDING (for inwardss and outwards track building steps)
0212 import TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff
0213 _tobTecStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
0214     maxLostHits         = 0,
0215     minimumNumberOfHits = 5,
0216     minPt               = 0.1,
0217     minHitsMinPt        = 3
0218 )
0219 tobTecStepTrajectoryFilter = _tobTecStepTrajectoryFilterBase.clone(
0220     seedPairPenalty = 1,
0221 )
0222 trackingLowPU.toReplaceWith(tobTecStepTrajectoryFilter, _tobTecStepTrajectoryFilterBase.clone(
0223     minimumNumberOfHits = 6,
0224 ))
0225 
0226 (pp_on_XeXe_2017 | pp_on_AA).toModify(tobTecStepTrajectoryFilter, minPt=2.0)
0227 
0228 tobTecStepInOutTrajectoryFilter = tobTecStepTrajectoryFilter.clone(
0229     minimumNumberOfHits = 4,
0230 )
0231 
0232 
0233 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
0234 tobTecStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
0235     ComponentName    = 'tobTecStepChi2Est',
0236     nSigma           = 3.0,
0237     MaxChi2          = 16.0,
0238     clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight'))
0239 )
0240 trackingLowPU.toModify(tobTecStepChi2Est,
0241     clusterChargeCut = dict(refToPSet_ = 'SiStripClusterChargeCutTiny')
0242 )
0243 
0244 # TRACK BUILDING
0245 import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi
0246 tobTecStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilderIterativeDefault.clone(
0247     trajectoryFilter       = dict(refToPSet_ = 'tobTecStepTrajectoryFilter'),
0248     inOutTrajectoryFilter  = dict(refToPSet_ = 'tobTecStepInOutTrajectoryFilter'),
0249     useSameTrajFilter      = False,
0250     minNrOfHitsForRebuild  = 4,
0251     alwaysUseInvalidHits   = False,
0252     maxCand                = 2,
0253     estimator              = 'tobTecStepChi2Est',
0254     #startSeedHitsInRebuild = True,
0255     maxDPhiForLooperReconstruction = 2.0,
0256     maxPtForLooperReconstruction   = 0.7,
0257 )
0258 trackingNoLoopers.toModify(tobTecStepTrajectoryBuilder,
0259                            maxPtForLooperReconstruction = 0.0)
0260 # Important note for LowPU: in RunI_TobTecStep the
0261 # inOutTrajectoryFilter parameter is spelled as
0262 # inOutTrajectoryFilterName, and I suspect it has no effect there. I
0263 # chose to 'fix' the behaviour here, so the era is not fully
0264 # equivalent to the customize. To restore the customize behaviour,
0265 # uncomment the following lines
0266 #trackingLowPU.toModify(tobTecStepTrajectoryBuilder,
0267 #    inOutTrajectoryFilter = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.inOutTrajectoryFilter.clone(),
0268 #    inOutTrajectoryFilterName = cms.PSet(refToPSet_ = cms.string('tobTecStepInOutTrajectoryFilter'))
0269 #)
0270 
0271 # MAKING OF TRACK CANDIDATES
0272 import RecoTracker.CkfPattern.CkfTrackCandidates_cfi
0273 # Give handle for CKF for HI
0274 _tobTecStepTrackCandidatesCkf = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidatesIterativeDefault.clone(
0275     src = 'tobTecStepSeeds',
0276     clustersToSkip              = 'tobTecStepClusters',
0277     ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
0278     numHitsForSeedCleaner       = 50,
0279     onlyPixelHitsForSeedCleaner = False,
0280     TrajectoryBuilderPSet       = dict(refToPSet_ = 'tobTecStepTrajectoryBuilder'),
0281     doSeedingRegionRebuilding   = True,
0282     useHitsSplitting            = True,
0283     cleanTrajectoryAfterInOut   = True,
0284     TrajectoryCleaner = 'tobTecStepTrajectoryCleanerBySharedHits',
0285 )
0286 tobTecStepTrackCandidates = _tobTecStepTrackCandidatesCkf.clone()
0287 
0288 from Configuration.ProcessModifiers.trackingMkFitTobTecStep_cff import trackingMkFitTobTecStep
0289 import RecoTracker.MkFit.mkFitSeedConverter_cfi as mkFitSeedConverter_cfi
0290 import RecoTracker.MkFit.mkFitIterationConfigESProducer_cfi as mkFitIterationConfigESProducer_cfi
0291 import RecoTracker.MkFit.mkFitProducer_cfi as mkFitProducer_cfi
0292 import RecoTracker.MkFit.mkFitOutputConverter_cfi as mkFitOutputConverter_cfi
0293 tobTecStepTrackCandidatesMkFitSeeds = mkFitSeedConverter_cfi.mkFitSeedConverter.clone(
0294     seeds = 'tobTecStepSeeds',
0295 )
0296 tobTecStepTrackCandidatesMkFitConfig = mkFitIterationConfigESProducer_cfi.mkFitIterationConfigESProducer.clone(
0297     ComponentName = 'tobTecStepTrackCandidatesMkFitConfig',
0298     config = 'RecoTracker/MkFit/data/mkfit-phase1-tobTecStep.json',
0299 )
0300 tobTecStepTrackCandidatesMkFit = mkFitProducer_cfi.mkFitProducer.clone(
0301     seeds = 'tobTecStepTrackCandidatesMkFitSeeds',
0302     config = ('', 'tobTecStepTrackCandidatesMkFitConfig'),
0303     clustersToSkip = 'tobTecStepClusters',
0304 )
0305 trackingMkFitTobTecStep.toReplaceWith(tobTecStepTrackCandidates, mkFitOutputConverter_cfi.mkFitOutputConverter.clone(
0306     seeds = 'tobTecStepSeeds',
0307     mkFitSeeds = 'tobTecStepTrackCandidatesMkFitSeeds',
0308     tracks = 'tobTecStepTrackCandidatesMkFit',
0309 ))
0310 (pp_on_XeXe_2017 | pp_on_AA).toModify(tobTecStepTrackCandidatesMkFitConfig, minPt=2.0)
0311 
0312 import FastSimulation.Tracking.TrackCandidateProducer_cfi
0313 fastSim.toReplaceWith(tobTecStepTrackCandidates,
0314                       FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
0315         MinNumberOfCrossedLayers = 3,
0316         src      = 'tobTecStepSeeds',
0317         hitMasks = cms.InputTag('tobTecStepMasks')
0318         )
0319 )
0320 
0321 
0322 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
0323 tobTecStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
0324     ComponentName       = 'tobTecStepTrajectoryCleanerBySharedHits',
0325     fractionShared      = 0.09,
0326     allowSharedFirstHit = True
0327 )
0328 trackingLowPU.toModify(tobTecStepTrajectoryCleanerBySharedHits, fractionShared = 0.19)
0329 
0330 # TRACK FITTING AND SMOOTHING OPTIONS
0331 import TrackingTools.TrackFitters.RungeKuttaFitters_cff
0332 tobTecStepFitterSmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.KFFittingSmootherWithOutliersRejectionAndRK.clone(
0333     ComponentName   = 'tobTecStepFitterSmoother',
0334     EstimateCut     = 30,
0335     MinNumberOfHits = 7,
0336     Fitter          = 'tobTecStepRKFitter',
0337     Smoother        = 'tobTecStepRKSmoother'
0338 )
0339 trackingLowPU.toModify(tobTecStepFitterSmoother, MinNumberOfHits = 8)
0340 
0341 tobTecStepFitterSmootherForLoopers = tobTecStepFitterSmoother.clone(
0342     ComponentName = 'tobTecStepFitterSmootherForLoopers',
0343     Fitter        = 'tobTecStepRKFitterForLoopers',
0344     Smoother      = 'tobTecStepRKSmootherForLoopers'
0345 )
0346 
0347 # Also necessary to specify minimum number of hits after final track fit
0348 tobTecStepRKTrajectoryFitter = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectoryFitter.clone(
0349     ComponentName = 'tobTecStepRKFitter',
0350     minHits       = 7
0351 )
0352 trackingLowPU.toModify(tobTecStepRKTrajectoryFitter, minHits = 8)
0353 
0354 tobTecStepRKTrajectoryFitterForLoopers = tobTecStepRKTrajectoryFitter.clone(
0355     ComponentName = 'tobTecStepRKFitterForLoopers',
0356     Propagator    = 'PropagatorWithMaterialForLoopers',
0357 )
0358 
0359 tobTecStepRKTrajectorySmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectorySmoother.clone(
0360     ComponentName  = 'tobTecStepRKSmoother',
0361     errorRescaling = 10.0,
0362     minHits        = 7
0363 )
0364 trackingLowPU.toModify(tobTecStepRKTrajectorySmoother, minHits = 8)
0365 
0366 tobTecStepRKTrajectorySmootherForLoopers = tobTecStepRKTrajectorySmoother.clone(
0367     ComponentName = 'tobTecStepRKSmootherForLoopers',
0368     Propagator    = 'PropagatorWithMaterialForLoopers',
0369 )
0370 
0371 import TrackingTools.TrackFitters.FlexibleKFFittingSmoother_cfi
0372 tobTecFlexibleKFFittingSmoother = TrackingTools.TrackFitters.FlexibleKFFittingSmoother_cfi.FlexibleKFFittingSmoother.clone(
0373     ComponentName  = 'tobTecFlexibleKFFittingSmoother',
0374     standardFitter = 'tobTecStepFitterSmoother',
0375     looperFitter   = 'tobTecStepFitterSmootherForLoopers',
0376 )
0377 
0378 
0379 # TRACK FITTING
0380 import RecoTracker.TrackProducer.TrackProducerIterativeDefault_cfi
0381 tobTecStepTracks = RecoTracker.TrackProducer.TrackProducerIterativeDefault_cfi.TrackProducerIterativeDefault.clone(
0382     src           = 'tobTecStepTrackCandidates',
0383     AlgorithmName = 'tobTecStep',
0384     #Fitter = 'tobTecStepFitterSmoother',
0385     Fitter        = 'tobTecFlexibleKFFittingSmoother',
0386 )
0387 fastSim.toModify(tobTecStepTracks, TTRHBuilder = 'WithoutRefit')
0388 
0389 
0390 # TRACK SELECTION AND QUALITY FLAG SETTING.
0391 from RecoTracker.FinalTrackSelectors.TrackMVAClassifierPrompt_cfi import *
0392 from RecoTracker.FinalTrackSelectors.TrackMVAClassifierDetached_cfi import *
0393 tobTecStepClassifier1 = TrackMVAClassifierDetached.clone(
0394     src         = 'tobTecStepTracks',
0395     mva         = dict(GBRForestLabel = 'MVASelectorIter6_13TeV'),
0396     qualityCuts = [-0.6,-0.45,-0.3]
0397 )
0398 fastSim.toModify(tobTecStepClassifier1, vertices = 'firstStepPrimaryVerticesBeforeMixing')
0399 
0400 tobTecStepClassifier2 = TrackMVAClassifierPrompt.clone(
0401     src         = 'tobTecStepTracks',
0402     mva         = dict(GBRForestLabel = 'MVASelectorIter0_13TeV'),
0403     qualityCuts = [0.0,0.0,0.0]
0404 )
0405 fastSim.toModify(tobTecStepClassifier2,vertices = 'firstStepPrimaryVerticesBeforeMixing')
0406 
0407 from RecoTracker.FinalTrackSelectors.ClassifierMerger_cfi import *
0408 tobTecStep = ClassifierMerger.clone(
0409     inputClassifiers = ['tobTecStepClassifier1','tobTecStepClassifier2']
0410 )
0411 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
0412 trackingPhase1.toReplaceWith(tobTecStep, tobTecStepClassifier1.clone(
0413      mva = dict(GBRForestLabel = 'MVASelectorTobTecStep_Phase1'),
0414      qualityCuts = [-0.6,-0.45,-0.3]
0415 ))
0416 
0417 from RecoTracker.FinalTrackSelectors.trackTfClassifier_cfi import *
0418 from RecoTracker.FinalTrackSelectors.trackSelectionTf_cfi import *
0419 from RecoTracker.FinalTrackSelectors.trackSelectionTf_CKF_cfi import *
0420 trackdnn.toReplaceWith(tobTecStep, trackTfClassifier.clone(
0421      src         = 'tobTecStepTracks',
0422      qualityCuts = qualityCutDictionary.TobTecStep.value()
0423 ))
0424 (trackdnn & fastSim).toModify(tobTecStep,vertices = 'firstStepPrimaryVerticesBeforeMixing')
0425 
0426 pp_on_AA.toModify(tobTecStep, qualityCuts = [-0.6,-0.3,0.7])
0427 
0428 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
0429 trackingLowPU.toReplaceWith(tobTecStep, RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
0430     src            = 'tobTecStepTracks',
0431     useAnyMVA      = cms.bool(False),
0432     GBRForestLabel = cms.string('MVASelectorIter6'),
0433     trackSelectors = [
0434         RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
0435             name = 'tobTecStepLoose',
0436             chi2n_par = 0.4,
0437             res_par = ( 0.003, 0.001 ),
0438             minNumberLayers = 5,
0439             maxNumberLostLayers = 1,
0440             minNumber3DLayers = 2,
0441             d0_par1 = ( 2.0, 4.0 ),
0442             dz_par1 = ( 1.8, 4.0 ),
0443             d0_par2 = ( 2.0, 4.0 ),
0444             dz_par2 = ( 1.8, 4.0 )
0445         ),
0446         RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
0447             name = 'tobTecStepTight',
0448             preFilterName = 'tobTecStepLoose',
0449             chi2n_par = 0.3,
0450             res_par = ( 0.003, 0.001 ),
0451             minNumberLayers = 5,
0452             maxNumberLostLayers = 0,
0453             minNumber3DLayers = 2,
0454             d0_par1 = ( 1.5, 4.0 ),
0455             dz_par1 = ( 1.4, 4.0 ),
0456             d0_par2 = ( 1.5, 4.0 ),
0457             dz_par2 = ( 1.4, 4.0 )
0458         ),
0459         RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
0460             name = 'QualityMasks',
0461             preFilterName = 'tobTecStepTight',
0462             chi2n_par = 0.2,
0463             res_par = ( 0.003, 0.001 ),
0464             minNumberLayers = 5,
0465             maxNumberLostLayers = 0,
0466             minNumber3DLayers = 2,
0467             d0_par1 = ( 1.4, 4.0 ),
0468             dz_par1 = ( 1.3, 4.0 ),
0469             d0_par2 = ( 1.4, 4.0 ),
0470             dz_par2 = ( 1.3, 4.0 )
0471         ),
0472     ] #end of vpset
0473 )) #end of clone
0474 
0475 
0476 
0477 TobTecStepTask = cms.Task(tobTecStepClusters,
0478                           tobTecStepSeedLayersTripl,
0479                           tobTecStepTrackingRegionsTripl,
0480                           tobTecStepHitDoubletsTripl,
0481                           tobTecStepHitTripletsTripl,
0482                           tobTecStepSeedsTripl,
0483                           tobTecStepSeedLayersPair,
0484                           tobTecStepTrackingRegionsPair,
0485                           tobTecStepHitDoubletsPair,
0486                           tobTecStepSeedsPair,
0487                           tobTecStepSeeds,
0488                           tobTecStepTrackCandidates,
0489                           tobTecStepTracks,
0490                           tobTecStepClassifier1,tobTecStepClassifier2,
0491                           tobTecStep)
0492 TobTecStep = cms.Sequence(TobTecStepTask)
0493 
0494 _TobTecStepTask_trackingMkFit = TobTecStepTask.copy()
0495 _TobTecStepTask_trackingMkFit.add(tobTecStepTrackCandidatesMkFitSeeds, tobTecStepTrackCandidatesMkFit, tobTecStepTrackCandidatesMkFitConfig)
0496 trackingMkFitTobTecStep.toReplaceWith(TobTecStepTask, _TobTecStepTask_trackingMkFit)
0497 
0498 ### Following are specific for LowPU, they're collected here to
0499 ### not to interfere too much with the default configuration
0500 # SEEDING LAYERS
0501 tobTecStepSeedLayers = _mod.seedingLayersEDProducer.clone(
0502     layerList = ['TOB1+TOB2', 
0503         'TOB1+TEC1_pos', 'TOB1+TEC1_neg', 
0504         'TEC1_pos+TEC2_pos', 'TEC2_pos+TEC3_pos', 
0505         'TEC3_pos+TEC4_pos', 'TEC4_pos+TEC5_pos', 
0506         'TEC5_pos+TEC6_pos', 'TEC6_pos+TEC7_pos', 
0507         'TEC1_neg+TEC2_neg', 'TEC2_neg+TEC3_neg', 
0508         'TEC3_neg+TEC4_neg', 'TEC4_neg+TEC5_neg', 
0509         'TEC5_neg+TEC6_neg', 'TEC6_neg+TEC7_neg'],
0510     TOB = dict(
0511         matchedRecHits = cms.InputTag('siStripMatchedRecHits','matchedRecHit'),
0512         skipClusters = cms.InputTag('tobTecStepClusters'),
0513         TTRHBuilder = cms.string('WithTrackAngle'), 
0514         clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTiny'))
0515     ),
0516     TEC = dict(
0517         matchedRecHits = cms.InputTag('siStripMatchedRecHits','matchedRecHit'),
0518         skipClusters = cms.InputTag('tobTecStepClusters'),
0519         #    untracked bool useSimpleRphiHitsCleaner = false
0520         useRingSlector = cms.bool(True),
0521         TTRHBuilder = cms.string('WithTrackAngle'), 
0522         clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTiny')),
0523         minRing = cms.int32(5),
0524         maxRing = cms.int32(5)
0525     )
0526 )
0527 
0528 trackingLowPU.toReplaceWith(TobTecStepTask, 
0529     cms.Task(
0530     tobTecStepClusters,
0531     tobTecStepSeedLayers,
0532     tobTecStepTrackingRegionsPair,
0533     tobTecStepHitDoubletsPair,
0534     tobTecStepSeeds,
0535     tobTecStepTrackCandidates,
0536     tobTecStepTracks,
0537     tobTecStep
0538     )
0539 )
0540 
0541 #fastsim
0542 import FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi
0543 tobTecStepMasks = FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi.maskProducerFromClusterRemover(tobTecStepClusters)
0544 fastSim.toReplaceWith(TobTecStepTask,
0545                       cms.Task(tobTecStepMasks
0546                                    ,tobTecStepTrackingRegionsTripl
0547                                    ,tobTecStepSeedsTripl
0548                                    ,tobTecStepTrackingRegionsPair
0549                                    ,tobTecStepSeedsPair
0550                                    ,tobTecStepSeeds
0551                                    ,tobTecStepTrackCandidates
0552                                    ,tobTecStepTracks
0553                                    ,tobTecStepClassifier1,tobTecStepClassifier2
0554                                    ,tobTecStep
0555                                    )
0556 )