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