CMS 3D CMS Logo

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