CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
hiMixedTripletStep_cff.py
Go to the documentation of this file.
2 
3 # NEW CLUSTERS (remove previously used clusters)
4 hiMixedTripletClusters = cms.EDProducer("TrackClusterRemover",
5  clusterLessSolution= cms.bool(True),
6  oldClusterRemovalInfo = cms.InputTag("hiSecondPixelTripletClusters"),
7  trajectories = cms.InputTag("hiSecondPixelTripletGlobalPrimTracks"),
8  overrideTrkQuals = cms.InputTag('hiSecondPixelTripletStepSelector','hiSecondPixelTripletStep'),
9  TrackQuality = cms.string('highPurity'),
10  pixelClusters = cms.InputTag("siPixelClusters"),
11  stripClusters = cms.InputTag("siStripClusters"),
12  Common = cms.PSet(
13  maxChi2 = cms.double(9.0),
14  ),
15  Strip = cms.PSet(
16  maxChi2 = cms.double(9.0),
17  #Yen-Jie's mod to preserve merged clusters
18  maxSize = cms.uint32(2)
19  )
20  )
21 
22 
23 
24 
25 
26 # SEEDING LAYERS
27 hiMixedTripletSeedLayersA = cms.ESProducer("SeedingLayersESProducer",
28  ComponentName = cms.string('hiMixedTripletSeedLayersA'),
29  layerList = cms.vstring('FPix1_pos+FPix2_pos+TEC1_pos', 'FPix1_neg+FPix2_neg+TEC1_neg'),
30  #'FPix2_pos+TEC2_pos+TEC3_pos', 'FPix2_neg+TEC2_neg+TEC3_neg'),
31  BPix = cms.PSet(
32  useErrorsFromParam = cms.bool(True),
33  hitErrorRZ = cms.double(0.006),
34  hitErrorRPhi = cms.double(0.0027),
35  TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'),
36  HitProducer = cms.string('siPixelRecHits'),
37  skipClusters = cms.InputTag('hiMixedTripletClusters')
38  ),
39  FPix = cms.PSet(
40  useErrorsFromParam = cms.bool(True),
41  hitErrorRPhi = cms.double(0.0051),
42  hitErrorRZ = cms.double(0.0036),
43  TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'),
44  HitProducer = cms.string('siPixelRecHits'),
45  skipClusters = cms.InputTag('hiMixedTripletClusters')
46  ),
47  TEC = cms.PSet(
48  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
49  useRingSlector = cms.bool(True),
50  TTRHBuilder = cms.string('WithTrackAngle'),
51  minRing = cms.int32(1),
52  maxRing = cms.int32(1),
53  skipClusters = cms.InputTag('hiMixedTripletClusters')
54  )
55  )
56 
57 # SEEDS
59 PixelTripletLargeTipGenerator.extraHitRZtolerance = 0.0
60 PixelTripletLargeTipGenerator.extraHitRPhitolerance = 0.0
62 hiMixedTripletSeedsA = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone()
63 hiMixedTripletSeedsA.OrderedHitsFactoryPSet.SeedingLayers = 'hiMixedTripletSeedLayersA'
64 hiMixedTripletSeedsA.OrderedHitsFactoryPSet.GeneratorPSet = cms.PSet(PixelTripletLargeTipGenerator)
65 hiMixedTripletSeedsA.SeedCreatorPSet.ComponentName = 'SeedFromConsecutiveHitsTripletOnlyCreator'
66 hiMixedTripletSeedsA.RegionFactoryPSet.RegionPSet.ptMin = 4.0
67 hiMixedTripletSeedsA.RegionFactoryPSet.RegionPSet.originRadius = 0.005
68 #hiMixedTripletSeedsA.RegionFactoryPSet.RegionPSet.nSigmaZ = 4.0
69 hiMixedTripletSeedsA.RegionFactoryPSet.RegionPSet.originHalfLength = 10.0
70 
71 hiMixedTripletSeedsA.OrderedHitsFactoryPSet.GeneratorPSet.maxElement = 5000000
72 hiMixedTripletSeedsA.ClusterCheckPSet.MaxNumberOfPixelClusters = 5000000
73 hiMixedTripletSeedsA.ClusterCheckPSet.MaxNumberOfCosmicClusters = 50000000
74 
75 
76 # SEEDING LAYERS
77 hiMixedTripletSeedLayersB = cms.ESProducer("SeedingLayersESProducer",
78  ComponentName = cms.string('hiMixedTripletSeedLayersB'),
79  layerList = cms.vstring(
80  #'BPix1+BPix2+TIB1',
81  #'BPix1+BPix2+TIB2',
82  #'BPix1+BPix3+TIB1',
83  #'BPix1+BPix3+TIB2',
84  'BPix2+BPix3+TIB1',
85  'BPix2+BPix3+TIB2'),
86  BPix = cms.PSet(
87  useErrorsFromParam = cms.bool(True),
88  hitErrorRPhi = cms.double(0.0027),
89  hitErrorRZ = cms.double(0.006),
90  TTRHBuilder = cms.string('TTRHBuilderWithoutAngle4MixedTriplets'),
91  HitProducer = cms.string('siPixelRecHits'),
92  skipClusters = cms.InputTag('hiMixedTripletClusters')
93  ),
94  TIB = cms.PSet(
95  matchedRecHits = cms.InputTag("siStripMatchedRecHits","matchedRecHit"),
96  TTRHBuilder = cms.string('WithTrackAngle'),
97  skipClusters = cms.InputTag('hiMixedTripletClusters')
98  )
99  )
100 
101 # SEEDS
103 PixelTripletLargeTipGenerator.extraHitRZtolerance = 0.0
104 PixelTripletLargeTipGenerator.extraHitRPhitolerance = 0.0
106 hiMixedTripletSeedsB = RecoTracker.TkSeedGenerator.GlobalSeedsFromTriplets_cff.globalSeedsFromTriplets.clone()
107 hiMixedTripletSeedsB.OrderedHitsFactoryPSet.SeedingLayers = 'hiMixedTripletSeedLayersB'
108 hiMixedTripletSeedsB.OrderedHitsFactoryPSet.GeneratorPSet = cms.PSet(PixelTripletLargeTipGenerator)
109 hiMixedTripletSeedsB.SeedCreatorPSet.ComponentName = 'SeedFromConsecutiveHitsTripletOnlyCreator'
110 hiMixedTripletSeedsB.RegionFactoryPSet.RegionPSet.ptMin = 4.0
111 hiMixedTripletSeedsB.RegionFactoryPSet.RegionPSet.originRadius = 0.005
112 #hiMixedTripletSeedsB.RegionFactoryPSet.RegionPSet.nSigmaZ = 4.0
113 hiMixedTripletSeedsB.RegionFactoryPSet.RegionPSet.originHalfLength = 10.0
114 
115 hiMixedTripletSeedsB.OrderedHitsFactoryPSet.GeneratorPSet.maxElement = 5000000
116 hiMixedTripletSeedsB.ClusterCheckPSet.MaxNumberOfPixelClusters = 5000000
117 hiMixedTripletSeedsB.ClusterCheckPSet.MaxNumberOfCosmicClusters = 50000000
118 
120 hiMixedTripletSeeds = RecoTracker.TkSeedGenerator.GlobalCombinedSeeds_cfi.globalCombinedSeeds.clone()
121 hiMixedTripletSeeds.seedCollections = cms.VInputTag(
122  cms.InputTag('hiMixedTripletSeedsA'),
123  cms.InputTag('hiMixedTripletSeedsB'),
124  )
125 
126 # QUALITY CUTS DURING TRACK BUILDING
127 import TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi
128 hiMixedTripletTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.clone(
129  ComponentName = 'hiMixedTripletTrajectoryFilter',
130  filterPset = TrackingTools.TrajectoryFiltering.TrajectoryFilterESProducer_cfi.trajectoryFilterESProducer.filterPset.clone(
131  maxLostHits = 0,
132  minimumNumberOfHits = 6,
133  minPt = 1.0
134  )
135  )
136 
137 # Propagator taking into account momentum uncertainty in multiple scattering calculation.
139 hiMixedTripletPropagator = TrackingTools.MaterialEffects.MaterialPropagator_cfi.MaterialPropagator.clone(
140  ComponentName = 'hiMixedTripletPropagator',
141  ptMin = 1.0
142  )
144 hiMixedTripletPropagatorOpposite = TrackingTools.MaterialEffects.OppositeMaterialPropagator_cfi.OppositeMaterialPropagator.clone(
145  ComponentName = 'hiMixedTripletPropagatorOpposite',
146  ptMin = 1.0
147  )
148 
150 hiMixedTripletChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimatorESProducer_cfi.Chi2MeasurementEstimator.clone(
151  ComponentName = cms.string('hiMixedTripletChi2Est'),
152  nSigma = cms.double(3.0),
153  MaxChi2 = cms.double(16.0)
154  )
155 
156 # TRACK BUILDING
158 hiMixedTripletTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilderESProducer_cfi.GroupedCkfTrajectoryBuilder.clone(
159  ComponentName = 'hiMixedTripletTrajectoryBuilder',
160  MeasurementTrackerName = '',
161  trajectoryFilterName = 'hiMixedTripletTrajectoryFilter',
162  propagatorAlong = cms.string('hiMixedTripletPropagator'),
163  propagatorOpposite = cms.string('hiMixedTripletPropagatorOpposite'),
164  clustersToSkip = cms.InputTag('hiMixedTripletClusters'),
165  maxCand = 2,
166  estimator = cms.string('hiMixedTripletChi2Est')
167  )
168 
169 # MAKING OF TRACK CANDIDATES
171 hiMixedTripletTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
172  src = cms.InputTag('hiMixedTripletSeeds'),
173  TrajectoryBuilder = 'hiMixedTripletTrajectoryBuilder',
174  doSeedingRegionRebuilding = True,
175  useHitsSplitting = True
176  )
177 # TRACK FITTING
179 hiMixedTripletGlobalPrimTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
180  AlgorithmName = cms.string('iter4'),
181  src = 'hiMixedTripletTrackCandidates'
182  )
183 
184 # Final selection
185 import RecoHI.HiTracking.hiMultiTrackSelector_cfi
186 hiMixedTripletStepSelector = RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiMultiTrackSelector.clone(
187  src='hiMixedTripletGlobalPrimTracks',
188  trackSelectors= cms.VPSet(
189  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
190  name = 'hiMixedTripletStepLoose',
191  ), #end of pset
192  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
193  name = 'hiMixedTripletStepTight',
194  preFilterName = 'hiMixedTripletStepLoose',
195  ),
196  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
197  name = 'hiMixedTripletStep',
198  preFilterName = 'hiMixedTripletStepTight',
199  min_nhits = 14
200  ),
201  ) #end of vpset
202  ) #end of clone
203 
204 
205 
206 # Final sequence
207 
208 hiMixedTripletStep = cms.Sequence(
209  hiMixedTripletClusters*
210  hiMixedTripletSeedsA*
211  hiMixedTripletSeedsB*
212  hiMixedTripletSeeds*
213  hiMixedTripletTrackCandidates*
214  hiMixedTripletGlobalPrimTracks*
215  hiMixedTripletStepSelector)
216