CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Phase1PU140_DetachedQuadStep_cff.py
Go to the documentation of this file.
2 
3 ###############################################
4 # Low pT and detached tracks from pixel triplets
5 ###############################################
6 
7 # REMOVE HITS ASSIGNED TO GOOD TRACKS FROM PREVIOUS ITERATIONS
8 
9 detachedQuadStepClusters = cms.EDProducer("TrackClusterRemover",
10  clusterLessSolution = cms.bool(True),
11  oldClusterRemovalInfo = cms.InputTag("lowPtTripletStepClusters"),
12  trajectories = cms.InputTag("lowPtTripletStepTracks"),
13  overrideTrkQuals = cms.InputTag('lowPtTripletStepSelector','lowPtTripletStep'),
14  TrackQuality = cms.string('highPurity'),
15  minNumberOfLayersWithMeasBeforeFiltering = cms.int32(0),
16  pixelClusters = cms.InputTag("siPixelClusters"),
17  stripClusters = cms.InputTag("siStripClusters"),
18  Common = cms.PSet(
19  maxChi2 = cms.double(9.0)
20  )
21 )
22 
23 # SEEDING LAYERS
25 detachedQuadStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone(
26  layerList = cms.vstring('BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4',
27  'BPix1+BPix3+BPix4', 'BPix1+BPix2+BPix4',
28  'BPix2+BPix3+FPix1_pos', 'BPix2+BPix3+FPix1_neg',
29  'BPix1+BPix2+FPix1_pos', 'BPix1+BPix2+FPix1_neg',
30  'BPix2+FPix1_pos+FPix2_pos', 'BPix2+FPix1_neg+FPix2_neg',
31  'BPix1+FPix1_pos+FPix2_pos', 'BPix1+FPix1_neg+FPix2_neg',
32  'FPix1_pos+FPix2_pos+FPix3_pos', 'FPix1_neg+FPix2_neg+FPix3_neg')
33  )
34 detachedQuadStepSeedLayers.BPix.skipClusters = cms.InputTag('detachedQuadStepClusters')
35 detachedQuadStepSeedLayers.FPix.skipClusters = cms.InputTag('detachedQuadStepClusters')
36 
37 # SEEDS
39 PixelTripletLargeTipGenerator.extraHitRZtolerance = 0.0
40 PixelTripletLargeTipGenerator.extraHitRPhitolerance = 0.0
42 from RecoTracker.TkTrackingRegions.GlobalTrackingRegionFromBeamSpot_cfi import RegionPsetFomBeamSpotBlock
43 from RecoPixelVertexing.PixelTriplets.quadrupletseedmerging_cff import PixelSeedMergerQuadruplets
44 detachedQuadStepSeeds = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone(
45  RegionFactoryPSet = RegionPsetFomBeamSpotBlock.clone(
46  ComponentName = cms.string('GlobalRegionProducerFromBeamSpot'),
47  RegionPSet = RegionPsetFomBeamSpotBlock.RegionPSet.clone(
48  ptMin = 0.5,
49  originRadius = 0.5,
50  nSigmaZ = 4.0
51  )
52  ),
53  SeedMergerPSet = cms.PSet(
54  layerList = PixelSeedMergerQuadruplets,
55  addRemainingTriplets = cms.bool(False),
56  mergeTriplets = cms.bool(True),
57  ttrhBuilderLabel = cms.string('PixelTTRHBuilderWithoutAngle')
58  )
59 )
60 detachedQuadStepSeeds.OrderedHitsFactoryPSet.SeedingLayers = 'detachedQuadStepSeedLayers'
61 detachedQuadStepSeeds.OrderedHitsFactoryPSet.GeneratorPSet = cms.PSet(PixelTripletLargeTipGenerator)
62 detachedQuadStepSeeds.SeedCreatorPSet.ComponentName = 'SeedFromConsecutiveHitsTripletOnlyCreator'
63 detachedQuadStepSeeds.SeedComparitorPSet = cms.PSet(
64  ComponentName = cms.string('PixelClusterShapeSeedComparitor'),
65  FilterAtHelixStage = cms.bool(False),
66  FilterPixelHits = cms.bool(True),
67  FilterStripHits = cms.bool(False),
68  ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter'),
69  ClusterShapeCacheSrc = cms.InputTag('siPixelClusterShapeCache')
70  )
71 detachedQuadStepSeeds.ClusterCheckPSet.doClusterCheck = cms.bool(False)
72 detachedQuadStepSeeds.OrderedHitsFactoryPSet.GeneratorPSet.maxElement = cms.uint32(0)
73 
74 # QUALITY CUTS DURING TRACK BUILDING
76 detachedQuadStepStandardTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
77  maxLostHitsFraction = cms.double(1./10.),
78  constantValueForLostHitsFractionFilter = cms.double(0.301),
79  minimumNumberOfHits = 3,
80  minPt = 0.075
81  )
82 
84 # Composite filter
85 detachedQuadStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CompositeTrajectoryFilter_block.clone(
86  filters = [cms.PSet(refToPSet_ = cms.string('detachedQuadStepStandardTrajectoryFilter')),
87  cms.PSet(refToPSet_ = cms.string('ClusterShapeTrajectoryFilter'))]
88  )
89 
91 detachedQuadStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimatorESProducer_cfi.Chi2MeasurementEstimator.clone(
92  ComponentName = cms.string('detachedQuadStepChi2Est'),
93  nSigma = cms.double(3.0),
94  MaxChi2 = cms.double(9.0)
95 )
96 
97 # TRACK BUILDING
99 detachedQuadStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
100  MeasurementTrackerName = '',
101  trajectoryFilter = cms.PSet(refToPSet_ = cms.string('detachedQuadStepTrajectoryFilter')),
102  clustersToSkip = cms.InputTag('detachedQuadStepClusters'),
103  maxCand = 2,
104  alwaysUseInvalidHits = False,
105  estimator = cms.string('detachedQuadStepChi2Est'),
106  maxDPhiForLooperReconstruction = cms.double(2.0),
107  maxPtForLooperReconstruction = cms.double(0.7)
108  )
109 
110 # MAKING OF TRACK CANDIDATES
112 detachedQuadStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
113  src = cms.InputTag('detachedQuadStepSeeds'),
114  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
115  numHitsForSeedCleaner = cms.int32(50),
116  onlyPixelHitsForSeedCleaner = cms.bool(True),
117  TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string('detachedQuadStepTrajectoryBuilder')),
118  doSeedingRegionRebuilding = True,
119  useHitsSplitting = True
120  )
121 
122 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
123 detachedQuadStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
124  ComponentName = cms.string('detachedQuadStepTrajectoryCleanerBySharedHits'),
125  fractionShared = cms.double(0.09),
126  allowSharedFirstHit = cms.bool(True)
127  )
128 detachedQuadStepTrackCandidates.TrajectoryCleaner = 'detachedQuadStepTrajectoryCleanerBySharedHits'
129 
130 # TRACK FITTING
132 detachedQuadStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
133  AlgorithmName = cms.string('iter4'),
134  src = 'detachedQuadStepTrackCandidates',
135  Fitter = cms.string('FlexibleKFFittingSmoother'),
136  TTRHBuilder=cms.string('WithTrackAngle')
137  )
138 
139 # TRACK SELECTION AND QUALITY FLAG SETTING.
140 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
141 detachedQuadStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
142  src='detachedQuadStepTracks',
143  trackSelectors= cms.VPSet(
144  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
145  name = 'detachedQuadStepVtxLoose',
146  chi2n_par = 0.9,
147  res_par = ( 0.003, 0.001 ),
148  minNumberLayers = 3,
149  d0_par1 = ( 0.9, 3.0 ),
150  dz_par1 = ( 0.9, 3.0 ),
151  d0_par2 = ( 1.0, 3.0 ),
152  dz_par2 = ( 1.0, 3.0 )
153  ),
154  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
155  name = 'detachedQuadStepTrkLoose',
156  chi2n_par = 0.5,
157  res_par = ( 0.003, 0.001 ),
158  minNumberLayers = 3,
159  d0_par1 = ( 1.3, 4.0 ),
160  dz_par1 = ( 1.3, 4.0 ),
161  d0_par2 = ( 1.3, 4.0 ),
162  dz_par2 = ( 1.3, 4.0 )
163  ),
164  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
165  name = 'detachedQuadStepVtxTight',
166  preFilterName = 'detachedQuadStepVtxLoose',
167  chi2n_par = 0.9,
168  res_par = ( 0.003, 0.001 ),
169  minNumberLayers = 3,
170  maxNumberLostLayers = 1,
171  minNumber3DLayers = 3,
172  d0_par1 = ( 0.9, 3.0 ),
173  dz_par1 = ( 0.9, 3.0 ),
174  d0_par2 = ( 0.9, 3.0 ),
175  dz_par2 = ( 0.9, 3.0 )
176  ),
177  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
178  name = 'detachedQuadStepTrkTight',
179  preFilterName = 'detachedQuadStepTrkLoose',
180  chi2n_par = 0.35,
181  res_par = ( 0.003, 0.001 ),
182  minNumberLayers = 5,
183  maxNumberLostLayers = 1,
184  minNumber3DLayers = 4,
185  d0_par1 = ( 1.1, 4.0 ),
186  dz_par1 = ( 1.1, 4.0 ),
187  d0_par2 = ( 1.1, 4.0 ),
188  dz_par2 = ( 1.1, 4.0 )
189  ),
190  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
191  name = 'detachedQuadStepVtx',
192  preFilterName = 'detachedQuadStepVtxTight',
193  chi2n_par = 0.8,
194  res_par = ( 0.003, 0.001 ),
195  minNumberLayers = 3,
196  maxNumberLostLayers = 1,
197  minNumber3DLayers = 3,
198  d0_par1 = ( 0.8, 3.0 ),
199  dz_par1 = ( 0.8, 3.0 ),
200  d0_par2 = ( 0.8, 3.0 ),
201  dz_par2 = ( 0.8, 3.0 )
202  ),
203  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
204  name = 'detachedQuadStepTrk',
205  preFilterName = 'detachedQuadStepTrkTight',
206  chi2n_par = 0.2,
207  res_par = ( 0.003, 0.001 ),
208  minNumberLayers = 5,
209  maxNumberLostLayers = 0,
210  minNumber3DLayers = 4,
211  d0_par1 = ( 0.8, 4.0 ),
212  dz_par1 = ( 0.8, 4.0 ),
213  d0_par2 = ( 0.7, 4.0 ),
214  dz_par2 = ( 0.7, 4.0 )
215  )
216  ) #end of vpset
217  ) #end of clone
218 
219 import RecoTracker.FinalTrackSelectors.trackListMerger_cfi
220 detachedQuadStep = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
221  TrackProducers = cms.VInputTag(cms.InputTag('detachedQuadStepTracks'),
222  cms.InputTag('detachedQuadStepTracks')),
223  hasSelector=cms.vint32(1,1),
224  shareFrac = cms.double(0.095),
225  indivShareFrac=cms.vdouble(0.095,0.095),
226  selectedTrackQuals = cms.VInputTag(cms.InputTag("detachedQuadStepSelector","detachedQuadStepVtx"),
227  cms.InputTag("detachedQuadStepSelector","detachedQuadStepTrk")),
228  setsToMerge = cms.VPSet(cms.PSet( tLists=cms.vint32(0,1), pQual=cms.bool(True) )),
229  writeOnlyTrkQuals=cms.bool(True)
230 )
231 
232 DetachedQuadStep = cms.Sequence(detachedQuadStepClusters*
233  detachedQuadStepSeedLayers*
234  detachedQuadStepSeeds*
235  detachedQuadStepTrackCandidates*
236  detachedQuadStepTracks*
237  detachedQuadStepSelector*
238  detachedQuadStep)