CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
LargeD0_PixelTripletStep_cff.py
Go to the documentation of this file.
2 
3 #
4 # Very large impact parameter tracking: Iteration 1 using pixel-triplet seeding
5 #
6 
7 #HIT REMOVAL
8 trkfilter1 = cms.EDProducer("QualityFilter",
9  TrackQuality = cms.string('highPurity'),
10 # Reject hits found in standard iterations
11  recTracks = cms.InputTag("tobtecStep")
12 )
13 
14 largeD0step1Clusters = cms.EDProducer("TrackClusterRemover",
15  trajectories = cms.InputTag("trkfilter1"),
16 
17 # To run this step eliminating hits from standard iterations.
18  oldClusterRemovalInfo = cms.InputTag("fifthClusters"),
19  pixelClusters = cms.InputTag("fifthClusters"),
20  stripClusters = cms.InputTag("fifthClusters"),
21 
22 # To run it, not eliminating any hits.
23 # trajectories = cms.InputTag("zeroStepFilter"),
24 # pixelClusters = cms.InputTag("siPixelClusters"),
25 # stripClusters = cms.InputTag("siStripClusters"),
26 
27  Common = cms.PSet(
28  maxChi2 = cms.double(30.0)
29 # To run it not eliminating any hits, you also need ...
30 # maxChi2 = cms.double(0.0)
31  )
32 )
33 
34 # Propagator taking into account momentum uncertainty in multiple
35 # scattering calculation.
37 
38 #TRACKER HITS
41 largeD0step1PixelRecHits = RecoLocalTracker.SiPixelRecHits.SiPixelRecHits_cfi.siPixelRecHits.clone(
42  src = 'largeD0step1Clusters',
43  )
44 largeD0step1StripRecHits = RecoLocalTracker.SiStripRecHitConverter.SiStripRecHitConverter_cfi.siStripMatchedRecHits.clone(
45  ClusterProducer = 'largeD0step1Clusters',
46 )
47 #SEEDING LAYERS
49 largeD0step1LayerTriplets = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone()
50 largeD0step1LayerTriplets.BPix.HitProducer = 'largeD0step1PixelRecHits'
51 largeD0step1LayerTriplets.FPix.HitProducer = 'largeD0step1PixelRecHits'
52 
53 #SEEDS
56 largeD0step1Seeds = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone()
57 largeD0step1Seeds.OrderedHitsFactoryPSet.SeedingLayers = 'largeD0step1LayerTriplets'
58 # Use modified pixel-triplet code that works best for large impact parameters
59 largeD0step1Seeds.OrderedHitsFactoryPSet.GeneratorPSet = cms.PSet(PixelTripletLargeTipGenerator)
60 largeD0step1Seeds.SeedCreatorPSet.ComponentName = 'SeedFromConsecutiveHitsTripletOnlyCreator'
61 largeD0step1Seeds.RegionFactoryPSet.RegionPSet.ptMin = 0.6
62 largeD0step1Seeds.RegionFactoryPSet.RegionPSet.originRadius = 3.5
63 largeD0step1Seeds.RegionFactoryPSet.RegionPSet.originHalfLength = 15
64 #largeD0step1Seeds.SeedCreatorPSet.propagator = cms.string('PropagatorWithMaterialPtMin09')
65 
66 #TRAJECTORY MEASUREMENT
68 largeD0step1MeasurementTracker = RecoTracker.MeasurementDet.MeasurementTrackerESProducer_cfi.MeasurementTracker.clone(
69  ComponentName = 'largeD0step1MeasurementTracker',
70  pixelClusterProducer = 'largeD0step1Clusters',
71  stripClusterProducer = 'largeD0step1Clusters',
72 )
73 #TRAJECTORY FILTERS (for inwards and outwards track building steps)
74 import TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi
75 
76 largeD0step1CkfTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
77  ComponentName = 'largeD0step1CkfTrajectoryFilter',
78 )
79 #largeD0step1CkfTrajectoryFilter.filterPset.maxLostHits = 1
80 #largeD0step1CkfTrajectoryFilter.filterPset.maxConsecLostHits = 2
81 largeD0step1CkfTrajectoryFilter.filterPset.minimumNumberOfHits = 6
82 largeD0step1CkfTrajectoryFilter.filterPset.minPt = 0.6
83 largeD0step1CkfTrajectoryFilter.filterPset.minHitsMinPt = 3
84 
85 #TRAJECTORY BUILDER
87 largeD0step1CkfTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi.GroupedCkfTrajectoryBuilder.clone(
88  ComponentName = 'largeD0step1CkfTrajectoryBuilder',
89  MeasurementTrackerName = 'largeD0step1MeasurementTracker',
90  trajectoryFilterName = 'largeD0step1CkfTrajectoryFilter',
91  useSameTrajFilter = True,
92  minNrOfHitsForRebuild = 6,
93  #lar maxCand = 5,
94  #lar lostHitPenalty = 100.,
95  #lar alwaysUseInvalidHits = False,
96  #lar propagatorAlong = cms.string('PropagatorWithMaterialPtMin09'),
97  #lar propagatorOpposite = cms.string('PropagatorWithMaterialOppositePtMin09'),
98 )
99 #TRACK CANDIDATES
101 largeD0step1TrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
102  src = 'largeD0step1Seeds',
103  TrajectoryBuilder = 'largeD0step1CkfTrajectoryBuilder',
104  doSeedingRegionRebuilding = True,
105  useHitsSplitting = True,
106  cleanTrajectoryAfterInOut = True,
107 )
108 #
109 # TRACK FITTING AND SMOOTHING
110 #
111 
113 largeD0step1FittingSmootherWithOutlierRejection = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKFittingSmoother.clone(
114  ComponentName = 'largeD0step1FittingSmootherWithOutlierRejection',
115  EstimateCut = 20,
116  MinNumberOfHits = 6,
117  Fitter = cms.string('largeD0step1RKFitter'),
118  Smoother = cms.string('largeD0step1RKSmoother'),
119 )
120 # Also necessary to specify minimum number of hits after final track fit
121 
122 largeD0step1RKTrajectoryFitter = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectoryFitter.clone(
123  ComponentName = cms.string('largeD0step1RKFitter'),
124  minHits = 6,
125 )
126 largeD0step1RKTrajectorySmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectorySmoother.clone(
127  ComponentName = cms.string('largeD0step1RKSmoother'),
128  minHits = 6,
129 )
130 #TRACKS
132 largeD0step1WithMaterialTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
133  src = 'largeD0step1TrackCandidates',
134  clusterRemovalInfo = 'largeD0step1Clusters',
135  AlgorithmName = cms.string('iter1LargeD0'),
136  Fitter = 'largeD0step1FittingSmootherWithOutlierRejection',
137 )
138 # TRACK QUALITY DEFINITION
139 import RecoTracker.FinalTrackSelectors.selectLoose_cfi
140 import RecoTracker.FinalTrackSelectors.selectTight_cfi
141 import RecoTracker.FinalTrackSelectors.selectHighPurity_cfi
142 
143 largeD0step1Loose = RecoTracker.FinalTrackSelectors.selectLoose_cfi.selectLoose.clone(
144  src = 'largeD0step1WithMaterialTracks',
145  keepAllTracks = False,
146  copyExtras = False,
147  copyTrajectories = True,
148  applyAdaptedPVCuts = False,
149  chi2n_par = 99.,
150  minNumberLayers = 5,
151  minNumber3DLayers = 0,
152 )
153 largeD0step1Tight = RecoTracker.FinalTrackSelectors.selectTight_cfi.selectTight.clone(
154  src = 'largeD0step1Loose',
155  keepAllTracks = True,
156  copyExtras = False,
157  copyTrajectories = True,
158  applyAdaptedPVCuts = False,
159  chi2n_par = 99.,
160  minNumberLayers = 10,
161  minNumber3DLayers = 3,
162 )
163 largeD0step1Trk = RecoTracker.FinalTrackSelectors.selectHighPurity_cfi.selectHighPurity.clone(
164  src = 'largeD0step1Tight',
165  keepAllTracks = True,
166  copyExtras = False,
167  copyTrajectories = True,
168  applyAdaptedPVCuts = False,
169  chi2n_par = 99.,
170  minNumberLayers = 10,
171  minNumber3DLayers = 3,
172 )
173 largeD0step1 = cms.Sequence(trkfilter1*
174  largeD0step1Clusters*
175  largeD0step1PixelRecHits*largeD0step1StripRecHits*
176  largeD0step1LayerTriplets*
177  largeD0step1Seeds*
178  largeD0step1TrackCandidates*
179  largeD0step1WithMaterialTracks*
180  largeD0step1Loose*
181  largeD0step1Tight*
182  largeD0step1Trk)
183 
184 
185 
186 
187 
188 
189 
190