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