CMS 3D CMS Logo

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