CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PixelLessStep_cff.py
Go to the documentation of this file.
2 
3 ##########################################################################
4 # Large impact parameter tracking using TIB/TID/TEC stereo layer seeding #
5 ##########################################################################
6 
7 
8 pixelLessStepClusters = cms.EDProducer("TrackClusterRemover",
9  clusterLessSolution = cms.bool(True),
10  oldClusterRemovalInfo = cms.InputTag("mixedTripletStepClusters"),
11  trajectories = cms.InputTag("mixedTripletStepTracks"),
12  overrideTrkQuals = cms.InputTag('mixedTripletStep'),
13  TrackQuality = cms.string('highPurity'),
14  minNumberOfLayersWithMeasBeforeFiltering = cms.int32(0),
15  pixelClusters = cms.InputTag("siPixelClusters"),
16  stripClusters = cms.InputTag("siStripClusters"),
17  Common = cms.PSet(
18  maxChi2 = cms.double(9.0)
19  )
20 )
21 
22 pixelLessStepSeedClusters = pixelLessStepClusters.clone(
23  doStripChargeCheck = cms.bool(True),
24  stripRecHits = cms.string('siStripMatchedRecHits'),
25  Common = cms.PSet(
26  maxChi2 = cms.double(9.0),
27  minGoodStripCharge = cms.double(70.0)
28  )
29 )
30 
31 # SEEDING LAYERS
32 pixelLessStepSeedLayers = cms.EDProducer("SeedingLayersEDProducer",
33  layerList = cms.vstring('TIB1+TIB2',
34  'TID1_pos+TID2_pos','TID2_pos+TID3_pos',
35  'TEC1_pos+TEC2_pos','TEC2_pos+TEC3_pos','TEC3_pos+TEC4_pos','TEC3_pos+TEC5_pos','TEC4_pos+TEC5_pos',
36  'TID1_neg+TID2_neg','TID2_neg+TID3_neg',
37  'TEC1_neg+TEC2_neg','TEC2_neg+TEC3_neg','TEC3_neg+TEC4_neg','TEC3_neg+TEC5_neg','TEC4_neg+TEC5_neg'),
38  TIB = cms.PSet(
39  TTRHBuilder = cms.string('WithTrackAngle'),
40  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
41  skipClusters = cms.InputTag('pixelLessStepSeedClusters')
42  ),
43  TID = cms.PSet(
44  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
45  skipClusters = cms.InputTag('pixelLessStepSeedClusters'),
46  useRingSlector = cms.bool(True),
47  TTRHBuilder = cms.string('WithTrackAngle'),
48  minRing = cms.int32(1),
49  maxRing = cms.int32(2)
50  ),
51  TEC = cms.PSet(
52  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
53  skipClusters = cms.InputTag('pixelLessStepSeedClusters'),
54  useRingSlector = cms.bool(True),
55  TTRHBuilder = cms.string('WithTrackAngle'),
56  minRing = cms.int32(1),
57  maxRing = cms.int32(2)
58  )
59 )
60 
61 # SEEDS
63 pixelLessStepSeeds = RecoTracker.TkSeedGenerator.GlobalMixedSeeds_cff.globalMixedSeeds.clone()
64 pixelLessStepSeeds.OrderedHitsFactoryPSet.SeedingLayers = 'pixelLessStepSeedLayers'
65 pixelLessStepSeeds.RegionFactoryPSet.RegionPSet.ptMin = 0.7
66 pixelLessStepSeeds.RegionFactoryPSet.RegionPSet.originHalfLength = 15.0
67 pixelLessStepSeeds.RegionFactoryPSet.RegionPSet.originRadius = 2.5
68 pixelLessStepSeeds.SeedCreatorPSet.OriginTransverseErrorMultiplier = 2.0
69 
70 pixelLessStepSeeds.SeedComparitorPSet = cms.PSet(
71  ComponentName = cms.string('PixelClusterShapeSeedComparitor'),
72  FilterAtHelixStage = cms.bool(True),
73  FilterPixelHits = cms.bool(False),
74  FilterStripHits = cms.bool(True),
75  ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter')
76  )
77 
78 # QUALITY CUTS DURING TRACK BUILDING
79 import TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi
80 pixelLessStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
81  ComponentName = 'pixelLessStepTrajectoryFilter',
82  filterPset = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.filterPset.clone(
83  maxLostHits = 0,
84  minimumNumberOfHits = 4,
85  minPt = 0.1
86  )
87  )
88 
90 pixelLessStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimatorESProducer_cfi.Chi2MeasurementEstimator.clone(
91  ComponentName = cms.string('pixelLessStepChi2Est'),
92  nSigma = cms.double(3.0),
93  MaxChi2 = cms.double(9.0)
94 )
95 
96 # TRACK BUILDING
98 pixelLessStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi.GroupedCkfTrajectoryBuilder.clone(
99  ComponentName = 'pixelLessStepTrajectoryBuilder',
100  MeasurementTrackerName = '',
101  trajectoryFilterName = 'pixelLessStepTrajectoryFilter',
102  minNrOfHitsForRebuild = 4,
103  maxCand = 2,
104  alwaysUseInvalidHits = False,
105  estimator = cms.string('pixelLessStepChi2Est'),
106  maxDPhiForLooperReconstruction = cms.double(2.0),
107  maxPtForLooperReconstruction = cms.double(0.7)
108  )
109 
110 # MAKING OF TRACK CANDIDATES
112 pixelLessStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
113  src = cms.InputTag('pixelLessStepSeeds'),
114  clustersToSkip = cms.InputTag('pixelLessStepClusters'),
115  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
116  numHitsForSeedCleaner = cms.int32(50),
117  #onlyPixelHitsForSeedCleaner = cms.bool(True),
118  TrajectoryBuilder = 'pixelLessStepTrajectoryBuilder'
119 )
120 
121 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
122 pixelLessStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
123  ComponentName = cms.string('pixelLessStepTrajectoryCleanerBySharedHits'),
124  fractionShared = cms.double(0.11),
125  allowSharedFirstHit = cms.bool(True)
126  )
127 pixelLessStepTrackCandidates.TrajectoryCleaner = 'pixelLessStepTrajectoryCleanerBySharedHits'
128 
129 
130 # TRACK FITTING
132 pixelLessStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
133  src = 'pixelLessStepTrackCandidates',
134  AlgorithmName = cms.string('iter5'),
135  Fitter = cms.string('FlexibleKFFittingSmoother')
136  )
137 
138 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
139 from RecoTracker.IterativeTracking.MixedTripletStep_cff import mixedTripletStepSelector
140 pixelLessStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
141  src='pixelLessStepTracks',
142  useAnyMVA = cms.bool(True),
143  GBRForestLabel = cms.string('MVASelectorIter5'),
144  trackSelectors= cms.VPSet(
145  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
146  name = 'pixelLessStepLoose',
147  chi2n_par = 0.4,
148  res_par = ( 0.003, 0.001 ),
149  minNumberLayers = 4,
150  maxNumberLostLayers = 1,
151  minNumber3DLayers = 3,
152  d0_par1 = ( 1.2, 4.0 ),
153  dz_par1 = ( 1.2, 4.0 ),
154  d0_par2 = ( 1.2, 4.0 ),
155  dz_par2 = ( 1.2, 4.0 )
156  ),
157  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
158  name = 'pixelLessStepTight',
159  preFilterName = 'pixelLessStepLoose',
160  chi2n_par = 0.3,
161  res_par = ( 0.003, 0.001 ),
162  minNumberLayers = 4,
163  maxNumberLostLayers = 0,
164  minNumber3DLayers = 3,
165  d0_par1 = ( 0.9, 4.0 ),
166  dz_par1 = ( 0.9, 4.0 ),
167  d0_par2 = ( 0.9, 4.0 ),
168  dz_par2 = ( 0.9, 4.0 )
169  ),
170  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
171  name = 'pixelLessStep',
172  preFilterName = 'pixelLessStepTight',
173  chi2n_par = 0.2,
174  res_par = ( 0.003, 0.001 ),
175  minNumberLayers = 4,
176  maxNumberLostLayers = 0,
177  minNumber3DLayers = 3,
178  max_minMissHitOutOrIn = 2,
179  max_lostHitFraction = 1.0,
180  d0_par1 = ( 0.7, 4.0 ),
181  dz_par1 = ( 0.7, 4.0 ),
182  d0_par2 = ( 0.7, 4.0 ),
183  dz_par2 = ( 0.7, 4.0 )
184  ),
185  mixedTripletStepSelector.trackSelectors[4].clone(
186  name = 'pixelLessStepVtx',
187  preFilterName=cms.string(''),
188  keepAllTracks = cms.bool(False)
189  ),
190  mixedTripletStepSelector.trackSelectors[5].clone(
191  name = 'pixelLessStepTrk',
192  preFilterName=cms.string(''),
193  keepAllTracks = cms.bool(False)
194  )
195  ) #end of vpset
196  ) #end of clone
197 
198 # need to merge the three sets
199 import RecoTracker.FinalTrackSelectors.trackListMerger_cfi
200 pixelLessStep = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
201  TrackProducers = cms.VInputTag(cms.InputTag("pixelLessStepTracks"),
202  cms.InputTag("pixelLessStepTracks"),
203  cms.InputTag("pixelLessStepTracks")),
204  hasSelector=cms.vint32(1,1,1),
205  shareFrac=cms.double(0.11),
206  indivShareFrac=cms.vdouble(0.11,0.11,0.11),
207  selectedTrackQuals = cms.VInputTag(cms.InputTag("pixelLessStepSelector","pixelLessStep"),
208  cms.InputTag("pixelLessStepSelector","pixelLessStepVtx"),
209  cms.InputTag("pixelLessStepSelector","pixelLessStepTrk")),
210  setsToMerge = cms.VPSet( cms.PSet( tLists=cms.vint32(0,1,2), pQual=cms.bool(True) )),
211  writeOnlyTrkQuals=cms.bool(True)
212 )
213 
214 PixelLessStep = cms.Sequence(pixelLessStepClusters*
215  pixelLessStepSeedClusters*
216  pixelLessStepSeedLayers*
217  pixelLessStepSeeds*
218  pixelLessStepTrackCandidates*
219  pixelLessStepTracks*
220  pixelLessStepSelector*
221  pixelLessStep)
tuple clone
Definition: statics.py:58