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