CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_10_patch2/src/RecoTracker/IterativeTracking/python/LowPtBarrelTripletStep_cff.py

Go to the documentation of this file.
00001 import FWCore.ParameterSet.Config as cms
00002 
00003 # NEW CLUSTERS (remove previously used clusters)
00004 lowPtBarrelTripletStepClusters = cms.EDProducer("TrackClusterRemover",
00005     clusterLessSolution= cms.bool(True),
00006     trajectories = cms.InputTag("lowPtForwardTripletStepTracks"),
00007     oldClusterRemovalInfo = cms.InputTag("lowPtForwardTripletStepClusters"),
00008     overrideTrkQuals = cms.InputTag('lowPtForwardTripletStepSelector','lowPtForwardTripletStep'),
00009     TrackQuality = cms.string('highPurity'),
00010     pixelClusters = cms.InputTag("siPixelClusters"),
00011     stripClusters = cms.InputTag("siStripClusters"),
00012     Common = cms.PSet(
00013         maxChi2 = cms.double(9.0)
00014     )
00015 )
00016 
00017 # SEEDING LAYERS
00018 import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi
00019 lowPtBarrelTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone(
00020     ComponentName = 'lowPtBarrelTripletStepSeedLayers'
00021     )
00022 lowPtBarrelTripletStepSeedLayers.BPix.skipClusters = cms.InputTag('lowPtBarrelTripletStepClusters')
00023 lowPtBarrelTripletStepSeedLayers.FPix.skipClusters = cms.InputTag('lowPtBarrelTripletStepClusters')
00024 lowPtBarrelTripletStepSeedLayers.layerList = cms.vstring('BPix1+BPix2+BPix3') 
00025 
00026 
00027 # SEEDS
00028 import RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff
00029 from RecoTracker.TkTrackingRegions.GlobalTrackingRegionFromBeamSpot_cfi import RegionPsetFomBeamSpotBlock
00030 lowPtBarrelTripletStepSeeds = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone(
00031     RegionFactoryPSet = RegionPsetFomBeamSpotBlock.clone(
00032     ComponentName = cms.string('GlobalRegionProducerFromBeamSpot'),
00033     RegionPSet = RegionPsetFomBeamSpotBlock.RegionPSet.clone(
00034     ptMin = 0.2,
00035     originRadius = 0.03,
00036     nSigmaZ = 4.0
00037     )
00038     )
00039     )
00040 lowPtBarrelTripletStepSeeds.OrderedHitsFactoryPSet.SeedingLayers = 'lowPtBarrelTripletStepSeedLayers'
00041 
00042 from RecoPixelVertexing.PixelLowPtUtilities.ClusterShapeHitFilterESProducer_cfi import *
00043 lowPtBarrelTripletStepSeeds.OrderedHitsFactoryPSet.GeneratorPSet.SeedComparitorPSet.ComponentName = 'LowPtClusterShapeSeedComparitor'
00044 
00045 
00046 # QUALITY CUTS DURING TRACK BUILDING
00047 import TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi
00048 lowPtBarrelTripletStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
00049     ComponentName = 'lowPtBarrelTripletStepTrajectoryFilter',
00050     filterPset = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.filterPset.clone(
00051     #maxLostHits = 3, # use LostHitFraction filter instead
00052     minimumNumberOfHits = 3,
00053     minPt = 0.1
00054     )
00055     )
00056 
00057 import TrackingTools.KalmanUpdators.Chi2MeasurementEstimatorESProducer_cfi
00058 lowPtBarrelTripletStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimatorESProducer_cfi.Chi2MeasurementEstimator.clone(
00059     ComponentName = cms.string('lowPtBarrelTripletStepChi2Est'),
00060     nSigma = cms.double(3.0),
00061     MaxChi2 = cms.double(9.0) 
00062 )
00063 
00064 # TRACK BUILDING
00065 import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi
00066 lowPtBarrelTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi.GroupedCkfTrajectoryBuilder.clone(
00067     ComponentName = 'lowPtBarrelTripletStepTrajectoryBuilder',
00068     MeasurementTrackerName = '',
00069     trajectoryFilterName = 'lowPtBarrelTripletStepTrajectoryFilter',
00070     clustersToSkip = cms.InputTag('lowPtBarrelTripletStepClusters'),
00071     maxCand = 3,
00072 
00073     #lostHitPenalty = cms.double(10.0), 
00074 
00075     estimator = cms.string('lowPtBarrelTripletStepChi2Est'),
00076     # 0.63 GeV is the maximum pT for a charged particle to loop within the 1.1m radius
00077     # of the outermost Tracker barrel layer (with B=3.8T)
00078     maxPtForLooperReconstruction = cms.double(0.63) 
00079     # set the variable to a negative value to turn-off the looper reconstruction 
00080     #maxPtForLooperReconstruction = cms.double(-1.) 
00081     )
00082 
00083 # MAKING OF TRACK CANDIDATES
00084 import RecoTracker.CkfPattern.CkfTrackCandidates_cfi
00085 lowPtBarrelTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
00086     src = cms.InputTag('lowPtBarrelTripletStepSeeds'),
00087 
00088     ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
00089     numHitsForSeedCleaner = cms.int32(50),
00090     onlyPixelHitsForSeedCleaner = cms.bool(True),
00091 
00092     TrajectoryBuilder = 'lowPtBarrelTripletStepTrajectoryBuilder',
00093     doSeedingRegionRebuilding = True,
00094     useHitsSplitting = True,
00095     TransientInitialStateEstimatorParameters = cms.PSet(
00096         propagatorAlongTISE = cms.string('PropagatorWithMaterialForLoopers'),
00097         propagatorOppositeTISE = cms.string('PropagatorWithMaterialForLoopersOpposite'),
00098         numberMeasurementsForFit = cms.int32(4)
00099     )
00100 )
00101 
00102 ### Have to clone the KF fitters because only the PropagatorWithMaterialForLoopers (no RK) can be used for the
00103 ### reconstruction of loopers
00104 
00105 # TRACK FITTING
00106 import TrackingTools.TrackFitters.KFTrajectoryFitterESProducer_cfi
00107 lowPtBarrelTripletStepKFTrajectoryFitter = TrackingTools.TrackFitters.KFTrajectoryFitterESProducer_cfi.KFTrajectoryFitter.clone(
00108     ComponentName = cms.string('lowPtBarrelTripletStepKFTrajectoryFitter'),
00109     Propagator = cms.string('PropagatorWithMaterialForLoopers')
00110 )
00111 
00112 import TrackingTools.TrackFitters.KFTrajectorySmootherESProducer_cfi
00113 lowPtBarrelTripletStepKFTrajectorySmoother = TrackingTools.TrackFitters.KFTrajectorySmootherESProducer_cfi.KFTrajectorySmoother.clone(
00114     ComponentName = cms.string('lowPtBarrelTripletStepKFTrajectorySmoother'),
00115     Propagator = cms.string('PropagatorWithMaterialForLoopers'),
00116     errorRescaling = cms.double(10.0)
00117 )
00118 
00119 import TrackingTools.TrackFitters.KFFittingSmootherESProducer_cfi
00120 lowPtBarrelTripletStepKFFittingSmoother = TrackingTools.TrackFitters.KFFittingSmootherESProducer_cfi.KFFittingSmoother.clone(
00121     ComponentName = cms.string('lowPtBarrelTripletStepKFFittingSmoother'),
00122     Fitter = cms.string('lowPtBarrelTripletStepKFTrajectoryFitter'),
00123     Smoother = cms.string('lowPtBarrelTripletStepKFTrajectorySmoother'),
00124     EstimateCut = cms.double(20.0),
00125     LogPixelProbabilityCut = cms.double(-14.0),                               
00126     MinNumberOfHits = cms.int32(3)
00127 )
00128 
00129 
00130 
00131 import RecoTracker.TrackProducer.TrackProducer_cfi
00132 lowPtBarrelTripletStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
00133     src = 'lowPtBarrelTripletStepTrackCandidates',
00134     AlgorithmName = cms.string('iter1'),
00135     Fitter = cms.string('lowPtBarrelTripletStepKFFittingSmoother'),
00136     #Propagator = cms.string('PropagatorWithMaterialForLoopers'),
00137     #NavigationSchool = cms.string('') ### Is the outerHitPattern filled correctly for loopers???
00138     )
00139 
00140 
00141 # Final selection
00142 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
00143 lowPtBarrelTripletStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
00144     src='lowPtBarrelTripletStepTracks',
00145     trackSelectors= cms.VPSet(
00146         RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
00147             name = 'lowPtBarrelTripletStepLoose',
00148             ), #end of pset
00149         RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
00150             name = 'lowPtBarrelTripletStepTight',
00151             preFilterName = 'lowPtBarrelTripletStepLoose',
00152             ),
00153         RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
00154             name = 'lowPtBarrelTripletStep',
00155             preFilterName = 'lowPtBarrelTripletStepTight',
00156             ),
00157         ) #end of vpset
00158     ) #end of clone
00159 
00160 # Final sequence
00161 LowPtBarrelTripletStep = cms.Sequence(lowPtBarrelTripletStepClusters*
00162                                       lowPtBarrelTripletStepSeeds*
00163                                       lowPtBarrelTripletStepTrackCandidates*
00164                                       lowPtBarrelTripletStepTracks*
00165                                       lowPtBarrelTripletStepSelector)