CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Phase1PU70_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
8 
10 detachedQuadStepClusters = trackClusterRemover.clone(
11  maxChi2 = cms.double(9.0),
12  trajectories = cms.InputTag("lowPtTripletStepTracks"),
13  pixelClusters = cms.InputTag("siPixelClusters"),
14  stripClusters = cms.InputTag("siStripClusters"),
15  oldClusterRemovalInfo = cms.InputTag("lowPtTripletStepClusters"),
16  overrideTrkQuals = cms.InputTag('lowPtTripletStepSelector','lowPtTripletStep'),
17  TrackQuality = cms.string('highPurity'),
18  minNumberOfLayersWithMeasBeforeFiltering = cms.int32(0),
19 )
20 
21 # SEEDING LAYERS
23 detachedQuadStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone(
24  layerList = cms.vstring('BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4',
25  'BPix1+BPix3+BPix4', 'BPix1+BPix2+BPix4',
26  'BPix2+BPix3+FPix1_pos', 'BPix2+BPix3+FPix1_neg',
27  'BPix1+BPix2+FPix1_pos', 'BPix1+BPix2+FPix1_neg',
28  'BPix2+FPix1_pos+FPix2_pos', 'BPix2+FPix1_neg+FPix2_neg',
29  'BPix1+FPix1_pos+FPix2_pos', 'BPix1+FPix1_neg+FPix2_neg',
30  'FPix1_pos+FPix2_pos+FPix3_pos', 'FPix1_neg+FPix2_neg+FPix3_neg')
31  )
32 detachedQuadStepSeedLayers.BPix.skipClusters = cms.InputTag('detachedQuadStepClusters')
33 detachedQuadStepSeedLayers.FPix.skipClusters = cms.InputTag('detachedQuadStepClusters')
34 
35 # SEEDS
37 PixelTripletLargeTipGenerator.extraHitRZtolerance = 0.0
38 PixelTripletLargeTipGenerator.extraHitRPhitolerance = 0.0
40 from RecoTracker.TkTrackingRegions.GlobalTrackingRegionFromBeamSpot_cfi import RegionPsetFomBeamSpotBlock
42 detachedQuadStepSeeds = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone(
43  RegionFactoryPSet = RegionPsetFomBeamSpotBlock.clone(
44  ComponentName = cms.string('GlobalRegionProducerFromBeamSpot'),
45  RegionPSet = RegionPsetFomBeamSpotBlock.RegionPSet.clone(
46  ptMin = 0.3,
47  originRadius = 0.5,
48  nSigmaZ = 4.0
49  )
50  ),
51  SeedMergerPSet = cms.PSet(
52  layerList = cms.PSet(refToPSet_ = cms.string("PixelSeedMergerQuadruplets")),
53  addRemainingTriplets = cms.bool(False),
54  mergeTriplets = cms.bool(True),
55  ttrhBuilderLabel = cms.string('PixelTTRHBuilderWithoutAngle')
56  )
57 )
58 detachedQuadStepSeeds.OrderedHitsFactoryPSet.SeedingLayers = 'detachedQuadStepSeedLayers'
59 detachedQuadStepSeeds.OrderedHitsFactoryPSet.GeneratorPSet = cms.PSet(PixelTripletLargeTipGenerator)
60 detachedQuadStepSeeds.SeedCreatorPSet.ComponentName = 'SeedFromConsecutiveHitsTripletOnlyCreator'
61 detachedQuadStepSeeds.SeedComparitorPSet = cms.PSet(
62  ComponentName = cms.string('PixelClusterShapeSeedComparitor'),
63  FilterAtHelixStage = cms.bool(False),
64  FilterPixelHits = cms.bool(True),
65  FilterStripHits = cms.bool(False),
66  ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter'),
67  ClusterShapeCacheSrc = cms.InputTag('siPixelClusterShapeCache')
68  )
69 detachedQuadStepSeeds.ClusterCheckPSet.doClusterCheck = cms.bool(False)
70 detachedQuadStepSeeds.OrderedHitsFactoryPSet.GeneratorPSet.maxElement = cms.uint32(0)
71 detachedQuadStepSeeds.SeedCreatorPSet.magneticField = ''
72 detachedQuadStepSeeds.SeedCreatorPSet.propagator = 'PropagatorWithMaterial'
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.501),
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.Chi2MeasurementEstimator_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  maxCand = 2,
103  alwaysUseInvalidHits = False,
104  estimator = cms.string('detachedQuadStepChi2Est'),
105  maxDPhiForLooperReconstruction = cms.double(2.0),
106  maxPtForLooperReconstruction = cms.double(0.7)
107  )
108 
109 # MAKING OF TRACK CANDIDATES
111 detachedQuadStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
112  src = cms.InputTag('detachedQuadStepSeeds'),
113  clustersToSkip = cms.InputTag('detachedQuadStepClusters'),
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.095),
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('detachedQuadStep'),
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.9,
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.9, 4.0 ),
212  dz_par1 = ( 0.9, 4.0 ),
213  d0_par2 = ( 0.8, 4.0 ),
214  dz_par2 = ( 0.8, 4.0 )
215  )
216  ) #end of vpset
217  ) #end of clone
218 
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)