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)
60 
61 tobTecStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
62  maxLostHits = 0,
63  minimumNumberOfHits = 6,
64  minPt = 0.1,
65  minHitsMinPt = 3
66  )
67 
68 tobTecStepInOutTrajectoryFilter = tobTecStepTrajectoryFilter.clone(
69  maxLostHits = 0,
70  minimumNumberOfHits = 4,
71  minPt = 0.1,
72  minHitsMinPt = 3
73  )
74 
76 tobTecStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimatorESProducer_cfi.Chi2MeasurementEstimator.clone(
77  ComponentName = cms.string('tobTecStepChi2Est'),
78  nSigma = cms.double(3.0),
79  MaxChi2 = cms.double(16.0)
80 )
81 
82 # TRACK BUILDING
84 tobTecStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
85  MeasurementTrackerName = '',
86  trajectoryFilter = cms.PSet(refToPSet_ = cms.string('tobTecStepTrajectoryFilter')),
87  inOutTrajectoryFilterName = cms.PSet(refToPSet_ = cms.string('tobTecStepInOutTrajectoryFilter')),
88  useSameTrajFilter = False,
89  minNrOfHitsForRebuild = 4,
90  alwaysUseInvalidHits = False,
91  maxCand = 2,
92  estimator = cms.string('tobTecStepChi2Est'),
93  #startSeedHitsInRebuild = True
94  maxDPhiForLooperReconstruction = cms.double(2.0),
95  maxPtForLooperReconstruction = cms.double(0.7)
96  )
97 
98 # MAKING OF TRACK CANDIDATES
100 tobTecStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
101  src = cms.InputTag('tobTecStepSeeds'),
102  clustersToSkip = cms.InputTag('tobTecStepClusters'),
103  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
104  numHitsForSeedCleaner = cms.int32(50),
105  onlyPixelHitsForSeedCleaner = cms.bool(True),
106 
107  TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string('tobTecStepTrajectoryBuilder')),
108  doSeedingRegionRebuilding = True,
109  useHitsSplitting = True,
110  cleanTrajectoryAfterInOut = True
111 )
112 
113 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
114 tobTecStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
115  ComponentName = cms.string('tobTecStepTrajectoryCleanerBySharedHits'),
116  fractionShared = cms.double(0.09),
117  allowSharedFirstHit = cms.bool(True)
118  )
119 tobTecStepTrackCandidates.TrajectoryCleaner = 'tobTecStepTrajectoryCleanerBySharedHits'
120 
121 # TRACK FITTING AND SMOOTHING OPTIONS
123 tobTecStepFitterSmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.KFFittingSmootherWithOutliersRejectionAndRK.clone(
124  ComponentName = 'tobTecStepFitterSmoother',
125  EstimateCut = 30,
126  MinNumberOfHits = 8,
127  Fitter = cms.string('tobTecStepRKFitter'),
128  Smoother = cms.string('tobTecStepRKSmoother')
129  )
130 
131 tobTecStepFitterSmootherForLoopers = tobTecStepFitterSmoother.clone(
132  ComponentName = 'tobTecStepFitterSmootherForLoopers',
133  Fitter = cms.string('tobTecStepRKFitterForLoopers'),
134  Smoother = cms.string('tobTecStepRKSmootherForLoopers')
135 )
136 
137 # Also necessary to specify minimum number of hits after final track fit
138 tobTecStepRKTrajectoryFitter = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectoryFitter.clone(
139  ComponentName = cms.string('tobTecStepRKFitter'),
140  minHits = 8
141 )
142 tobTecStepRKTrajectoryFitterForLoopers = tobTecStepRKTrajectoryFitter.clone(
143  ComponentName = cms.string('tobTecStepRKFitterForLoopers'),
144  Propagator = cms.string('PropagatorWithMaterialForLoopers'),
145 )
146 
147 tobTecStepRKTrajectorySmoother = TrackingTools.TrackFitters.RungeKuttaFitters_cff.RKTrajectorySmoother.clone(
148  ComponentName = cms.string('tobTecStepRKSmoother'),
149  errorRescaling = 10.0,
150  minHits = 8
151 )
152 tobTecStepRKTrajectorySmootherForLoopers = tobTecStepRKTrajectorySmoother.clone(
153  ComponentName = cms.string('tobTecStepRKSmootherForLoopers'),
154  Propagator = cms.string('PropagatorWithMaterialForLoopers'),
155 )
156 
158 tobTecFlexibleKFFittingSmoother = TrackingTools.TrackFitters.FlexibleKFFittingSmoother_cfi.FlexibleKFFittingSmoother.clone(
159  ComponentName = cms.string('tobTecFlexibleKFFittingSmoother'),
160  standardFitter = cms.string('tobTecStepFitterSmoother'),
161  looperFitter = cms.string('tobTecStepFitterSmootherForLoopers'),
162 )
163 
164 
165 
166 
167 # TRACK FITTING
169 tobTecStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
170  src = 'tobTecStepTrackCandidates',
171  AlgorithmName = cms.string('iter6'),
172  #Fitter = 'tobTecStepFitterSmoother',
173  Fitter = 'tobTecFlexibleKFFittingSmoother',
174  )
175 
176 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
177 tobTecStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
178  src='tobTecStepTracks',
179  useAnyMVA = cms.bool(True),
180  GBRForestLabel = cms.string('MVASelectorIter6'),
181  trackSelectors= cms.VPSet(
182  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
183  name = 'tobTecStepLoose',
184  chi2n_par = 0.4,
185  res_par = ( 0.003, 0.001 ),
186  minNumberLayers = 5,
187  maxNumberLostLayers = 1,
188  minNumber3DLayers = 2,
189  d0_par1 = ( 2.0, 4.0 ),
190  dz_par1 = ( 1.8, 4.0 ),
191  d0_par2 = ( 2.0, 4.0 ),
192  dz_par2 = ( 1.8, 4.0 )
193  ),
194  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
195  name = 'tobTecStepTight',
196  preFilterName = 'tobTecStepLoose',
197  chi2n_par = 0.3,
198  res_par = ( 0.003, 0.001 ),
199  minNumberLayers = 5,
200  maxNumberLostLayers = 0,
201  minNumber3DLayers = 2,
202  d0_par1 = ( 1.5, 4.0 ),
203  dz_par1 = ( 1.4, 4.0 ),
204  d0_par2 = ( 1.5, 4.0 ),
205  dz_par2 = ( 1.4, 4.0 )
206  ),
207  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
208  name = 'tobTecStep',
209  preFilterName = 'tobTecStepTight',
210  chi2n_par = 0.2,
211  res_par = ( 0.003, 0.001 ),
212  minNumberLayers = 5,
213  maxNumberLostLayers = 0,
214  minNumber3DLayers = 2,
215  max_minMissHitOutOrIn = 1,
216  max_lostHitFraction = 1.0,
217  d0_par1 = ( 1.2, 4.0 ),
218  dz_par1 = ( 1.1, 4.0 ),
219  d0_par2 = ( 1.2, 4.0 ),
220  dz_par2 = ( 1.1, 4.0 )
221  ),
222  ) #end of vpset
223  ) #end of clone
224 
225 
226 TobTecStep = cms.Sequence(tobTecStepClusters*
227  tobTecStepSeedLayers*
228  tobTecStepSeeds*
229  tobTecStepTrackCandidates*
230  tobTecStepTracks*
231  tobTecStepSelector)
232 
233