CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/RecoTracker/IterativeTracking/python/LargeD0_PixelTripletStep_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 1 using pixel-triplet seeding
00005 #
00006 
00007 #HIT REMOVAL
00008 trkfilter1 = cms.EDProducer("QualityFilter",
00009     TrackQuality = cms.string('highPurity'),
00010 # Reject hits found in standard iterations                          
00011     recTracks = cms.InputTag("tobtecStep")
00012 )
00013 
00014 largeD0step1Clusters = cms.EDProducer("TrackClusterRemover",
00015     trajectories = cms.InputTag("trkfilter1"),
00016 
00017 # To run this step eliminating hits from standard iterations.
00018     oldClusterRemovalInfo = cms.InputTag("fifthClusters"),
00019     pixelClusters = cms.InputTag("fifthClusters"),
00020     stripClusters = cms.InputTag("fifthClusters"),
00021 
00022 # To run it, not eliminating any hits.
00023 #    trajectories = cms.InputTag("zeroStepFilter"),
00024 #    pixelClusters = cms.InputTag("siPixelClusters"),
00025 #    stripClusters = cms.InputTag("siStripClusters"),
00026                                      
00027     Common = cms.PSet(
00028        maxChi2 = cms.double(30.0)
00029 # To run it not eliminating any hits, you also need ...
00030 #       maxChi2 = cms.double(0.0)
00031     )
00032 )
00033 
00034 # Propagator taking into account momentum uncertainty in multiple
00035 # scattering calculation.
00036 from TrackingTools.MaterialEffects.Propagators_PtMin09_cff import *
00037 
00038 #TRACKER HITS
00039 import RecoLocalTracker.SiPixelRecHits.SiPixelRecHits_cfi
00040 import RecoLocalTracker.SiStripRecHitConverter.SiStripRecHitConverter_cfi
00041 largeD0step1PixelRecHits = RecoLocalTracker.SiPixelRecHits.SiPixelRecHits_cfi.SiPixelRecHits.clone(
00042     src = 'largeD0step1Clusters',
00043     )
00044 largeD0step1StripRecHits = RecoLocalTracker.SiStripRecHitConverter.SiStripRecHitConverter_cfi.siStripMatchedRecHits.clone(
00045     ClusterProducer = 'largeD0step1Clusters',
00046 )
00047 #SEEDING LAYERS
00048 import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi
00049 largeD0step1layertriplets = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone(
00050     ComponentName = 'largeD0step1LayerTriplets',
00051 )
00052 largeD0step1layertriplets.BPix.HitProducer = 'largeD0step1PixelRecHits'
00053 largeD0step1layertriplets.FPix.HitProducer = 'largeD0step1PixelRecHits'
00054 
00055 #SEEDS
00056 import RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff
00057 from RecoPixelVertexing.PixelTriplets.PixelTripletLargeTipGenerator_cfi import *
00058 largeD0step1Seeds = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone()
00059 largeD0step1Seeds.OrderedHitsFactoryPSet.SeedingLayers = 'largeD0step1LayerTriplets'
00060 # Use modified pixel-triplet code that works best for large impact parameters
00061 largeD0step1Seeds.OrderedHitsFactoryPSet.GeneratorPSet = cms.PSet(PixelTripletLargeTipGenerator)
00062 largeD0step1Seeds.SeedCreatorPSet.ComponentName = 'SeedFromConsecutiveHitsTripletOnlyCreator'
00063 largeD0step1Seeds.RegionFactoryPSet.RegionPSet.ptMin = 0.6
00064 largeD0step1Seeds.RegionFactoryPSet.RegionPSet.originRadius = 3.5
00065 largeD0step1Seeds.RegionFactoryPSet.RegionPSet.originHalfLength = 15
00066 #largeD0step1Seeds.SeedCreatorPSet.propagator = cms.string('PropagatorWithMaterialPtMin09')
00067 
00068 #TRAJECTORY MEASUREMENT
00069 import RecoTracker.MeasurementDet.MeasurementTrackerESProducer_cfi
00070 largeD0step1MeasurementTracker = RecoTracker.MeasurementDet.MeasurementTrackerESProducer_cfi.MeasurementTracker.clone(
00071     ComponentName = 'largeD0step1MeasurementTracker',
00072     pixelClusterProducer = 'largeD0step1Clusters',
00073     stripClusterProducer = 'largeD0step1Clusters',
00074 )
00075 #TRAJECTORY FILTERS (for inwards and outwards track building steps)
00076 import TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi
00077 
00078 largeD0step1CkfTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
00079     ComponentName = 'largeD0step1CkfTrajectoryFilter',
00080 )
00081 #largeD0step1CkfTrajectoryFilter.filterPset.maxLostHits = 1
00082 #largeD0step1CkfTrajectoryFilter.filterPset.maxConsecLostHits = 2
00083 largeD0step1CkfTrajectoryFilter.filterPset.minimumNumberOfHits = 6
00084 largeD0step1CkfTrajectoryFilter.filterPset.minPt = 0.6
00085 largeD0step1CkfTrajectoryFilter.filterPset.minHitsMinPt = 3
00086 
00087 #TRAJECTORY BUILDER
00088 import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi
00089 largeD0step1CkfTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi.GroupedCkfTrajectoryBuilder.clone(
00090     ComponentName = 'largeD0step1CkfTrajectoryBuilder',
00091     MeasurementTrackerName = 'largeD0step1MeasurementTracker',
00092     trajectoryFilterName = 'largeD0step1CkfTrajectoryFilter',
00093     useSameTrajFilter = True,
00094     minNrOfHitsForRebuild = 6,
00095     #lar    maxCand = 5,
00096     #lar    lostHitPenalty = 100.,
00097     #lar    alwaysUseInvalidHits = False,
00098     #lar    propagatorAlong = cms.string('PropagatorWithMaterialPtMin09'),
00099     #lar    propagatorOpposite = cms.string('PropagatorWithMaterialOppositePtMin09'),
00100 )
00101 #TRACK CANDIDATES
00102 import RecoTracker.CkfPattern.CkfTrackCandidates_cfi
00103 largeD0step1TrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
00104     src = 'largeD0step1Seeds',
00105     TrajectoryBuilder = 'largeD0step1CkfTrajectoryBuilder',
00106     doSeedingRegionRebuilding = True,
00107     useHitsSplitting = True,
00108     cleanTrajectoryAfterInOut = True,
00109 )
00110 #
00111 # TRACK FITTING AND SMOOTHING
00112 #
00113 
00114 import TrackingTools.TrackFitters.RungeKuttaFitters_cff
00115 largeD0step1FittingSmootherWithOutlierRejection = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKFittingSmoother.clone(
00116     ComponentName = 'largeD0step1FittingSmootherWithOutlierRejection',
00117     EstimateCut = 20,
00118     MinNumberOfHits = 6,
00119     Fitter = cms.string('largeD0step1RKFitter'),
00120     Smoother = cms.string('largeD0step1RKSmoother'),
00121 )
00122 # Also necessary to specify minimum number of hits after final track fit
00123 
00124 largeD0step1RKTrajectoryFitter = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectoryFitter.clone(
00125     ComponentName = cms.string('largeD0step1RKFitter'),
00126     minHits = 6,
00127 )
00128 largeD0step1RKTrajectorySmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectorySmoother.clone(
00129     ComponentName = cms.string('largeD0step1RKSmoother'),
00130     minHits = 6,
00131 )
00132 #TRACKS
00133 import RecoTracker.TrackProducer.TrackProducer_cfi
00134 largeD0step1WithMaterialTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
00135     src = 'largeD0step1TrackCandidates',
00136     clusterRemovalInfo = 'largeD0step1Clusters',
00137     AlgorithmName = cms.string('iter1LargeD0'),
00138     Fitter = 'largeD0step1FittingSmootherWithOutlierRejection',
00139 )
00140 # TRACK QUALITY DEFINITION
00141 import RecoTracker.FinalTrackSelectors.selectLoose_cfi
00142 import RecoTracker.FinalTrackSelectors.selectTight_cfi
00143 import RecoTracker.FinalTrackSelectors.selectHighPurity_cfi
00144 
00145 largeD0step1Loose = RecoTracker.FinalTrackSelectors.selectLoose_cfi.selectLoose.clone(
00146     src = 'largeD0step1WithMaterialTracks',
00147     keepAllTracks = False,
00148     copyExtras = False,
00149     copyTrajectories = True,
00150     applyAdaptedPVCuts = False,
00151     chi2n_par = 99.,
00152     minNumberLayers = 5,
00153     minNumber3DLayers = 0,
00154 )
00155 largeD0step1Tight = RecoTracker.FinalTrackSelectors.selectTight_cfi.selectTight.clone(
00156     src = 'largeD0step1Loose',
00157     keepAllTracks = True,
00158     copyExtras = False,
00159     copyTrajectories = True,
00160     applyAdaptedPVCuts = False,
00161     chi2n_par = 99.,
00162     minNumberLayers = 10,
00163     minNumber3DLayers = 3,
00164 )
00165 largeD0step1Trk = RecoTracker.FinalTrackSelectors.selectHighPurity_cfi.selectHighPurity.clone(
00166     src = 'largeD0step1Tight',
00167     keepAllTracks = True,
00168     copyExtras = False,
00169     copyTrajectories = True,
00170     applyAdaptedPVCuts = False,
00171     chi2n_par = 99.,
00172     minNumberLayers = 10,
00173     minNumber3DLayers = 3,
00174 )
00175 largeD0step1 = cms.Sequence(trkfilter1*
00176                             largeD0step1Clusters*
00177                             largeD0step1PixelRecHits*largeD0step1StripRecHits*
00178                             largeD0step1Seeds*
00179                             largeD0step1TrackCandidates*
00180                             largeD0step1WithMaterialTracks*
00181                             largeD0step1Loose*
00182                             largeD0step1Tight*
00183                             largeD0step1Trk)
00184                           
00185 
00186 
00187 
00188 
00189 
00190 
00191