CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/RecoTracker/IterativeTracking/python/LargeD0_PixelPairStep_cff.py

Go to the documentation of this file.
00001 import FWCore.ParameterSet.Config as cms
00002 
00003 #
00004 # Very large impact parameter tracking: Iteration 2 using pixel-pair seeding
00005 #
00006  
00007 #HIT REMOVAL
00008 
00009 trkfilter2 = cms.EDProducer("QualityFilter",
00010     TrackQuality = cms.string('highPurity'),
00011 # Reject hits found in standard iterations                          
00012     recTracks = cms.InputTag("tobtecStep")
00013 # Reject hits found in all previous iterations                          
00014 #    recTracks = cms.InputTag("largeD0step1")
00015 )
00016 
00017 largeD0step2Clusters = cms.EDProducer("TrackClusterRemover",
00018     trajectories = cms.InputTag("trkfilter2"),
00019 
00020 # To run this step eliminating hits from standard iterations.
00021     oldClusterRemovalInfo = cms.InputTag("fifthClusters"),
00022     pixelClusters = cms.InputTag("fifthClusters"),
00023     stripClusters = cms.InputTag("fifthClusters"),
00024 
00025 # To run this step, eliminating hits from all previous iterations ...   
00026 #    oldClusterRemovalInfo = cms.InputTag("largeD0step1Clusters"),
00027 #    pixelClusters = cms.InputTag("largeD0step1Clusters"),
00028 #    stripClusters = cms.InputTag("largeD0step1Clusters"),
00029 
00030 # To run it, not eliminating any hits.
00031 #    trajectories = cms.InputTag("zeroStepFilter"),
00032 #    pixelClusters = cms.InputTag("siPixelClusters"),
00033 #    stripClusters = cms.InputTag("siStripClusters"),
00034                                      
00035     Common = cms.PSet(
00036        maxChi2 = cms.double(30.0)
00037 # To run it not eliminating any hits, you also need ...
00038 #       maxChi2 = cms.double(0.0)
00039     )
00040 )
00041 
00042 # Propagator taking into account momentum uncertainty in multiple
00043 # scattering calculation.
00044 #from TrackingTools.MaterialEffects.Propagators_PtMin09_cff import *
00045 import TrackingTools.MaterialEffects.MaterialPropagator_cfi
00046 MaterialPropagatorPtMin06 = TrackingTools.MaterialEffects.MaterialPropagator_cfi.MaterialPropagator.clone(
00047     ComponentName = 'PropagatorWithMaterialPtMin06',
00048     ptMin = 0.6
00049     )
00050  
00051 import TrackingTools.MaterialEffects.OppositeMaterialPropagator_cfi
00052 OppositeMaterialPropagatorPtMin06 = TrackingTools.MaterialEffects.OppositeMaterialPropagator_cfi.OppositeMaterialPropagator.clone(
00053     ComponentName = 'PropagatorWithMaterialOppositePtMin06',
00054     ptMin = 0.6
00055     )
00056 
00057 #TRACKER HITS
00058 import RecoLocalTracker.SiPixelRecHits.SiPixelRecHits_cfi
00059 import RecoLocalTracker.SiStripRecHitConverter.SiStripRecHitConverter_cfi
00060 largeD0step2PixelRecHits = RecoLocalTracker.SiPixelRecHits.SiPixelRecHits_cfi.SiPixelRecHits.clone(
00061     src = 'largeD0step2Clusters',
00062     )
00063 largeD0step2StripRecHits = RecoLocalTracker.SiStripRecHitConverter.SiStripRecHitConverter_cfi.siStripMatchedRecHits.clone(
00064     ClusterProducer = 'largeD0step2Clusters',
00065     )
00066 
00067 #SEEDING LAYERS
00068 import RecoTracker.TkSeedingLayers.PixelLayerPairs_cfi
00069 largeD0step2layerpairs = RecoTracker.TkSeedingLayers.PixelLayerPairs_cfi.pixellayerpairs.clone(
00070     ComponentName = 'largeD0step2LayerPairs'
00071     )
00072 largeD0step2layerpairs.BPix.HitProducer = 'largeD0step2PixelRecHits'
00073 largeD0step2layerpairs.FPix.HitProducer = 'largeD0step2PixelRecHits'
00074 
00075 #SEEDS
00076 import RecoTracker.TkSeedGenerator.GlobalPixelSeeds_cff
00077 largeD0step2Seeds = RecoTracker.TkSeedGenerator.GlobalPixelSeeds_cff.globalPixelSeeds.clone()
00078 largeD0step2Seeds.OrderedHitsFactoryPSet.SeedingLayers = 'largeD0step2LayerPairs'
00079 largeD0step2Seeds.RegionFactoryPSet.RegionPSet.ptMin = 0.6
00080 largeD0step2Seeds.RegionFactoryPSet.RegionPSet.originRadius = 2.5
00081 largeD0step2Seeds.RegionFactoryPSet.RegionPSet.originHalfLength = 15
00082 import RecoTracker.TkSeedGenerator.SeedFromConsecutiveHitsStraightLineCreator_cfi
00083 largeD0step2Seeds.SeedCreatorPSet = RecoTracker.TkSeedGenerator.SeedFromConsecutiveHitsStraightLineCreator_cfi.SeedFromConsecutiveHitsStraightLineCreator.clone(
00084     propagator = cms.string('PropagatorWithMaterialPtMin06')
00085 )
00086 
00087 
00088 #TRAJECTORY MEASUREMENT
00089 import RecoTracker.MeasurementDet.MeasurementTrackerESProducer_cfi
00090 largeD0step2MeasurementTracker = RecoTracker.MeasurementDet.MeasurementTrackerESProducer_cfi.MeasurementTracker.clone(
00091     ComponentName = 'largeD0step2MeasurementTracker',
00092     pixelClusterProducer = 'largeD0step2Clusters',
00093     stripClusterProducer = 'largeD0step2Clusters'
00094     )
00095 
00096 #TRAJECTORY FILTERS (for inwards and outwards track building steps)
00097 import TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi
00098 
00099 largeD0step2CkfTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
00100     ComponentName = 'largeD0step2CkfTrajectoryFilter'
00101     )
00102 #largeD0step2CkfTrajectoryFilter.filterPset.maxLostHits = 1
00103 #largeD0step2CkfTrajectoryFilter.filterPset.maxConstep2LostHits = 2
00104 largeD0step2CkfTrajectoryFilter.filterPset.minimumNumberOfHits = 6
00105 largeD0step2CkfTrajectoryFilter.filterPset.minPt = 0.6
00106 largeD0step2CkfTrajectoryFilter.filterPset.minHitsMinPt = 3
00107 
00108 #TRAJECTORY BUILDER
00109 import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi
00110 largeD0step2CkfTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi.GroupedCkfTrajectoryBuilder.clone(
00111     ComponentName = 'largeD0step2CkfTrajectoryBuilder',
00112     MeasurementTrackerName = 'largeD0step2MeasurementTracker',
00113     trajectoryFilterName = 'largeD0step2CkfTrajectoryFilter',
00114     useSameTrajFilter = True,
00115     minNrOfHitsForRebuild = 6,
00116     maxCand = 5,
00117     #lostHitPenalty = 100.,
00118     #alwaysUseInvalidHits = False,
00119     propagatorAlong = cms.string('PropagatorWithMaterialPtMin06'),
00120     propagatorOpposite = cms.string('PropagatorWithMaterialOppositePtMin06')
00121     )
00122 
00123 #TRACK CANDIDATES
00124 import RecoTracker.CkfPattern.CkfTrackCandidates_cfi
00125 largeD0step2TrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
00126     src = 'largeD0step2Seeds',
00127     TrajectoryBuilder = 'largeD0step2CkfTrajectoryBuilder',
00128     doSeedingRegionRebuilding = True,
00129     useHitsSplitting = True,
00130     cleanTrajectoryAfterInOut = True
00131     )
00132 
00133 #
00134 # TRACK FITTING AND SMOOTHING
00135 #
00136 
00137 import TrackingTools.TrackFitters.RungeKuttaFitters_cff
00138 largeD0step2FittingSmootherWithOutlierRejection = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKFittingSmoother.clone(
00139     ComponentName = 'largeD0step2FittingSmootherWithOutlierRejection',
00140     EstimateCut = 20,
00141     MinNumberOfHits = 6,
00142     Fitter = cms.string('largeD0step2RKFitter'),
00143     Smoother = cms.string('largeD0step2RKSmoother'),
00144 )
00145 # Also necessary to specify minimum number of hits after final track fit
00146 largeD0step2RKTrajectoryFitter = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectoryFitter.clone(
00147     ComponentName = cms.string('largeD0step2RKFitter'),
00148     minHits = 6,
00149 )
00150 largeD0step2RKTrajectorySmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectorySmoother.clone(
00151     ComponentName = cms.string('largeD0step2RKSmoother'),
00152     minHits = 6,
00153 )
00154 #TRACKS
00155 import RecoTracker.TrackProducer.TrackProducer_cfi
00156 largeD0step2WithMaterialTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
00157     src = 'largeD0step2TrackCandidates',
00158     clusterRemovalInfo = 'largeD0step2Clusters',
00159     AlgorithmName = cms.string('iter2LargeD0'),
00160     Fitter = 'largeD0step2FittingSmootherWithOutlierRejection',
00161     )
00162 
00163 # TRACK QUALITY DEFINITION
00164 import RecoTracker.FinalTrackSelectors.selectLoose_cfi
00165 import RecoTracker.FinalTrackSelectors.selectTight_cfi
00166 import RecoTracker.FinalTrackSelectors.selectHighPurity_cfi
00167 
00168 largeD0step2Loose = RecoTracker.FinalTrackSelectors.selectLoose_cfi.selectLoose.clone(
00169     src = 'largeD0step2WithMaterialTracks',
00170     keepAllTracks = False,
00171     copyExtras = False,
00172     copyTrajectories = True,
00173     applyAdaptedPVCuts = False,
00174     chi2n_par = 99.,
00175     minNumberLayers = 5,
00176     minNumber3DLayers = 0,
00177     )
00178 largeD0step2Tight = RecoTracker.FinalTrackSelectors.selectTight_cfi.selectTight.clone(
00179     src = 'largeD0step2Loose',
00180     keepAllTracks = True,
00181     copyExtras = False,
00182     copyTrajectories = True,
00183     applyAdaptedPVCuts = False,
00184     chi2n_par = 99.,
00185     minNumberLayers = 10,
00186     minNumber3DLayers = 3,
00187     )
00188 
00189 largeD0step2Trk = RecoTracker.FinalTrackSelectors.selectHighPurity_cfi.selectHighPurity.clone(
00190     src = 'largeD0step2Tight',
00191     keepAllTracks = True,
00192     copyExtras = False,
00193     copyTrajectories = True,
00194     applyAdaptedPVCuts = False,
00195     chi2n_par = 99.,
00196     minNumberLayers = 10,
00197     minNumber3DLayers = 3,
00198     )
00199 
00200 largeD0step2 = cms.Sequence(trkfilter2*
00201                             largeD0step2Clusters*
00202                             largeD0step2PixelRecHits*largeD0step2StripRecHits*
00203                             largeD0step2Seeds*
00204                             largeD0step2TrackCandidates*
00205                             largeD0step2WithMaterialTracks*
00206                             largeD0step2Loose*
00207                             largeD0step2Tight*
00208                             largeD0step2Trk)
00209                           
00210 
00211 
00212 
00213 
00214 
00215