CMS 3D CMS Logo

hiDetachedTripletStep_cff.py
Go to the documentation of this file.
1 from __future__ import absolute_import
3 from .HIPixelTripletSeeds_cff import *
4 from .HIPixel3PrimTracks_cfi import *
5 
6 hiDetachedTripletStepClusters = cms.EDProducer("HITrackClusterRemover",
7  clusterLessSolution = cms.bool(True),
8  trajectories = cms.InputTag("hiGlobalPrimTracks"),
9  overrideTrkQuals = cms.InputTag('hiInitialStepSelector','hiInitialStep'),
10  TrackQuality = cms.string('highPurity'),
11  minNumberOfLayersWithMeasBeforeFiltering = cms.int32(0),
12  pixelClusters = cms.InputTag("siPixelClusters"),
13  stripClusters = cms.InputTag("siStripClusters"),
14  Common = cms.PSet(
15  maxChi2 = cms.double(9.0),
16  ),
17  Strip = cms.PSet(
18  #Yen-Jie's mod to preserve merged clusters
19  maxSize = cms.uint32(2),
20  maxChi2 = cms.double(9.0)
21  )
22 )
23 
24 
25 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
26 trackingPhase1.toModify(hiDetachedTripletStepClusters,
27  trajectories = "hiDetachedQuadStepTracks",
28  overrideTrkQuals = "hiDetachedQuadStepSelector:hiDetachedQuadStep",
29 )
30 
31 
32 # SEEDING LAYERS
34 hiDetachedTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone(
35  BPix = dict(skipClusters = cms.InputTag('hiDetachedTripletStepClusters')),
36  FPix = dict(skipClusters = cms.InputTag('hiDetachedTripletStepClusters'))
37 )
38 
39 # SEEDS
40 from RecoTracker.TkTrackingRegions.globalTrackingRegionWithVertices_cfi import globalTrackingRegionWithVertices as _globalTrackingRegionWithVertices
41 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi import hitPairEDProducer as _hitPairEDProducer
42 from RecoPixelVertexing.PixelTriplets.pixelTripletHLTEDProducer_cfi import pixelTripletHLTEDProducer as _pixelTripletHLTEDProducer
48 
49 hiDetachedTripletStepTrackingRegions = _globalTrackingRegionWithVertices.clone(RegionPSet=dict(
50  precise = True,
51  useMultipleScattering = False,
52  useFakeVertices = False,
53  beamSpot = "offlineBeamSpot",
54  useFixedError = True,
55  nSigmaZ = 4.0,
56  sigmaZVertex = 4.0,
57  fixedError = 0.5,
58  VertexCollection = "hiSelectedPixelVertex",
59  ptMin = 0.9,
60  useFoundVertices = True,
61  originRadius = 0.5
62 ))
63 hiDetachedTripletStepTracksHitDoublets = _hitPairEDProducer.clone(
64  clusterCheck = "",
65  seedingLayers = "hiDetachedTripletStepSeedLayers",
66  trackingRegions = "hiDetachedTripletStepTrackingRegions",
67  maxElement = 50000000,
68  produceIntermediateHitDoublets = True,
69 )
71 hiDetachedTripletStepTracksHitTriplets = _pixelTripletHLTEDProducer.clone(
72  doublets = "hiDetachedTripletStepTracksHitDoublets",
73  extraHitRPhitolerance = 0.0,
74  extraHitRZtolerance = 0.0,
75  maxElement = 1000000,
76  SeedComparitorPSet = RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi.LowPtClusterShapeSeedComparitor.clone(),
77  produceSeedingHitSets = True,
78 )
79 
80 from RecoPixelVertexing.PixelTriplets.caHitTripletEDProducer_cfi import caHitTripletEDProducer as _caHitTripletEDProducer
81 hiDetachedTripletStepTracksHitDoubletsCA = hiDetachedTripletStepTracksHitDoublets.clone(
82  layerPairs = [0,1]
83 )
84 hiDetachedTripletStepTracksHitTripletsCA = _caHitTripletEDProducer.clone(
85  doublets = "hiDetachedTripletStepTracksHitDoubletsCA",
86  extraHitRPhitolerance = hiDetachedTripletStepTracksHitTriplets.extraHitRPhitolerance,
87  maxChi2 = dict(
88  pt1 = 0.8, pt2 = 2,
89  value1 = 300 , value2 = 10,
90  ),
91  useBendingCorrection = True,
92  CAThetaCut = 0.001,
93  CAPhiCut = 0,
94  CAHardPtCut = 0.2,
95 )
96 
97 hiDetachedTripletStepPixelTracksFilter = hiFilter.clone(
98  nSigmaTipMaxTolerance = 0,
99  lipMax = 1.0,
100  tipMax = 1.0,
101  ptMin = 0.95,
102 )
103 hiDetachedTripletStepPixelTracks = cms.EDProducer("PixelTrackProducer",
104 
105  passLabel = cms.string('Pixel detached tracks with vertex constraint'),
106 
107  # Ordered Hits
108  SeedingHitSets = cms.InputTag("hiDetachedTripletStepTracksHitTriplets"),
109 
110  # Fitter
111  Fitter = cms.InputTag("pixelFitterByHelixProjections"),
112 
113  # Filter
114  Filter = cms.InputTag("hiDetachedTripletStepPixelTracksFilter"),
115 
116  # Cleaner
117  Cleaner = cms.string("trackCleaner")
118 )
119 trackingPhase1.toModify(hiDetachedTripletStepPixelTracks,
120  SeedingHitSets = cms.InputTag("hiDetachedTripletStepTracksHitTripletsCA")
121 )
122 
123 
124 import RecoPixelVertexing.PixelLowPtUtilities.TrackSeeds_cfi
125 hiDetachedTripletStepSeeds = RecoPixelVertexing.PixelLowPtUtilities.TrackSeeds_cfi.pixelTrackSeeds.clone(
126  InputCollection = 'hiDetachedTripletStepPixelTracks'
127  )
128 
129 # QUALITY CUTS DURING TRACK BUILDING
131 hiDetachedTripletStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
132  maxLostHits = 1,
133  minimumNumberOfHits = 6,
134  minPt = 0.3,
135  constantValueForLostHitsFractionFilter = 0.701
136 )
137 
139 hiDetachedTripletStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi.Chi2MeasurementEstimator.clone(
140  ComponentName = 'hiDetachedTripletStepChi2Est',
141  nSigma = 3.0,
142  MaxChi2 = 9.0
143 )
144 
145 
146 # TRACK BUILDING
148 hiDetachedTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
149  MeasurementTrackerName = '',
150  trajectoryFilter = dict(refToPSet_ = 'hiDetachedTripletStepTrajectoryFilter'),
151  maxCand = 2,
152  estimator = 'hiDetachedTripletStepChi2Est',
153  maxDPhiForLooperReconstruction = cms.double(0),
154  maxPtForLooperReconstruction = cms.double(0),
155  alwaysUseInvalidHits = False
156 )
157 
158 # MAKING OF TRACK CANDIDATES
160 hiDetachedTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
161  src = 'hiDetachedTripletStepSeeds',
162 
163  numHitsForSeedCleaner = cms.int32(50),
164  onlyPixelHitsForSeedCleaner = cms.bool(True),
165  TrajectoryBuilderPSet = dict(refToPSet_ = 'hiDetachedTripletStepTrajectoryBuilder'),
166  TrajectoryBuilder = 'hiDetachedTripletStepTrajectoryBuilder',
167  clustersToSkip = cms.InputTag('hiDetachedTripletStepClusters'),
168  doSeedingRegionRebuilding = True,
169  useHitsSplitting = True
170 )
171 
172 
173 # TRACK FITTING
175 hiDetachedTripletStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
176  src = 'hiDetachedTripletStepTrackCandidates',
177  AlgorithmName = 'detachedTripletStep',
178  Fitter = 'FlexibleKFFittingSmoother'
179 )
180 
181 # Final selection
183 hiDetachedTripletStepSelector = RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiMultiTrackSelector.clone(
184  src = 'hiDetachedTripletStepTracks',
185  useAnyMVA = True,
186  GBRForestLabel = 'HIMVASelectorIter7',
187  GBRForestVars = ['chi2perdofperlayer', 'nhits', 'nlayers', 'eta'],
188  trackSelectors = cms.VPSet(
189  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
190  name = 'hiDetachedTripletStepLoose',
191  applyAdaptedPVCuts = False,
192  useMVA = False,
193  ), #end of pset
194  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
195  name = 'hiDetachedTripletStepTight',
196  preFilterName = 'hiDetachedTripletStepLoose',
197  applyAdaptedPVCuts = False,
198  useMVA = True,
199  minMVA = -0.2
200  ),
201  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
202  name = 'hiDetachedTripletStep',
203  preFilterName = 'hiDetachedTripletStepTight',
204  applyAdaptedPVCuts = False,
205  useMVA = True,
206  minMVA = -0.09
207  ),
208  ) #end of vpset
209 ) #end of clone
210 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
211 trackingPhase1.toModify(hiDetachedTripletStepSelector, useAnyMVA = False)
212 trackingPhase1.toModify(hiDetachedTripletStepSelector, trackSelectors= cms.VPSet(
213  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
214  name = 'hiDetachedTripletStepLoose',
215  applyAdaptedPVCuts = False,
216  useMVA = False,
217  ), #end of pset
218  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
219  name = 'hiDetachedTripletStepTight',
220  preFilterName = 'hiDetachedTripletStepLoose',
221  applyAdaptedPVCuts = False,
222  useMVA = False,
223  minMVA = -0.2
224  ),
225  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
226  name = 'hiDetachedTripletStep',
227  preFilterName = 'hiDetachedTripletStepTight',
228  applyAdaptedPVCuts = False,
229  useMVA = False,
230  minMVA = -0.09
231  ),
232  ) #end of vpset
233 )
234 
236 hiDetachedTripletStepQual = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
237  TrackProducers = ['hiDetachedTripletStepTracks'],
238  hasSelector = [1],
239  selectedTrackQuals = ["hiDetachedTripletStepSelector:hiDetachedTripletStep"],
240  copyExtras = True,
241  makeReKeyedSeeds = cms.untracked.bool(False),
242 )
243 
244 
245 hiDetachedTripletStepTask = cms.Task(hiDetachedTripletStepClusters,
246  hiDetachedTripletStepSeedLayers,
247  hiDetachedTripletStepTrackingRegions,
248  hiDetachedTripletStepTracksHitDoublets,
249  hiDetachedTripletStepTracksHitTriplets,
250  pixelFitterByHelixProjections,
251  hiDetachedTripletStepPixelTracksFilter,
252  hiDetachedTripletStepPixelTracks,
253  hiDetachedTripletStepSeeds,
254  hiDetachedTripletStepTrackCandidates,
255  hiDetachedTripletStepTracks,
256  hiDetachedTripletStepSelector,
257  hiDetachedTripletStepQual)
258 hiDetachedTripletStep = cms.Sequence(hiDetachedTripletStepTask)
259 hiDetachedTripletStepTask_Phase1 = hiDetachedTripletStepTask.copy()
260 hiDetachedTripletStepTask_Phase1.replace(hiDetachedTripletStepTracksHitDoublets, hiDetachedTripletStepTracksHitDoubletsCA)
261 hiDetachedTripletStepTask_Phase1.replace(hiDetachedTripletStepTracksHitTriplets, hiDetachedTripletStepTracksHitTripletsCA)
262 trackingPhase1.toReplaceWith(hiDetachedTripletStepTask, hiDetachedTripletStepTask_Phase1)
263 
DetachedTripletStep_cff
TrajectoryFilter_cff
GroupedCkfTrajectoryBuilder_cfi
hiMultiTrackSelector_cfi
ClusterShapeHitFilterESProducer_cfi
HITrackingRegionProducer_cfi
pp iterative tracking modified for hiOffline reco (the vertex is the one reconstructed in HI) 3rd ste...
trackListMerger_cfi
PixelLayerTriplets_cfi
TRIGGER SELECTION #####.
TrackProducer_cfi
globalTrackingRegionWithVertices_cfi
pixelFitterByHelixProjections_cfi
trackCleaner_cfi
HIPixelTrackFilter_cff
CkfTrackCandidates_cfi
Chi2MeasurementEstimator_cfi