CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
RunI_TobTecStep_cff.py
Go to the documentation of this file.
2 
3 #######################################################################
4 # Very large impact parameter tracking using TOB + TEC ring 5 seeding #
5 #######################################################################
6 
7 tobTecStepClusters = cms.EDProducer("TrackClusterRemover",
8  clusterLessSolution = cms.bool(True),
9  oldClusterRemovalInfo = cms.InputTag("pixelLessStepClusters"),
10  trajectories = cms.InputTag("pixelLessStepTracks"),
11  overrideTrkQuals = cms.InputTag('pixelLessStepSelector','pixelLessStep'),
12  TrackQuality = cms.string('highPurity'),
13  minNumberOfLayersWithMeasBeforeFiltering = cms.int32(0),
14  pixelClusters = cms.InputTag("siPixelClusters"),
15  stripClusters = cms.InputTag("siStripClusters"),
16  Common = cms.PSet(
17  maxChi2 = cms.double(9.0)
18  )
19 )
20 
21 # SEEDING LAYERS
22 tobTecStepSeedLayers = cms.EDProducer("SeedingLayersEDProducer",
23  layerList = cms.vstring('TOB1+TOB2',
24  'TOB1+TEC1_pos', 'TOB1+TEC1_neg',
25  'TEC1_pos+TEC2_pos', 'TEC2_pos+TEC3_pos',
26  'TEC3_pos+TEC4_pos', 'TEC4_pos+TEC5_pos',
27  'TEC5_pos+TEC6_pos', 'TEC6_pos+TEC7_pos',
28  'TEC1_neg+TEC2_neg', 'TEC2_neg+TEC3_neg',
29  'TEC3_neg+TEC4_neg', 'TEC4_neg+TEC5_neg',
30  'TEC5_neg+TEC6_neg', 'TEC6_neg+TEC7_neg'),
31 
32  TOB = cms.PSet(
33  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
34  skipClusters = cms.InputTag('tobTecStepClusters'),
35  TTRHBuilder = cms.string('WithTrackAngle')
36  ),
37 
38  TEC = cms.PSet(
39  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
40  skipClusters = cms.InputTag('tobTecStepClusters'),
41  # untracked bool useSimpleRphiHitsCleaner = false
42  useRingSlector = cms.bool(True),
43  TTRHBuilder = cms.string('WithTrackAngle'),
44  minRing = cms.int32(5),
45  maxRing = cms.int32(5)
46  )
47 )
48 # SEEDS
50 tobTecStepSeeds = RecoTracker.TkSeedGenerator.GlobalMixedSeeds_cff.globalMixedSeeds.clone()
51 tobTecStepSeeds.OrderedHitsFactoryPSet.SeedingLayers = 'tobTecStepSeedLayers'
52 tobTecStepSeeds.RegionFactoryPSet.RegionPSet.ptMin = 0.6
53 tobTecStepSeeds.RegionFactoryPSet.RegionPSet.originHalfLength = 30.0
54 tobTecStepSeeds.RegionFactoryPSet.RegionPSet.originRadius = 6.0
55 tobTecStepSeeds.SeedCreatorPSet.OriginTransverseErrorMultiplier = 2.0
56 
57 
58 # QUALITY CUTS DURING TRACK BUILDING (for inwardss and outwards track building steps)
59 import TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi
60 
61 tobTecStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
62  ComponentName = 'tobTecStepTrajectoryFilter',
63  filterPset = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.filterPset.clone(
64  maxLostHits = 0,
65  minimumNumberOfHits = 6,
66  minPt = 0.1,
67  minHitsMinPt = 3
68  )
69  )
70 
71 tobTecStepInOutTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
72  ComponentName = 'tobTecStepInOutTrajectoryFilter',
73  filterPset = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.filterPset.clone(
74  maxLostHits = 0,
75  minimumNumberOfHits = 4,
76  minPt = 0.1,
77  minHitsMinPt = 3
78  )
79  )
80 
82 tobTecStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimatorESProducer_cfi.Chi2MeasurementEstimator.clone(
83  ComponentName = cms.string('tobTecStepChi2Est'),
84  nSigma = cms.double(3.0),
85  MaxChi2 = cms.double(16.0)
86 )
87 
88 # TRACK BUILDING
90 tobTecStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi.GroupedCkfTrajectoryBuilder.clone(
91  ComponentName = 'tobTecStepTrajectoryBuilder',
92  MeasurementTrackerName = '',
93  trajectoryFilterName = 'tobTecStepTrajectoryFilter',
94  inOutTrajectoryFilterName = 'tobTecStepInOutTrajectoryFilter',
95  useSameTrajFilter = False,
96  minNrOfHitsForRebuild = 4,
97  alwaysUseInvalidHits = False,
98  maxCand = 2,
99  estimator = cms.string('tobTecStepChi2Est'),
100  #startSeedHitsInRebuild = True
101  maxDPhiForLooperReconstruction = cms.double(2.0),
102  maxPtForLooperReconstruction = cms.double(0.7)
103  )
104 
105 # MAKING OF TRACK CANDIDATES
107 tobTecStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
108  src = cms.InputTag('tobTecStepSeeds'),
109  clustersToSkip = cms.InputTag('tobTecStepClusters'),
110  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
111  numHitsForSeedCleaner = cms.int32(50),
112  onlyPixelHitsForSeedCleaner = cms.bool(True),
113 
114  TrajectoryBuilder = 'tobTecStepTrajectoryBuilder',
115  doSeedingRegionRebuilding = True,
116  useHitsSplitting = True,
117  cleanTrajectoryAfterInOut = True
118 )
119 
120 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
121 tobTecStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
122  ComponentName = cms.string('tobTecStepTrajectoryCleanerBySharedHits'),
123  fractionShared = cms.double(0.09),
124  allowSharedFirstHit = cms.bool(True)
125  )
126 tobTecStepTrackCandidates.TrajectoryCleaner = 'tobTecStepTrajectoryCleanerBySharedHits'
127 
128 # TRACK FITTING AND SMOOTHING OPTIONS
130 tobTecStepFitterSmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.KFFittingSmootherWithOutliersRejectionAndRK.clone(
131  ComponentName = 'tobTecStepFitterSmoother',
132  EstimateCut = 30,
133  MinNumberOfHits = 8,
134  Fitter = cms.string('tobTecStepRKFitter'),
135  Smoother = cms.string('tobTecStepRKSmoother')
136  )
137 
138 tobTecStepFitterSmootherForLoopers = tobTecStepFitterSmoother.clone(
139  ComponentName = 'tobTecStepFitterSmootherForLoopers',
140  Fitter = cms.string('tobTecStepRKFitterForLoopers'),
141  Smoother = cms.string('tobTecStepRKSmootherForLoopers')
142 )
143 
144 # Also necessary to specify minimum number of hits after final track fit
145 tobTecStepRKTrajectoryFitter = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectoryFitter.clone(
146  ComponentName = cms.string('tobTecStepRKFitter'),
147  minHits = 8
148 )
149 tobTecStepRKTrajectoryFitterForLoopers = tobTecStepRKTrajectoryFitter.clone(
150  ComponentName = cms.string('tobTecStepRKFitterForLoopers'),
151  Propagator = cms.string('PropagatorWithMaterialForLoopers'),
152 )
153 
154 tobTecStepRKTrajectorySmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectorySmoother.clone(
155  ComponentName = cms.string('tobTecStepRKSmoother'),
156  errorRescaling = 10.0,
157  minHits = 8
158 )
159 tobTecStepRKTrajectorySmootherForLoopers = tobTecStepRKTrajectorySmoother.clone(
160  ComponentName = cms.string('tobTecStepRKSmootherForLoopers'),
161  Propagator = cms.string('PropagatorWithMaterialForLoopers'),
162 )
163 
165 tobTecFlexibleKFFittingSmoother = TrackingTools.TrackFitters.FlexibleKFFittingSmoother_cfi.FlexibleKFFittingSmoother.clone(
166  ComponentName = cms.string('tobTecFlexibleKFFittingSmoother'),
167  standardFitter = cms.string('tobTecStepFitterSmoother'),
168  looperFitter = cms.string('tobTecStepFitterSmootherForLoopers'),
169 )
170 
171 
172 
173 
174 # TRACK FITTING
176 tobTecStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
177  src = 'tobTecStepTrackCandidates',
178  AlgorithmName = cms.string('iter6'),
179  #Fitter = 'tobTecStepFitterSmoother',
180  Fitter = 'tobTecFlexibleKFFittingSmoother',
181  )
182 
183 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
184 tobTecStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
185  src='tobTecStepTracks',
186  useAnyMVA = cms.bool(True),
187  GBRForestLabel = cms.string('MVASelectorIter6'),
188  trackSelectors= cms.VPSet(
189  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
190  name = 'tobTecStepLoose',
191  chi2n_par = 0.4,
192  res_par = ( 0.003, 0.001 ),
193  minNumberLayers = 5,
194  maxNumberLostLayers = 1,
195  minNumber3DLayers = 2,
196  d0_par1 = ( 2.0, 4.0 ),
197  dz_par1 = ( 1.8, 4.0 ),
198  d0_par2 = ( 2.0, 4.0 ),
199  dz_par2 = ( 1.8, 4.0 )
200  ),
201  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
202  name = 'tobTecStepTight',
203  preFilterName = 'tobTecStepLoose',
204  chi2n_par = 0.3,
205  res_par = ( 0.003, 0.001 ),
206  minNumberLayers = 5,
207  maxNumberLostLayers = 0,
208  minNumber3DLayers = 2,
209  d0_par1 = ( 1.5, 4.0 ),
210  dz_par1 = ( 1.4, 4.0 ),
211  d0_par2 = ( 1.5, 4.0 ),
212  dz_par2 = ( 1.4, 4.0 )
213  ),
214  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
215  name = 'tobTecStep',
216  preFilterName = 'tobTecStepTight',
217  chi2n_par = 0.2,
218  res_par = ( 0.003, 0.001 ),
219  minNumberLayers = 5,
220  maxNumberLostLayers = 0,
221  minNumber3DLayers = 2,
222  max_minMissHitOutOrIn = 1,
223  max_lostHitFraction = 1.0,
224  d0_par1 = ( 1.2, 4.0 ),
225  dz_par1 = ( 1.1, 4.0 ),
226  d0_par2 = ( 1.2, 4.0 ),
227  dz_par2 = ( 1.1, 4.0 )
228  ),
229  ) #end of vpset
230  ) #end of clone
231 
232 
233 TobTecStep = cms.Sequence(tobTecStepClusters*
234  tobTecStepSeedLayers*
235  tobTecStepSeeds*
236  tobTecStepTrackCandidates*
237  tobTecStepTracks*
238  tobTecStepSelector)
239 
240