CMS 3D CMS Logo

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

Go to the documentation of this file.
00001 import FWCore.ParameterSet.Config as cms
00002 
00003 ###############################################
00004 # Low Pt tracking using pixel-triplet seeding #
00005 ###############################################
00006 
00007 # REMOVE HITS ASSIGNED TO GOOD TRACKS FROM PREVIOUS ITERATIONS
00008 
00009 firstfilter = cms.EDProducer("QualityFilter",
00010     TrackQuality = cms.string('highPurity'),
00011     recTracks = cms.InputTag("preMergingFirstStepTracksWithQuality")
00012 )
00013 
00014 secClusters = cms.EDProducer("TrackClusterRemover",
00015     oldClusterRemovalInfo = cms.InputTag("newClusters"),
00016     trajectories = cms.InputTag("firstfilter"),
00017     pixelClusters = cms.InputTag("newClusters"),
00018     stripClusters = cms.InputTag("newClusters"),
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 
00034 # TRACKER HITS
00035 import RecoLocalTracker.SiPixelRecHits.SiPixelRecHits_cfi
00036 secPixelRecHits = RecoLocalTracker.SiPixelRecHits.SiPixelRecHits_cfi.SiPixelRecHits.clone(
00037     src = 'secClusters'
00038     )
00039 import RecoLocalTracker.SiStripRecHitConverter.SiStripRecHitConverter_cfi
00040 secStripRecHits = RecoLocalTracker.SiStripRecHitConverter.SiStripRecHitConverter_cfi.siStripMatchedRecHits.clone(
00041     ClusterProducer = 'secClusters'
00042     )
00043 
00044 # SEEDING LAYERS
00045 import RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi
00046 seclayertriplets = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.pixellayertriplets.clone(
00047     ComponentName = 'SecLayerTriplets'
00048     )
00049 seclayertriplets.BPix.HitProducer = 'secPixelRecHits'
00050 seclayertriplets.FPix.HitProducer = 'secPixelRecHits'
00051 
00052 
00053 # SEEDS
00054 import RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff
00055 from RecoTracker.TkTrackingRegions.GlobalTrackingRegionFromBeamSpot_cfi import RegionPsetFomBeamSpotBlock
00056 secTriplets = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone(
00057     RegionFactoryPSet = RegionPsetFomBeamSpotBlock.clone(
00058     ComponentName = cms.string('GlobalRegionProducerFromBeamSpot'),
00059     RegionPSet = RegionPsetFomBeamSpotBlock.RegionPSet.clone(
00060     ptMin = 0.075,
00061     nSigmaZ = 3.3
00062     )
00063     )
00064     )
00065 secTriplets.OrderedHitsFactoryPSet.SeedingLayers = 'SecLayerTriplets'
00066 secTriplets.ClusterCheckPSet.PixelClusterCollectionLabel = 'secClusters'
00067 secTriplets.ClusterCheckPSet.ClusterCollectionLabel = 'secClusters'
00068       
00069 
00070 from RecoPixelVertexing.PixelLowPtUtilities.ClusterShapeHitFilterESProducer_cfi import *
00071 secTriplets.SeedComparitorPSet.ComponentName = 'LowPtClusterShapeSeedComparitor'
00072 
00073 # Use modified pixel-triplet code that works best for large impact parameters
00074 #secTriplets.SeedCreatorPSet.ComponentName = 'SeedFromConsecutiveHitsTripletOnlyCreator'
00075 #from RecoPixelVertexing.PixelTriplets.PixelTripletLargeTipGenerator_cfi import *
00076 #secTriplets.OrderedHitsFactoryPSet.GeneratorPSet = cms.PSet(PixelTripletLargeTipGenerator)
00077 
00078 # TRACKER DATA CONTROL
00079 import RecoTracker.MeasurementDet.MeasurementTrackerESProducer_cfi
00080 secMeasurementTracker = RecoTracker.MeasurementDet.MeasurementTrackerESProducer_cfi.MeasurementTracker.clone(
00081     ComponentName = 'secMeasurementTracker',
00082     pixelClusterProducer = 'secClusters',
00083     stripClusterProducer = 'secClusters'
00084     )
00085 
00086 # QUALITY CUTS DURING TRACK BUILDING
00087 import TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi
00088 secCkfTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
00089     ComponentName = 'secCkfTrajectoryFilter',
00090     filterPset = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.filterPset.clone(
00091     maxLostHits = 1,
00092     minimumNumberOfHits = 3,
00093     minPt = 0.075
00094     )
00095     )
00096 
00097 # TRACK BUILDING
00098 import RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi
00099 secCkfTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi.GroupedCkfTrajectoryBuilder.clone(
00100     ComponentName = 'secCkfTrajectoryBuilder',
00101     MeasurementTrackerName = 'secMeasurementTracker',
00102     trajectoryFilterName = 'secCkfTrajectoryFilter'
00103     )
00104 
00105 # MAKING OF TRACK CANDIDATES
00106 import RecoTracker.CkfPattern.CkfTrackCandidates_cfi
00107 secTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
00108     src = cms.InputTag('secTriplets'),
00109     TrajectoryBuilder = 'secCkfTrajectoryBuilder',
00110     doSeedingRegionRebuilding = True,
00111     useHitsSplitting = True
00112     )
00113 
00114 # TRACK FITTING
00115 import RecoTracker.TrackProducer.TrackProducer_cfi
00116 secWithMaterialTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
00117     AlgorithmName = cms.string('iter2'),
00118     src = 'secTrackCandidates',
00119     clusterRemovalInfo = 'secClusters'
00120     )
00121 
00122 # TRACK SELECTION AND QUALITY FLAG SETTING.
00123 import RecoTracker.FinalTrackSelectors.selectLoose_cfi
00124 import RecoTracker.FinalTrackSelectors.selectTight_cfi
00125 import RecoTracker.FinalTrackSelectors.selectHighPurity_cfi
00126 import RecoTracker.FinalTrackSelectors.simpleTrackListMerger_cfi
00127 
00128 secStepVtxLoose = RecoTracker.FinalTrackSelectors.selectLoose_cfi.selectLoose.clone(
00129     src = 'secWithMaterialTracks',
00130     keepAllTracks = False,
00131     copyExtras = False,
00132     copyTrajectories = True,
00133     chi2n_par = 1.6,
00134     res_par = ( 0.003, 0.001 ),
00135     minNumberLayers = 3,
00136     d0_par1 = ( 1.2, 3.0 ),
00137     dz_par1 = ( 1.2, 3.0 ),
00138     d0_par2 = ( 1.3, 3.0 ),
00139     dz_par2 = ( 1.3, 3.0 )
00140     )
00141 
00142 secStepTrkLoose = RecoTracker.FinalTrackSelectors.selectLoose_cfi.selectLoose.clone(
00143     src = 'secWithMaterialTracks',
00144     keepAllTracks = False,
00145     copyExtras = False,
00146     copyTrajectories = True,
00147     chi2n_par = 0.7,
00148     res_par = ( 0.003, 0.001 ),
00149     minNumberLayers = 3,
00150     d0_par1 = ( 1.6, 4.0 ),
00151     dz_par1 = ( 1.6, 4.0 ),
00152     d0_par2 = ( 1.6, 4.0 ),
00153     dz_par2 = ( 1.6, 4.0 )
00154     )
00155 
00156 
00157 secStepVtxTight = RecoTracker.FinalTrackSelectors.selectTight_cfi.selectTight.clone(
00158     src = 'secStepVtxLoose',
00159     keepAllTracks = True,
00160     copyExtras = False,
00161     copyTrajectories = True,
00162     chi2n_par = 0.7,
00163     res_par = ( 0.003, 0.001 ),
00164     minNumberLayers = 3,
00165     maxNumberLostLayers = 1,
00166     minNumber3DLayers = 3,
00167     d0_par1 = ( 0.95, 3.0 ),
00168     dz_par1 = ( 0.9, 3.0 ),
00169     d0_par2 = ( 1.0, 3.0 ),
00170     dz_par2 = ( 1.0, 3.0 )
00171     )
00172 
00173 secStepTrkTight = RecoTracker.FinalTrackSelectors.selectTight_cfi.selectTight.clone(
00174     src = 'secStepTrkLoose',
00175     keepAllTracks = True,
00176     copyExtras = False,
00177     copyTrajectories = True,
00178     chi2n_par = 0.5,
00179     res_par = ( 0.003, 0.001 ),
00180     minNumberLayers = 5,
00181     minNumber3DLayers = 3,
00182     maxNumberLostLayers = 1,
00183     d0_par1 = ( 1.1, 4.0 ),
00184     dz_par1 = ( 1.1, 4.0 ),
00185     d0_par2 = ( 1.1, 4.0 ),
00186     dz_par2 = ( 1.1, 4.0 )
00187     )
00188 
00189 
00190 secStepVtx = RecoTracker.FinalTrackSelectors.selectHighPurity_cfi.selectHighPurity.clone(
00191     src = 'secStepVtxTight',
00192     keepAllTracks = True,
00193     copyExtras = False,
00194     copyTrajectories = True,
00195     chi2n_par = 0.7,
00196     res_par = ( 0.003, 0.001 ),
00197     minNumberLayers = 3,
00198     minNumber3DLayers = 3,
00199     maxNumberLostLayers = 1,
00200     d0_par1 = ( 0.85, 3.0 ),
00201     dz_par1 = ( 0.8, 3.0 ),
00202     d0_par2 = ( 0.9, 3.0 ),
00203     dz_par2 = ( 0.9, 3.0 )
00204 )
00205 
00206 secStepTrk = RecoTracker.FinalTrackSelectors.selectHighPurity_cfi.selectHighPurity.clone(
00207     src = 'secStepTrkTight',
00208     keepAllTracks = True,
00209     copyExtras = False,
00210     copyTrajectories = True,
00211     chi2n_par = 0.4,
00212     res_par = ( 0.003, 0.001 ),
00213     minNumberLayers = 5,
00214     minNumber3DLayers = 3,
00215     maxNumberLostLayers = 1,
00216     d0_par1 = ( 1.0, 4.0 ),
00217     dz_par1 = ( 1.0, 4.0 ),
00218     d0_par2 = ( 1.0, 4.0 ),
00219     dz_par2 = ( 1.0, 4.0 )
00220     )
00221 
00222 secStep = RecoTracker.FinalTrackSelectors.simpleTrackListMerger_cfi.simpleTrackListMerger.clone(
00223     TrackProducer1 = 'secStepVtx',
00224     TrackProducer2 = 'secStepTrk',
00225     promoteTrackQuality = True
00226     )
00227 
00228 secondStep = cms.Sequence(firstfilter*
00229                           secClusters*
00230                           secPixelRecHits*secStripRecHits*
00231                           secTriplets*
00232                           secTrackCandidates*
00233                           secWithMaterialTracks*
00234                           secStepVtxLoose*secStepTrkLoose*
00235                           secStepVtxTight*secStepTrkTight*
00236                           secStepVtx*secStepTrk*secStep)