CMS 3D CMS Logo

LowPtTripletStep_cff.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff import tracker_apv_vfp30_2016 as _tracker_apv_vfp30_2016
3 import RecoTracker.IterativeTracking.iterativeTkConfig as _cfg
4 from Configuration.Eras.Modifier_fastSim_cff import fastSim
5 
6 # NEW CLUSTERS (remove previously used clusters)
7 lowPtTripletStepClusters = _cfg.clusterRemoverForIter("LowPtTripletStep")
8 for _eraName, _postfix, _era in _cfg.nonDefaultEras():
9  _era.toReplaceWith(lowPtTripletStepClusters, _cfg.clusterRemoverForIter("LowPtTripletStep", _eraName, _postfix))
10 
11 # SEEDING LAYERS
13 lowPtTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone()
14 lowPtTripletStepSeedLayers.BPix.skipClusters = cms.InputTag('lowPtTripletStepClusters')
15 lowPtTripletStepSeedLayers.FPix.skipClusters = cms.InputTag('lowPtTripletStepClusters')
16 _layerListForPhase1 = [
17  'BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4',
18  'BPix1+BPix3+BPix4', 'BPix1+BPix2+BPix4',
19  'BPix2+BPix3+FPix1_pos', 'BPix2+BPix3+FPix1_neg',
20  'BPix1+BPix2+FPix1_pos', 'BPix1+BPix2+FPix1_neg',
21  'BPix1+BPix3+FPix1_pos', 'BPix1+BPix3+FPix1_neg',
22  'BPix2+FPix1_pos+FPix2_pos', 'BPix2+FPix1_neg+FPix2_neg',
23  'BPix1+FPix1_pos+FPix2_pos', 'BPix1+FPix1_neg+FPix2_neg',
24  'BPix1+BPix2+FPix2_pos', 'BPix1+BPix2+FPix2_neg',
25  'FPix1_pos+FPix2_pos+FPix3_pos', 'FPix1_neg+FPix2_neg+FPix3_neg',
26  'BPix1+FPix2_pos+FPix3_pos', 'BPix1+FPix2_neg+FPix3_neg',
27  'BPix1+FPix1_pos+FPix3_pos', 'BPix1+FPix1_neg+FPix3_neg'
28 ]
29 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
30 trackingPhase1.toModify(lowPtTripletStepSeedLayers, layerList = _layerListForPhase1)
31 
32 # combination with gap removed as only source of fakes in current geometry (kept for doc,=)
33 _layerListForPhase2 = ['BPix1+BPix2+BPix3', 'BPix2+BPix3+BPix4',
34 # 'BPix1+BPix3+BPix4', 'BPix1+BPix2+BPix4',
35  'BPix1+BPix2+FPix1_pos', 'BPix1+BPix2+FPix1_neg',
36  'BPix1+FPix1_pos+FPix2_pos', 'BPix1+FPix1_neg+FPix2_neg',
37 # 'BPix1+BPix2+FPix2_pos', 'BPix1+BPix2+FPix2_neg',
38  'FPix1_pos+FPix2_pos+FPix3_pos', 'FPix1_neg+FPix2_neg+FPix3_neg',
39 # 'BPix1+FPix1_pos+FPix3_pos', 'BPix1+FPix1_neg+FPix3_neg',
40  'FPix2_pos+FPix3_pos+FPix4_pos', 'FPix2_neg+FPix3_neg+FPix4_neg',
41  'FPix3_pos+FPix4_pos+FPix5_pos', 'FPix3_neg+FPix4_neg+FPix5_neg',
42  'FPix4_pos+FPix5_pos+FPix6_pos', 'FPix4_neg+FPix5_neg+FPix6_neg',
43 # removed as redunant and covering effectively only eta>4 (here for documentation, to be optimized after TDR)
44 # 'FPix5_pos+FPix6_pos+FPix7_pos', 'FPix5_neg+FPix6_neg+FPix7_neg',
45 # 'FPix6_pos+FPix7_pos+FPix8_pos', 'FPix6_neg+FPix7_neg+FPix8_neg'
46 ]
47 from Configuration.Eras.Modifier_trackingPhase2PU140_cff import trackingPhase2PU140
48 trackingPhase2PU140.toModify(lowPtTripletStepSeedLayers, layerList = _layerListForPhase2)
49 
50 # TrackingRegion
51 from RecoTracker.TkTrackingRegions.globalTrackingRegionFromBeamSpot_cfi import globalTrackingRegionFromBeamSpot as _globalTrackingRegionFromBeamSpot
52 lowPtTripletStepTrackingRegions = _globalTrackingRegionFromBeamSpot.clone(RegionPSet = dict(
53  ptMin = 0.2,
54  originRadius = 0.02,
55  nSigmaZ = 4.0
56 ))
57 trackingPhase1.toModify(lowPtTripletStepTrackingRegions, RegionPSet = dict(ptMin = 0.2))
58 trackingPhase2PU140.toModify(lowPtTripletStepTrackingRegions, RegionPSet = dict(ptMin = 0.40))
59 
60 from Configuration.Eras.Modifier_pp_on_XeXe_2017_cff import pp_on_XeXe_2017
61 from Configuration.Eras.Modifier_pp_on_AA_2018_cff import pp_on_AA_2018
62 from RecoTracker.TkTrackingRegions.globalTrackingRegionWithVertices_cff import globalTrackingRegionWithVertices as _globalTrackingRegionWithVertices
63 (pp_on_XeXe_2017 | pp_on_AA_2018).toReplaceWith(lowPtTripletStepTrackingRegions,
64  _globalTrackingRegionWithVertices.clone(RegionPSet=dict(
65  useFixedError = False,
66  ptMin = 0.49,
67  originRadius = 0.02
68  )
69  )
70 )
71 from Configuration.Eras.Modifier_highBetaStar_2018_cff import highBetaStar_2018
72 highBetaStar_2018.toModify(lowPtTripletStepTrackingRegions,RegionPSet = dict(
73  ptMin = 0.05,
74  originRadius = 0.2,
75 ))
76 
77 
78 # seeding
79 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi import hitPairEDProducer as _hitPairEDProducer
80 lowPtTripletStepHitDoublets = _hitPairEDProducer.clone(
81  seedingLayers = "lowPtTripletStepSeedLayers",
82  trackingRegions = "lowPtTripletStepTrackingRegions",
83  maxElement = 50000000,
84  produceIntermediateHitDoublets = True,
85 )
86 from RecoPixelVertexing.PixelTriplets.pixelTripletHLTEDProducer_cfi import pixelTripletHLTEDProducer as _pixelTripletHLTEDProducer
88 import RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi
89 lowPtTripletStepHitTriplets = _pixelTripletHLTEDProducer.clone(
90  doublets = "lowPtTripletStepHitDoublets",
91  produceSeedingHitSets = True,
92  SeedComparitorPSet = RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi.LowPtClusterShapeSeedComparitor.clone()
93 )
94 from RecoTracker.TkSeedGenerator.seedCreatorFromRegionConsecutiveHitsEDProducer_cff import seedCreatorFromRegionConsecutiveHitsEDProducer as _seedCreatorFromRegionConsecutiveHitsEDProducer
95 lowPtTripletStepSeeds = _seedCreatorFromRegionConsecutiveHitsEDProducer.clone(
96  seedingHitSets = "lowPtTripletStepHitTriplets",
97 )
98 
99 from RecoPixelVertexing.PixelTriplets.caHitTripletEDProducer_cfi import caHitTripletEDProducer as _caHitTripletEDProducer
100 trackingPhase1.toModify(lowPtTripletStepHitDoublets, layerPairs = [0,1]) # layer pairs (0,1), (1,2)
101 trackingPhase1.toReplaceWith(lowPtTripletStepHitTriplets, _caHitTripletEDProducer.clone(
102  doublets = "lowPtTripletStepHitDoublets",
103  extraHitRPhitolerance = lowPtTripletStepHitTriplets.extraHitRPhitolerance,
104  SeedComparitorPSet = lowPtTripletStepHitTriplets.SeedComparitorPSet,
105  maxChi2 = dict(
106  pt1 = 0.8, pt2 = 2,
107  value1 = 70 , value2 = 8,
108  ),
109  useBendingCorrection = True,
110  CAThetaCut = 0.002,
111  CAPhiCut = 0.05,
112 ))
113 
114 trackingPhase2PU140.toModify(lowPtTripletStepHitDoublets, layerPairs = [0,1]) # layer pairs (0,1), (1,2)
115 trackingPhase2PU140.toReplaceWith(lowPtTripletStepHitTriplets, _caHitTripletEDProducer.clone(
116  doublets = "lowPtTripletStepHitDoublets",
117  extraHitRPhitolerance = lowPtTripletStepHitTriplets.extraHitRPhitolerance,
118  SeedComparitorPSet = lowPtTripletStepHitTriplets.SeedComparitorPSet,
119  maxChi2 = dict(
120  pt1 = 0.8, pt2 = 2,
121  value1 = 70 , value2 = 8,
122  ),
123  useBendingCorrection = True,
124  CAThetaCut = 0.002,
125  CAPhiCut = 0.05,
126 ))
127 highBetaStar_2018.toModify(lowPtTripletStepHitTriplets,CAThetaCut = 0.004,CAPhiCut = 0.1)
128 
129 import FastSimulation.Tracking.TrajectorySeedProducer_cfi
130 _fastSim_lowPtTripletStepSeeds = FastSimulation.Tracking.TrajectorySeedProducer_cfi.trajectorySeedProducer.clone(
131  trackingRegions = "lowPtTripletStepTrackingRegions",
132  hitMasks = cms.InputTag("lowPtTripletStepMasks"),
133 )
134 
135 from FastSimulation.Tracking.SeedingMigration import _hitSetProducerToFactoryPSet
136 _fastSim_lowPtTripletStepSeeds.seedFinderSelector.pixelTripletGeneratorFactory = _hitSetProducerToFactoryPSet(lowPtTripletStepHitTriplets)
137 _fastSim_lowPtTripletStepSeeds.seedFinderSelector.pixelTripletGeneratorFactory.SeedComparitorPSet.ComponentName = "none"
138 _fastSim_lowPtTripletStepSeeds.seedFinderSelector.layerList = lowPtTripletStepSeedLayers.layerList.value()
139 #new for phase1
140 trackingPhase1.toModify(_fastSim_lowPtTripletStepSeeds, seedFinderSelector = dict(
141  pixelTripletGeneratorFactory = None,
142  CAHitTripletGeneratorFactory = _hitSetProducerToFactoryPSet(lowPtTripletStepHitTriplets).clone(SeedComparitorPSet = dict(ComponentName = "none")),
143  #new parameters required for phase1 seeding
144  BPix = dict(
145  TTRHBuilder = 'WithoutRefit',
146  HitProducer = 'TrackingRecHitProducer',
147  ),
148  FPix = dict(
149  TTRHBuilder = 'WithoutRefit',
150  HitProducer = 'TrackingRecHitProducer',
151  ),
152  layerPairs = lowPtTripletStepHitDoublets.layerPairs.value()
153  )
154 )
155 fastSim.toReplaceWith(lowPtTripletStepSeeds,_fastSim_lowPtTripletStepSeeds)
156 
157 # QUALITY CUTS DURING TRACK BUILDING
158 import TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff as _TrajectoryFilter_cff
159 _lowPtTripletStepStandardTrajectoryFilterBase = _TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
160  minimumNumberOfHits = 3,
161  minPt = 0.075,
162 )
163 lowPtTripletStepStandardTrajectoryFilter = _lowPtTripletStepStandardTrajectoryFilterBase.clone(
164  maxCCCLostHits = 0,
165  minGoodStripCharge = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutLoose'))
166 )
167 from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff import tracker_apv_vfp30_2016
168 _tracker_apv_vfp30_2016.toModify(lowPtTripletStepStandardTrajectoryFilter, maxCCCLostHits = 1)
169 from Configuration.Eras.Modifier_trackingLowPU_cff import trackingLowPU
170 trackingLowPU.toReplaceWith(lowPtTripletStepStandardTrajectoryFilter, _lowPtTripletStepStandardTrajectoryFilterBase)
171 trackingPhase2PU140.toReplaceWith(lowPtTripletStepStandardTrajectoryFilter, _lowPtTripletStepStandardTrajectoryFilterBase)
172 
173 for e in [pp_on_XeXe_2017, pp_on_AA_2018]:
174  e.toModify(lowPtTripletStepStandardTrajectoryFilter, minPt=0.49)
175 
177 # Composite filter
178 lowPtTripletStepTrajectoryFilter = _TrajectoryFilter_cff.CompositeTrajectoryFilter_block.clone(
179  filters = [cms.PSet(refToPSet_ = cms.string('lowPtTripletStepStandardTrajectoryFilter')),
180  # cms.PSet(refToPSet_ = cms.string('ClusterShapeTrajectoryFilter'))
181  ]
182  )
183 trackingPhase2PU140.toModify(lowPtTripletStepTrajectoryFilter,
184  filters = lowPtTripletStepTrajectoryFilter.filters + [cms.PSet(refToPSet_ = cms.string('ClusterShapeTrajectoryFilter'))]
185 )
186 
187 lowPtTripletStepTrajectoryFilterInOut = lowPtTripletStepStandardTrajectoryFilter.clone(
188  minimumNumberOfHits = 4,
189  seedExtension = 1,
190  strictSeedExtension = False, # allow inactive
191  pixelSeedExtension = False,
192 )
193 
194 import RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi
195 lowPtTripletStepChi2Est = RecoTracker.MeasurementDet.Chi2ChargeMeasurementEstimator_cfi.Chi2ChargeMeasurementEstimator.clone(
196  ComponentName = cms.string('lowPtTripletStepChi2Est'),
197  nSigma = cms.double(3.0),
198  MaxChi2 = cms.double(9.0),
199  clusterChargeCut = cms.PSet(refToPSet_ = cms.string('SiStripClusterChargeCutTight')),
200 )
201 _tracker_apv_vfp30_2016.toModify(lowPtTripletStepChi2Est,
202  clusterChargeCut = dict(refToPSet_ = "SiStripClusterChargeCutTiny")
203 )
204 
205 # TRACK BUILDING
207 lowPtTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
208  MeasurementTrackerName = '',
209  trajectoryFilter = cms.PSet(refToPSet_ = cms.string('lowPtTripletStepTrajectoryFilter')),
210  maxCand = 4,
211  estimator = cms.string('lowPtTripletStepChi2Est'),
212  maxDPhiForLooperReconstruction = cms.double(2.0),
213  # 0.63 GeV is the maximum pT for a charged particle to loop within the 1.1m radius
214  # of the outermost Tracker barrel layer (with B=3.8T)
215  maxPtForLooperReconstruction = cms.double(0.7)
216  )
217 trackingLowPU.toModify(lowPtTripletStepTrajectoryBuilder, maxCand = 3)
218 trackingPhase2PU140.toModify(lowPtTripletStepTrajectoryBuilder,
219  inOutTrajectoryFilter = dict(refToPSet_ = "lowPtTripletStepTrajectoryFilterInOut"),
220  useSameTrajFilter = False,
221  maxCand = 3,
222 )
223 
224 # MAKING OF TRACK CANDIDATES
226 lowPtTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
227  src = cms.InputTag('lowPtTripletStepSeeds'),
228  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
229  numHitsForSeedCleaner = cms.int32(50),
230  onlyPixelHitsForSeedCleaner = cms.bool(True),
231 
232  TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string('lowPtTripletStepTrajectoryBuilder')),
233  clustersToSkip = cms.InputTag('lowPtTripletStepClusters'),
234  doSeedingRegionRebuilding = True,
235  useHitsSplitting = True,
236  TrajectoryCleaner = 'lowPtTripletStepTrajectoryCleanerBySharedHits'
237 )
238 
239 trackingPhase2PU140.toModify(lowPtTripletStepTrackCandidates,
240  clustersToSkip = None,
241  phase2clustersToSkip = cms.InputTag("lowPtTripletStepClusters")
242 )
243 
244 import FastSimulation.Tracking.TrackCandidateProducer_cfi
245 fastSim.toReplaceWith(lowPtTripletStepTrackCandidates,
246  FastSimulation.Tracking.TrackCandidateProducer_cfi.trackCandidateProducer.clone(
247  src = cms.InputTag("lowPtTripletStepSeeds"),
248  MinNumberOfCrossedLayers = 3,
249  hitMasks = cms.InputTag("lowPtTripletStepMasks"))
250 )
251 
252 # TRACK FITTING
254 lowPtTripletStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
255  src = 'lowPtTripletStepTrackCandidates',
256  AlgorithmName = cms.string('lowPtTripletStep'),
257  Fitter = cms.string('FlexibleKFFittingSmoother')
258  )
259 fastSim.toModify(lowPtTripletStepTracks, TTRHBuilder = 'WithoutRefit')
260 
261 from TrackingTools.TrajectoryCleaning.TrajectoryCleanerBySharedHits_cfi import trajectoryCleanerBySharedHits
262 lowPtTripletStepTrajectoryCleanerBySharedHits = trajectoryCleanerBySharedHits.clone(
263  ComponentName = cms.string('lowPtTripletStepTrajectoryCleanerBySharedHits'),
264  fractionShared = cms.double(0.16),
265  allowSharedFirstHit = cms.bool(True)
266  )
267 trackingLowPU.toModify(lowPtTripletStepTrajectoryCleanerBySharedHits, fractionShared = 0.19)
268 trackingPhase2PU140.toModify(lowPtTripletStepTrajectoryCleanerBySharedHits, fractionShared = 0.09)
269 
270 # Final selection
272 lowPtTripletStep = TrackMVAClassifierPrompt.clone()
273 lowPtTripletStep.src = 'lowPtTripletStepTracks'
274 lowPtTripletStep.mva.GBRForestLabel = 'MVASelectorIter1_13TeV'
275 lowPtTripletStep.qualityCuts = [-0.6,-0.3,-0.1]
276 
277 trackingPhase1.toReplaceWith(lowPtTripletStep, lowPtTripletStep.clone(
278  mva = dict(GBRForestLabel = 'MVASelectorLowPtTripletStep_Phase1'),
279  qualityCuts = [-0.4,0.0,0.3],
280 ))
281 highBetaStar_2018.toModify(lowPtTripletStep,qualityCuts = [-0.7,-0.3,-0.1])
282 fastSim.toModify(lowPtTripletStep, vertices = "firstStepPrimaryVerticesBeforeMixing")
283 pp_on_AA_2018.toModify(lowPtTripletStep,
284  mva = dict(GBRForestLabel = 'HIMVASelectorLowPtTripletStep_Phase1'),
285  qualityCuts = [-0.8, -0.4, 0.5],
286 )
287 
288 
289 # For LowPU and Phase2PU140
290 import RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi
291 lowPtTripletStepSelector = RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.multiTrackSelector.clone(
292  src = 'lowPtTripletStepTracks',
293  useAnyMVA = cms.bool(False),
294  GBRForestLabel = cms.string('MVASelectorIter1'),
295  trackSelectors= [
296  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
297  name = 'lowPtTripletStepLoose',
298  ), #end of pset
299  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
300  name = 'lowPtTripletStepTight',
301  preFilterName = 'lowPtTripletStepLoose',
302  ),
303  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
304  name = 'QualityMasks',
305  preFilterName = 'lowPtTripletStepTight',
306  ),
307  ] #end of vpset
308 ) #end of clone
309 trackingPhase2PU140.toModify(lowPtTripletStepSelector,
310  useAnyMVA = None,
311  GBRForestLabel = None,
312  trackSelectors= cms.VPSet(
313  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.looseMTS.clone(
314  name = 'lowPtTripletStepLoose',
315  chi2n_par = 1.2,
316  res_par = ( 0.003, 0.002 ),
317  minNumberLayers = 3,
318  maxNumberLostLayers = 2,
319  minNumber3DLayers = 3,
320  d0_par1 = ( 0.7, 4.0 ),
321  dz_par1 = ( 0.7, 4.0 ),
322  d0_par2 = ( 0.6, 4.0 ),
323  dz_par2 = ( 0.6, 4.0 )
324  ), #end of pset
325  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.tightMTS.clone(
326  name = 'lowPtTripletStepTight',
327  preFilterName = 'lowPtTripletStepLoose',
328  chi2n_par = 0.7,
329  res_par = ( 0.003, 0.002 ),
330  minNumberLayers = 3,
331  maxNumberLostLayers = 2,
332  minNumber3DLayers = 3,
333  d0_par1 = ( 0.6, 4.0 ),
334  dz_par1 = ( 0.6, 4.0 ),
335  d0_par2 = ( 0.5, 4.0 ),
336  dz_par2 = ( 0.5, 4.0 )
337  ),
338  RecoTracker.FinalTrackSelectors.multiTrackSelector_cfi.highpurityMTS.clone(
339  name = 'lowPtTripletStep',
340  preFilterName = 'lowPtTripletStepTight',
341  chi2n_par = 0.4,
342  res_par = ( 0.003, 0.001 ),
343  min_nhits = 3,
344  minNumberLayers = 4,
345  maxNumberLostLayers = 2,
346  minNumber3DLayers = 4,
347  d0_par1 = ( 0.5, 4.0 ),
348  dz_par1 = ( 0.5, 4.0 ),
349  d0_par2 = ( 0.45, 4.0 ),
350  dz_par2 = ( 0.45, 4.0 )
351  ),
352  ), #end of vpset
353 ) #end of clone
354 
355 
356 
357 # Final sequence
358 LowPtTripletStepTask = cms.Task(lowPtTripletStepClusters,
359  lowPtTripletStepSeedLayers,
360  lowPtTripletStepTrackingRegions,
361  lowPtTripletStepHitDoublets,
362  lowPtTripletStepHitTriplets,
363  lowPtTripletStepSeeds,
364  lowPtTripletStepTrackCandidates,
365  lowPtTripletStepTracks,
366  lowPtTripletStep)
367 LowPtTripletStep = cms.Sequence(LowPtTripletStepTask)
368 
369 _LowPtTripletStepTask_LowPU_Phase2PU140 = LowPtTripletStepTask.copy()
370 _LowPtTripletStepTask_LowPU_Phase2PU140.replace(lowPtTripletStep, lowPtTripletStepSelector)
371 trackingLowPU.toReplaceWith(LowPtTripletStepTask, _LowPtTripletStepTask_LowPU_Phase2PU140)
372 
373 trackingPhase2PU140.toReplaceWith(LowPtTripletStepTask, _LowPtTripletStepTask_LowPU_Phase2PU140)
374 #fastsim
375 from FastSimulation.Tracking.FastTrackerRecHitMaskProducer_cfi import maskProducerFromClusterRemover
376 lowPtTripletStepMasks = maskProducerFromClusterRemover(lowPtTripletStepClusters)
377 fastSim.toReplaceWith(LowPtTripletStepTask,
378  cms.Task(lowPtTripletStepMasks
379  ,lowPtTripletStepTrackingRegions
380  ,lowPtTripletStepSeeds
381  ,lowPtTripletStepTrackCandidates
382  ,lowPtTripletStepTracks
383  ,lowPtTripletStep
384  ))
COSMIC RUN SETTING.
def _hitSetProducerToFactoryPSet(producer)
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
Definition: eve_macros.cc:135