CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/RecoTracker/IterativeTracking/python/TobTecStep_cff.py

Go to the documentation of this file.
00001 import FWCore.ParameterSet.Config as cms
00002 
00003 #######################################################################
00004 # Very large impact parameter tracking using TOB + TEC ring 5 seeding #
00005 #######################################################################
00006 
00007 # REMOVE HITS ASSIGNED TO GOOD TRACKS FROM PREVIOUS ITERATIONS
00008 
00009 fourthfilter = cms.EDProducer("QualityFilter",
00010     TrackQuality = cms.string('highPurity'),
00011     recTracks = cms.InputTag("pixellessStep")
00012 )
00013 
00014 fifthClusters = cms.EDProducer("TrackClusterRemover",
00015     oldClusterRemovalInfo = cms.InputTag("fourthClusters"),
00016     trajectories = cms.InputTag("fourthfilter"),
00017     pixelClusters = cms.InputTag("fourthClusters"),
00018     stripClusters = cms.InputTag("fourthClusters"),
00019     Common = cms.PSet(
00020         maxChi2 = cms.double(30.0)
00021     )
00022 
00023 # For debug purposes, you can run this iteration not eliminating any hits from previous ones by
00024 # instead using
00025 #    trajectories = cms.InputTag("zeroStepFilter"),
00026 #    pixelClusters = cms.InputTag("siPixelClusters"),
00027 #    stripClusters = cms.InputTag("siStripClusters"),
00028 #     Common = cms.PSet(
00029 #       maxChi2 = cms.double(0.0)
00030 #    )
00031 )
00032 
00033 # TRACKER HITS
00034 import RecoLocalTracker.SiPixelRecHits.SiPixelRecHits_cfi
00035 import RecoLocalTracker.SiStripRecHitConverter.SiStripRecHitConverter_cfi
00036 fifthPixelRecHits = RecoLocalTracker.SiPixelRecHits.SiPixelRecHits_cfi.SiPixelRecHits.clone(
00037     src = 'fifthClusters'
00038     )
00039 fifthStripRecHits = RecoLocalTracker.SiStripRecHitConverter.SiStripRecHitConverter_cfi.siStripMatchedRecHits.clone(
00040     ClusterProducer = 'fifthClusters'
00041     )
00042 
00043 # SEEDING LAYERS
00044 fifthlayerpairs = cms.ESProducer("SeedingLayersESProducer",
00045     ComponentName = cms.string('fifthlayerPairs'),
00046 
00047     layerList = cms.vstring('TOB1+TOB2', 
00048         'TOB1+TEC1_pos', 'TOB1+TEC1_neg', 
00049         'TEC1_pos+TEC2_pos', 'TEC2_pos+TEC3_pos', 
00050         'TEC3_pos+TEC4_pos', 'TEC4_pos+TEC5_pos', 
00051         'TEC5_pos+TEC6_pos', 'TEC6_pos+TEC7_pos', 
00052         'TEC1_neg+TEC2_neg', 'TEC2_neg+TEC3_neg', 
00053         'TEC3_neg+TEC4_neg', 'TEC4_neg+TEC5_neg', 
00054         'TEC5_neg+TEC6_neg', 'TEC6_neg+TEC7_neg'),
00055 
00056     TOB = cms.PSet(
00057         matchedRecHits = cms.InputTag("fifthStripRecHits","matchedRecHit"),
00058         TTRHBuilder = cms.string('WithTrackAngle')
00059     ),
00060 
00061     TEC = cms.PSet(
00062         matchedRecHits = cms.InputTag("fifthStripRecHits","matchedRecHit"),
00063         #    untracked bool useSimpleRphiHitsCleaner = false
00064         useRingSlector = cms.bool(True),
00065         TTRHBuilder = cms.string('WithTrackAngle'),
00066         minRing = cms.int32(5),
00067         maxRing = cms.int32(5)
00068     )
00069 )
00070 # SEEDS
00071 import RecoTracker.TkSeedGenerator.GlobalMixedSeeds_cff
00072 fifthSeeds = RecoTracker.TkSeedGenerator.GlobalMixedSeeds_cff.globalMixedSeeds.clone()
00073 fifthSeeds.OrderedHitsFactoryPSet.SeedingLayers = 'fifthlayerPairs'
00074 fifthSeeds.RegionFactoryPSet.RegionPSet.ptMin = 0.6
00075 fifthSeeds.RegionFactoryPSet.RegionPSet.originHalfLength = 30.0
00076 fifthSeeds.RegionFactoryPSet.RegionPSet.originRadius = 6.0
00077 fifthSeeds.ClusterCheckPSet.PixelClusterCollectionLabel = 'fifthClusters'
00078 fifthSeeds.ClusterCheckPSet.ClusterCollectionLabel = 'fifthClusters'
00079    
00080 
00081 # TRACKER DATA CONTROL
00082 import RecoTracker.MeasurementDet.MeasurementTrackerESProducer_cfi
00083 fifthMeasurementTracker = RecoTracker.MeasurementDet.MeasurementTrackerESProducer_cfi.MeasurementTracker.clone(
00084     ComponentName = 'fifthMeasurementTracker',
00085     pixelClusterProducer = 'fifthClusters',
00086     stripClusterProducer = 'fifthClusters'
00087     )
00088 
00089 # QUALITY CUTS DURING TRACK BUILDING (for inwardss and outwards track building steps)
00090 import TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi
00091 
00092 fifthCkfTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
00093     ComponentName = 'fifthCkfTrajectoryFilter',
00094     filterPset = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.filterPset.clone(
00095     maxLostHits = 0,
00096     minimumNumberOfHits = 6,
00097     minPt = 0.1,
00098     minHitsMinPt = 3
00099     )
00100     )
00101 
00102 fifthCkfInOutTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
00103     ComponentName = 'fifthCkfInOutTrajectoryFilter',
00104     filterPset = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.filterPset.clone(
00105     maxLostHits = 0,
00106     minimumNumberOfHits = 4,
00107     minPt = 0.1,
00108     minHitsMinPt = 3
00109     )
00110     )
00111 
00112 # TRACK BUILDING
00113 import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi
00114 fifthCkfTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi.GroupedCkfTrajectoryBuilder.clone(
00115     ComponentName = 'fifthCkfTrajectoryBuilder',
00116     MeasurementTrackerName = 'fifthMeasurementTracker',
00117     trajectoryFilterName = 'fifthCkfTrajectoryFilter',
00118     inOutTrajectoryFilterName = 'fifthCkfInOutTrajectoryFilter',
00119     useSameTrajFilter = False,
00120     minNrOfHitsForRebuild = 4,
00121     alwaysUseInvalidHits = False
00122     #startSeedHitsInRebuild = True
00123     )
00124 
00125 # MAKING OF TRACK CANDIDATES
00126 import RecoTracker.CkfPattern.CkfTrackCandidates_cfi
00127 fifthTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
00128     src = cms.InputTag('fifthSeeds'),
00129     TrajectoryBuilder = 'fifthCkfTrajectoryBuilder',
00130     doSeedingRegionRebuilding = True,
00131     useHitsSplitting = True,
00132     cleanTrajectoryAfterInOut = True
00133     )
00134 
00135 # TRACK FITTING AND SMOOTHING OPTIONS
00136 import TrackingTools.TrackFitters.RungeKuttaFitters_cff
00137 fifthFittingSmootherWithOutlierRejection = TrackingTools.TrackFitters.RungeKuttaFitters_cff.KFFittingSmootherWithOutliersRejectionAndRK.clone(
00138     ComponentName = 'fifthFittingSmootherWithOutlierRejection',
00139     EstimateCut = 30,
00140     MinNumberOfHits = 8,
00141     Fitter = cms.string('fifthRKFitter'),
00142     Smoother = cms.string('fifthRKSmoother')
00143     )
00144 
00145 # Also necessary to specify minimum number of hits after final track fit
00146 fifthRKTrajectoryFitter = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectoryFitter.clone(
00147     ComponentName = cms.string('fifthRKFitter'),
00148     minHits = 8
00149     )
00150 
00151 fifthRKTrajectorySmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectorySmoother.clone(
00152     ComponentName = cms.string('fifthRKSmoother'),
00153     errorRescaling = 10.0,
00154     minHits = 8
00155     )
00156 
00157 # TRACK FITTING
00158 import RecoTracker.TrackProducer.TrackProducer_cfi
00159 fifthWithMaterialTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
00160     src = 'fifthTrackCandidates',
00161     clusterRemovalInfo = 'fifthClusters',
00162     AlgorithmName = cms.string('iter5'),
00163     Fitter = 'fifthFittingSmootherWithOutlierRejection',
00164     )
00165 
00166 # TRACK SELECTION AND QUALITY FLAG SETTING.
00167 import RecoTracker.FinalTrackSelectors.selectLoose_cfi
00168 import RecoTracker.FinalTrackSelectors.selectTight_cfi
00169 import RecoTracker.FinalTrackSelectors.selectHighPurity_cfi
00170 
00171 tobtecStepLoose = RecoTracker.FinalTrackSelectors.selectLoose_cfi.selectLoose.clone(
00172     src = 'fifthWithMaterialTracks',
00173     keepAllTracks = False,
00174     copyExtras = False,
00175     copyTrajectories = True,
00176     chi2n_par = 0.4,
00177     res_par = ( 0.003, 0.001 ),
00178     minNumberLayers = 5,
00179     maxNumberLostLayers = 1,
00180     minNumber3DLayers = 2,
00181     d0_par1 = ( 2.0, 4.0 ),
00182     dz_par1 = ( 1.8, 4.0 ),
00183     d0_par2 = ( 2.0, 4.0 ),
00184     dz_par2 = ( 1.8, 4.0 )
00185     )
00186 
00187 tobtecStepTight = RecoTracker.FinalTrackSelectors.selectTight_cfi.selectTight.clone(
00188     src = 'tobtecStepLoose',
00189     keepAllTracks = True,
00190     copyExtras = False,
00191     copyTrajectories = True,
00192     chi2n_par = 0.3,
00193     res_par = ( 0.003, 0.001 ),
00194     minNumberLayers = 5,
00195     maxNumberLostLayers = 0,
00196     minNumber3DLayers = 2,
00197     d0_par1 = ( 1.5, 4.0 ),
00198     dz_par1 = ( 1.4, 4.0 ),
00199     d0_par2 = ( 1.5, 4.0 ),
00200     dz_par2 = ( 1.4, 4.0 )
00201     )
00202 
00203 tobtecStep = RecoTracker.FinalTrackSelectors.selectHighPurity_cfi.selectHighPurity.clone(
00204     src = 'tobtecStepTight',
00205     keepAllTracks = True,
00206     copyExtras = False,
00207     copyTrajectories = True,
00208     chi2n_par = 0.2,
00209     res_par = ( 0.003, 0.001 ),
00210     minNumberLayers = 5,
00211     maxNumberLostLayers = 0,
00212     minNumber3DLayers = 2,
00213     d0_par1 = ( 1.4, 4.0 ),
00214     dz_par1 = ( 1.3, 4.0 ),
00215     d0_par2 = ( 1.4, 4.0 ),
00216     dz_par2 = ( 1.3, 4.0 )
00217     )
00218 
00219 fifthStep = cms.Sequence(fourthfilter*fifthClusters*
00220                           fifthPixelRecHits*fifthStripRecHits*
00221                           fifthSeeds*
00222                           fifthTrackCandidates*
00223                           fifthWithMaterialTracks*
00224                           tobtecStepLoose*
00225                           tobtecStepTight*
00226                           tobtecStep)