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