CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
DetachedTripletStep_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 
10 detachedTripletStepClusters = trackClusterRemover.clone(
11  maxChi2 = cms.double(9.0),
12  trajectories = cms.InputTag("initialStepTracks"),
13  pixelClusters = cms.InputTag("siPixelClusters"),
14  stripClusters = cms.InputTag("siStripClusters"),
15  oldClusterRemovalInfo = cms.InputTag(""),
16  overrideTrkQuals = cms.InputTag('initialStep'),
17  TrackQuality = cms.string('highPurity'),
18  minNumberOfLayersWithMeasBeforeFiltering = cms.int32(0),
19 )
20 
21 # SEEDING LAYERS
23 detachedTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone()
24 detachedTripletStepSeedLayers.BPix.skipClusters = cms.InputTag('detachedTripletStepClusters')
25 detachedTripletStepSeedLayers.FPix.skipClusters = cms.InputTag('detachedTripletStepClusters')
26 
27 # SEEDS
29 PixelTripletLargeTipGenerator.extraHitRZtolerance = 0.0
30 PixelTripletLargeTipGenerator.extraHitRPhitolerance = 0.0
32 detachedTripletStepSeeds = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone()
33 detachedTripletStepSeeds.OrderedHitsFactoryPSet.SeedingLayers = 'detachedTripletStepSeedLayers'
34 detachedTripletStepSeeds.OrderedHitsFactoryPSet.GeneratorPSet = cms.PSet(PixelTripletLargeTipGenerator)
35 detachedTripletStepSeeds.SeedCreatorPSet.ComponentName = 'SeedFromConsecutiveHitsTripletOnlyCreator'
36 detachedTripletStepSeeds.RegionFactoryPSet.RegionPSet.ptMin = 0.3
37 detachedTripletStepSeeds.RegionFactoryPSet.RegionPSet.originHalfLength = 15.0
38 detachedTripletStepSeeds.RegionFactoryPSet.RegionPSet.originRadius = 1.5
39 
40 detachedTripletStepSeeds.SeedComparitorPSet = cms.PSet(
41  ComponentName = cms.string('PixelClusterShapeSeedComparitor'),
42  FilterAtHelixStage = cms.bool(False),
43  FilterPixelHits = cms.bool(True),
44  FilterStripHits = cms.bool(False),
45  ClusterShapeHitFilterName = cms.string('ClusterShapeHitFilter'),
46  ClusterShapeCacheSrc = cms.InputTag('siPixelClusterShapeCache')
47  )
48 
49 # QUALITY CUTS DURING TRACK BUILDING
51 detachedTripletStepTrajectoryFilterBase = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
52  maxLostHitsFraction = cms.double(1./10.),
53  constantValueForLostHitsFractionFilter = cms.double(0.701),
54  minimumNumberOfHits = 3,
55  minPt = 0.075
56  )
57 import RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi
58 detachedTripletStepTrajectoryFilterShape = RecoPixelVertexing.PixelLowPtUtilities.StripSubClusterShapeTrajectoryFilter_cfi.StripSubClusterShapeTrajectoryFilterTIX12.clone()
59 detachedTripletStepTrajectoryFilter = cms.PSet(
60  ComponentType = cms.string('CompositeTrajectoryFilter'),
61  filters = cms.VPSet(
62  cms.PSet( refToPSet_ = cms.string('detachedTripletStepTrajectoryFilterBase')),
63  cms.PSet( refToPSet_ = cms.string('detachedTripletStepTrajectoryFilterShape'))),
64 )
65 
66 
67 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimatorESProducer_cfi
68 detachedTripletStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimatorESProducer_cfi.Chi2ChargeMeasurementEstimator.clone(
69  ComponentName = cms.string('detachedTripletStepChi2Est'),
70  nSigma = cms.double(3.0),
71  MaxChi2 = cms.double(9.0),
72  clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
73 )
74 
75 # TRACK BUILDING
77 detachedTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
78  MeasurementTrackerName = '',
79  trajectoryFilter = cms.PSet(refToPSet_ = cms.string('detachedTripletStepTrajectoryFilter')),
80  maxCand = 3,
81  alwaysUseInvalidHits = True,
82  estimator = cms.string('detachedTripletStepChi2Est'),
83  maxDPhiForLooperReconstruction = cms.double(2.0),
84  maxPtForLooperReconstruction = cms.double(0.7)
85  )
86 
87 # MAKING OF TRACK CANDIDATES
89 detachedTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
90  src = cms.InputTag('detachedTripletStepSeeds'),
91  clustersToSkip = cms.InputTag('detachedTripletStepClusters'),
92  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
93  numHitsForSeedCleaner = cms.int32(50),
94  onlyPixelHitsForSeedCleaner = cms.bool(True),
95  TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string('detachedTripletStepTrajectoryBuilder')),
96  doSeedingRegionRebuilding = True,
97  useHitsSplitting = True
98  )
99 
100 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
101 detachedTripletStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
102  ComponentName = cms.string('detachedTripletStepTrajectoryCleanerBySharedHits'),
103  fractionShared = cms.double(0.13),
104  allowSharedFirstHit = cms.bool(True)
105  )
106 detachedTripletStepTrackCandidates.TrajectoryCleaner = 'detachedTripletStepTrajectoryCleanerBySharedHits'
107 
108 
109 # TRACK FITTING
111 detachedTripletStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
112  AlgorithmName = cms.string('detachedTripletStep'),
113  src = 'detachedTripletStepTrackCandidates',
114  Fitter = cms.string('FlexibleKFFittingSmoother')
115  )
116 
117 # TRACK SELECTION AND QUALITY FLAG SETTING.
118 
119 # TRACK SELECTION AND QUALITY FLAG SETTING.
120 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
121 detachedTripletStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
122  src='detachedTripletStepTracks',
123  useAnyMVA = cms.bool(True),
124  GBRForestLabel = cms.string('MVASelectorIter3_13TeV_v0'),
125  trackSelectors= cms.VPSet(
126  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
127  name = 'detachedTripletStepVtxLoose',
128  chi2n_par = 9999,
129  useMVA = cms.bool(True),
130  minMVA = cms.double(-0.5),
131  #res_par = ( 0.003, 0.001 ),
132  #minNumberLayers = 3,
133  d0_par1 = ( 1.2, 3.0 ),#sync with mixedTripletStep
134  dz_par1 = ( 1.2, 3.0 ),
135  d0_par2 = ( 1.3, 3.0 ),
136  dz_par2 = ( 1.3, 3.0 )
137  ),
138  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
139  name = 'detachedTripletStepTrkLoose',
140  chi2n_par = 9999,
141  useMVA = cms.bool(True),
142  minMVA = cms.double(-0.5),
143  #res_par = ( 0.003, 0.001 ),
144  #minNumberLayers = 3,
145  d0_par1 = ( 1.4, 4.0 ),
146  dz_par1 = ( 1.4, 4.0 ),
147  d0_par2 = ( 1.4, 4.0 ),
148  dz_par2 = ( 1.4, 4.0 )
149  ),
150  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
151  name = 'detachedTripletStepVtxTight',
152  preFilterName = 'detachedTripletStepVtxLoose',
153  chi2n_par = 0.9,
154  res_par = ( 0.003, 0.001 ),
155  minNumberLayers = 3,
156  maxNumberLostLayers = 1,
157  minNumber3DLayers = 3,
158  d0_par1 = ( 1.1, 3.0 ),#sync with mixedTripletStep
159  dz_par1 = ( 1.1, 3.0 ),
160  d0_par2 = ( 1.2, 3.0 ),
161  dz_par2 = ( 1.2, 3.0 )
162  ),
163  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
164  name = 'detachedTripletStepTrkTight',
165  preFilterName = 'detachedTripletStepTrkLoose',
166  chi2n_par = 0.5,
167  res_par = ( 0.003, 0.001 ),
168  minNumberLayers = 5,
169  maxNumberLostLayers = 1,
170  minNumber3DLayers = 4,
171  d0_par1 = ( 1.1, 4.0 ),
172  dz_par1 = ( 1.1, 4.0 ),
173  d0_par2 = ( 1.1, 4.0 ),
174  dz_par2 = ( 1.1, 4.0 )
175  ),
176  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
177  name = 'detachedTripletStepVtx',
178  preFilterName = 'detachedTripletStepVtxLoose',
179  chi2n_par = cms.double(9999),
180  useMVA = cms.bool(True),
181  minMVA = cms.double(0.5),
182  qualityBit = cms.string('highPurity'),
183  keepAllTracks = cms.bool(True),
184  #chi2n_par = 0.7,
185  #res_par = ( 0.003, 0.001 ),
186  #minNumberLayers = 3,
187  #maxNumberLostLayers = 1,
188  #minNumber3DLayers = 3,
189  d0_par1 = ( 1.0, 3.0 ),#sync with mixedTripletStep
190  dz_par1 = ( 1.0, 3.0 ),
191  d0_par2 = ( 1.1, 3.0 ),
192  dz_par2 = ( 1.1, 3.0 )
193  ),
194  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
195  name = 'detachedTripletStepTrk',
196  preFilterName = 'detachedTripletStepTrkLoose',
197  chi2n_par = cms.double(9999),
198  useMVA = cms.bool(True),
199  minMVA = cms.double(0.5),
200  qualityBit = cms.string('highPurity'),
201  keepAllTracks = cms.bool(True),
202  #chi2n_par = 0.3,
203  #res_par = ( 0.003, 0.001 ),
204  #minNumberLayers = 5,
205  #maxNumberLostLayers = 0,
206  #minNumber3DLayers = 4,
207  d0_par1 = ( 1.0, 4.0 ),
208  dz_par1 = ( 1.0, 4.0 ),
209  d0_par2 = ( 1.0, 4.0 ),
210  dz_par2 = ( 1.0, 4.0 )
211  )
212  ) #end of vpset
213  ) #end of clone
214 
215 
216 import RecoTracker.FinalTrackSelectors.trackListMerger_cfi
217 detachedTripletStep = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
218  TrackProducers = cms.VInputTag(cms.InputTag('detachedTripletStepTracks'),
219  cms.InputTag('detachedTripletStepTracks')),
220  hasSelector=cms.vint32(1,1),
221  shareFrac = cms.double(0.13),
222  indivShareFrac=cms.vdouble(0.13,0.13),
223  selectedTrackQuals = cms.VInputTag(cms.InputTag("detachedTripletStepSelector","detachedTripletStepVtx"),
224  cms.InputTag("detachedTripletStepSelector","detachedTripletStepTrk")),
225  setsToMerge = cms.VPSet(cms.PSet( tLists=cms.vint32(0,1), pQual=cms.bool(True) )),
226  writeOnlyTrkQuals=cms.bool(True)
227 )
228 
229 DetachedTripletStep = cms.Sequence(detachedTripletStepClusters*
230  detachedTripletStepSeedLayers*
231  detachedTripletStepSeeds*
232  detachedTripletStepTrackCandidates*
233  detachedTripletStepTracks*
234  detachedTripletStepSelector*
235  detachedTripletStep)