Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 import FWCore.ParameterSet.Config as cms
0002 
0003 # for no-loopers
0004 from Configuration.ProcessModifiers.trackingNoLoopers_cff import trackingNoLoopers
0005 
0006 # NEW CLUSTERS (remove previously used clusters)
0007 from RecoLocalTracker.SubCollectionProducers.trackClusterRemover_cfi import *
0008 lowPtBarrelTripletStepClusters = trackClusterRemover.clone(
0009     maxChi2               = 9.0,
0010     trajectories          = 'lowPtForwardTripletStepTracks',
0011     pixelClusters         = 'siPixelClusters',
0012     stripClusters         = 'siStripClusters',
0013     oldClusterRemovalInfo = 'lowPtForwardTripletStepClusters',
0014     overrideTrkQuals      = 'lowPtForwardTripletStepSelector:lowPtForwardTripletStep',
0015     TrackQuality          = 'highPurity'
0016 )
0017 
0018 # SEEDING LAYERS
0019 import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi
0020 lowPtBarrelTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone(
0021     BPix      = dict(skipClusters = cms.InputTag('lowPtBarrelTripletStepClusters')),
0022     FPix      = dict(skipClusters = cms.InputTag('lowPtBarrelTripletStepClusters')),
0023     layerList = ['BPix1+BPix2+BPix3'] 
0024 )
0025 
0026 # SEEDS
0027 import RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff
0028 from RecoTracker.TkTrackingRegions.GlobalTrackingRegionFromBeamSpot_cfi import RegionPsetFomBeamSpotBlock
0029 lowPtBarrelTripletStepSeeds = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone(
0030     RegionFactoryPSet = RegionPsetFomBeamSpotBlock.clone(
0031     ComponentName     = 'GlobalRegionProducerFromBeamSpot',
0032     RegionPSet        = RegionPsetFomBeamSpotBlock.RegionPSet.clone(
0033     ptMin             = 0.2,
0034     originRadius      = 0.03,
0035     nSigmaZ           = 4.0 )
0036     )
0037 )
0038 lowPtBarrelTripletStepSeeds.OrderedHitsFactoryPSet.SeedingLayers = 'lowPtBarrelTripletStepSeedLayers'
0039 
0040 from RecoTracker.PixelLowPtUtilities.ClusterShapeHitFilterESProducer_cfi import *
0041 import RecoTracker.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi
0042 lowPtBarrelTripletStepSeeds.OrderedHitsFactoryPSet.GeneratorPSet.SeedComparitorPSet = RecoTracker.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi.LowPtClusterShapeSeedComparitor
0043 
0044 
0045 # QUALITY CUTS DURING TRACK BUILDING
0046 import TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff
0047 lowPtBarrelTripletStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
0048     #maxLostHits = 3, # use LostHitFraction filter instead
0049     minimumNumberOfHits = 3,
0050     minPt               = 0.1
0051 )
0052 
0053 import TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi
0054 lowPtBarrelTripletStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi.Chi2MeasurementEstimator.clone(
0055     ComponentName = 'lowPtBarrelTripletStepChi2Est',
0056     nSigma        = 3.0,
0057     MaxChi2       = 9.0 
0058 )
0059 
0060 # TRACK BUILDING
0061 import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi
0062 lowPtBarrelTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
0063     trajectoryFilter = dict(refToPSet_ = 'lowPtBarrelTripletStepTrajectoryFilter'),
0064     clustersToSkip = 'lowPtBarrelTripletStepClusters',
0065     maxCand = 3,
0066     #lostHitPenalty = 10.,
0067     estimator = 'lowPtBarrelTripletStepChi2Est',
0068     # 0.63 GeV is the maximum pT for a charged particle to loop within the 1.1m radius
0069     # of the outermost Tracker barrel layer (with B=3.8T)
0070     maxPtForLooperReconstruction = 0.63,
0071     # set the variable to a negative value to turn-off the looper reconstruction
0072     #maxPtForLooperReconstruction = -1.,
0073 )
0074 trackingNoLoopers.toModify(lowPtBarrelTripletStepTrajectoryBuilder,
0075                            maxPtForLooperReconstruction = 0.0)
0076 # MAKING OF TRACK CANDIDATES
0077 import RecoTracker.CkfPattern.CkfTrackCandidates_cfi
0078 lowPtBarrelTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
0079     src = 'lowPtBarrelTripletStepSeeds',
0080     ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
0081     numHitsForSeedCleaner = 50,
0082     onlyPixelHitsForSeedCleaner = True,
0083     TrajectoryBuilderPSet = dict(refToPSet_ = 'lowPtBarrelTripletStepTrajectoryBuilder'),
0084     doSeedingRegionRebuilding = True,
0085     useHitsSplitting = True,
0086     TransientInitialStateEstimatorParameters = cms.PSet(
0087         propagatorAlongTISE = 'PropagatorWithMaterialForLoopers',
0088         propagatorOppositeTISE = 'PropagatorWithMaterialForLoopersOpposite',
0089         numberMeasurementsForFit = 4,
0090     )
0091 )
0092 
0093 ### Have to clone the KF fitters because only the PropagatorWithMaterialForLoopers (no RK) can be used for the
0094 ### reconstruction of loopers
0095 
0096 # TRACK FITTING
0097 import TrackingTools.TrackFitters.KFTrajectoryFitter_cfi
0098 lowPtBarrelTripletStepKFTrajectoryFitter = TrackingTools.TrackFitters.KFTrajectoryFitter_cfi.KFTrajectoryFitter.clone(
0099     ComponentName = 'lowPtBarrelTripletStepKFTrajectoryFitter',
0100     Propagator    = 'PropagatorWithMaterialForLoopers'
0101 )
0102 
0103 import TrackingTools.TrackFitters.KFTrajectorySmoother_cfi
0104 lowPtBarrelTripletStepKFTrajectorySmoother = TrackingTools.TrackFitters.KFTrajectorySmoother_cfi.KFTrajectorySmoother.clone(
0105     ComponentName  = 'lowPtBarrelTripletStepKFTrajectorySmoother',
0106     Propagator     = 'PropagatorWithMaterialForLoopers',
0107     errorRescaling = 10.0
0108 )
0109 
0110 import TrackingTools.TrackFitters.KFFittingSmoother_cfi
0111 lowPtBarrelTripletStepKFFittingSmoother = TrackingTools.TrackFitters.KFFittingSmoother_cfi.KFFittingSmoother.clone(
0112     ComponentName          = 'lowPtBarrelTripletStepKFFittingSmoother',
0113     Fitter                 = 'lowPtBarrelTripletStepKFTrajectoryFitter',
0114     Smoother               = 'lowPtBarrelTripletStepKFTrajectorySmoother',
0115     EstimateCut            = 20.0,
0116     LogPixelProbabilityCut = -14.0,                               
0117     MinNumberOfHits        = 3
0118 )
0119 
0120 import RecoTracker.TrackProducer.TrackProducerIterativeDefault_cfi
0121 lowPtBarrelTripletStepTracks = RecoTracker.TrackProducer.TrackProducerIterativeDefault_cfi.TrackProducerIterativeDefault.clone(
0122     src           = 'lowPtBarrelTripletStepTrackCandidates',
0123     AlgorithmName = 'lowPtTripletStep',
0124     Fitter        = 'lowPtBarrelTripletStepKFFittingSmoother',
0125     #Propagator = cms.string('PropagatorWithMaterialForLoopers'),
0126     #NavigationSchool = cms.string('') ### Is the outerHitPattern filled correctly for loopers???
0127 )
0128 
0129 
0130 # Final selection
0131 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
0132 lowPtBarrelTripletStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
0133     src = 'lowPtBarrelTripletStepTracks',
0134     trackSelectors= cms.VPSet(
0135         RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
0136             name = 'lowPtBarrelTripletStepLoose',
0137             ), #end of pset
0138         RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
0139             name = 'lowPtBarrelTripletStepTight',
0140             preFilterName = 'lowPtBarrelTripletStepLoose',
0141             ),
0142         RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
0143             name = 'lowPtBarrelTripletStep',
0144             preFilterName = 'lowPtBarrelTripletStepTight',
0145             ),
0146     ) #end of vpset
0147 ) #end of clone
0148 
0149 # Final sequence
0150 LowPtBarrelTripletStepTask = cms.Task(lowPtBarrelTripletStepClusters,
0151                                       lowPtBarrelTripletStepSeedLayers,
0152                                       lowPtBarrelTripletStepSeeds,
0153                                       lowPtBarrelTripletStepTrackCandidates,
0154                                       lowPtBarrelTripletStepTracks,
0155                                       lowPtBarrelTripletStepSelector)
0156 LowPtBarrelTripletStep = cms.Sequence(LowPtBarrelTripletStep)