CMS 3D CMS Logo

hiDetachedQuadStep_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 hiDetachedQuadStepClusters = cms.EDProducer("HITrackClusterRemover",
7  clusterLessSolution = cms.bool(True),
8  trajectories = cms.InputTag("hiHighPtTripletStepTracks"),
9  overrideTrkQuals = cms.InputTag("hiHighPtTripletStepSelector","hiHighPtTripletStep"),
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 # SEEDING LAYERS
25 # Using 4 layers layerlist
26 hiDetachedQuadStepSeedLayers = hiPixelLayerQuadruplets.clone(
27  BPix = dict(skipClusters = cms.InputTag('hiDetachedQuadStepClusters')),
28  FPix = dict(skipClusters = cms.InputTag('hiDetachedQuadStepClusters'))
29 )
30 # SEEDS
31 from RecoTracker.TkTrackingRegions.globalTrackingRegionWithVertices_cfi import globalTrackingRegionWithVertices as _globalTrackingRegionWithVertices
32 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi import hitPairEDProducer as _hitPairEDProducer
33 from RecoTracker.PixelSeeding.pixelTripletHLTEDProducer_cfi import pixelTripletHLTEDProducer as _pixelTripletHLTEDProducer
39 
40 hiDetachedQuadStepTrackingRegions = _globalTrackingRegionWithVertices.clone(RegionPSet = dict(
41  precise = True,
42  useMultipleScattering = False,
43  useFakeVertices = False,
44  beamSpot = "offlineBeamSpot",
45  useFixedError = True,
46  nSigmaZ = 4.0,
47  sigmaZVertex = 4.0,
48  fixedError = 0.5,
49  VertexCollection = "hiSelectedPixelVertex",
50  ptMin = 0.9,# 0.3 for pp
51  useFoundVertices = True,
52  #originHalfLength = 15.0, # 15 for pp, useTrackingRegionWithVertices, does not have this parameter. Only with BeamSpot
53  originRadius = 1.5 # 1.5 for pp
54  )
55 )
56 hiDetachedQuadStepTracksHitDoubletsCA = _hitPairEDProducer.clone(
57  clusterCheck = "",
58  seedingLayers = "hiDetachedQuadStepSeedLayers",
59  trackingRegions = "hiDetachedQuadStepTrackingRegions",
60  maxElement = 50000000,
61  produceIntermediateHitDoublets = True,
62  layerPairs = [0,1,2]
63 )
64 
65 from RecoTracker.PixelSeeding.caHitQuadrupletEDProducer_cfi import caHitQuadrupletEDProducer as _caHitQuadrupletEDProducer
66 hiDetachedQuadStepTracksHitQuadrupletsCA = _caHitQuadrupletEDProducer.clone(
67  doublets = "hiDetachedQuadStepTracksHitDoubletsCA",
68  extraHitRPhitolerance = 0.0,
69  maxChi2 = dict(
70  pt1 = 0.8, pt2 = 2,
71  value1 = 500, value2 = 100,
72  ),
73  useBendingCorrection = True,
74  fitFastCircle = True,
75  fitFastCircleChi2Cut = True,
76  CAThetaCut = 0.0011,
77  CAPhiCut = 0,
78 )
79 
80 hiDetachedQuadStepPixelTracksFilter = hiFilter.clone(
81  nSigmaTipMaxTolerance = 0,
82  lipMax = 1.0,
83  tipMax = 1.0,
84  ptMin = 0.95, #seeding region is 0.3
85 )
86 
87 import RecoTracker.PixelTrackFitting.pixelTracks_cfi as _mod
88 
89 hiDetachedQuadStepPixelTracks = _mod.pixelTracks.clone(
90  passLabel = 'Pixel detached tracks with vertex constraint',
91  # Ordered Hits
92  SeedingHitSets = "hiDetachedQuadStepTracksHitQuadrupletsCA",
93  # Fitter
94  Fitter = "pixelFitterByHelixProjections",
95  # Filter
96  Filter = "hiDetachedQuadStepPixelTracksFilter",
97  # Cleaner
98  Cleaner = "trackCleaner"
99 )
100 
101 
102 import RecoTracker.PixelLowPtUtilities.TrackSeeds_cfi
103 hiDetachedQuadStepSeeds = RecoTracker.PixelLowPtUtilities.TrackSeeds_cfi.pixelTrackSeeds.clone(
104  InputCollection = 'hiDetachedQuadStepPixelTracks'
105 )
106 
107 # QUALITY CUTS DURING TRACK BUILDING
109 hiDetachedQuadStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
110  #maxLostHits = 1,
111  minimumNumberOfHits = 3,#3 for pp
112  minPt = 0.075,# 0.075 for pp
113  #constantValueForLostHitsFractionFilter = 0.701
114 )
115 
117 hiDetachedQuadStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi.Chi2MeasurementEstimator.clone(
118  ComponentName = 'hiDetachedQuadStepChi2Est',
119  nSigma = 3.0,
120  MaxChi2 = 9.0
121 )
122 
123 # TRACK BUILDING
125 hiDetachedQuadStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
126  trajectoryFilter = dict(refToPSet_ = 'hiDetachedQuadStepTrajectoryFilter'),
127  maxCand = 4, # 4 for pp
128  estimator = 'hiDetachedQuadStepChi2Est',
129  maxDPhiForLooperReconstruction = 2.0, # 2.0 for pp
130  # 0.63 GeV is the maximum pT for a charged particle to loop within the 1.1m radius
131  # of the outermost Tracker barrel layer (B=3.8T)
132  maxPtForLooperReconstruction = 0.7, # 0.7 for pp
133  alwaysUseInvalidHits = False
134 )
135 
136 # MAKING OF TRACK CANDIDATES
137 
138 # Trajectory cleaner in default
139 
141 hiDetachedQuadStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
142  src = 'hiDetachedQuadStepSeeds',
143 
144  numHitsForSeedCleaner = 50,
145  onlyPixelHitsForSeedCleaner = True,
146  TrajectoryBuilderPSet = dict(refToPSet_ = 'hiDetachedQuadStepTrajectoryBuilder'),
147  clustersToSkip = 'hiDetachedQuadStepClusters',
148  doSeedingRegionRebuilding = True,
149  useHitsSplitting = True
150 )
151 
152 
153 # TRACK FITTING
155 hiDetachedQuadStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
156  src = 'hiDetachedQuadStepTrackCandidates',
157  AlgorithmName = 'detachedQuadStep',
158  Fitter='FlexibleKFFittingSmoother'
159 )
160 
161 # Final selection
163 hiDetachedQuadStepSelector = RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiMultiTrackSelector.clone(
164  src = 'hiDetachedQuadStepTracks',
165  useAnyMVA = True,
166  GBRForestLabel = 'HIMVASelectorIter10',#FIXME MVA for new iteration
167  GBRForestVars = ['chi2perdofperlayer', 'nhits', 'nlayers', 'eta'],
168  trackSelectors= cms.VPSet(
169  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
170  name = 'hiDetachedQuadStepLoose',
171  applyAdaptedPVCuts = False,
172  useMVA = False,
173  ), #end of pset
174  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
175  name = 'hiDetachedQuadStepTight',
176  preFilterName = 'hiDetachedQuadStepLoose',
177  applyAdaptedPVCuts = True,
178  useMVA = True,
179  minMVA = -0.2
180  ),
181  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
182  name = 'hiDetachedQuadStep',
183  preFilterName = 'hiDetachedQuadStepTight',
184  applyAdaptedPVCuts = True,
185  useMVA = True,
186  minMVA = -0.09
187  ),
188  ) #end of vpset
189 ) #end of clone
190 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
191 trackingPhase1.toModify(hiDetachedQuadStepSelector,
192  useAnyMVA = False,
193  trackSelectors= cms.VPSet(
194  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
195  name = 'hiDetachedQuadStepLoose',
196  applyAdaptedPVCuts = False,
197  useMVA = False,
198  ), #end of pset
199  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
200  name = 'hiDetachedQuadStepTight',
201  preFilterName = 'hiDetachedQuadStepLoose',
202  applyAdaptedPVCuts = False,
203  useMVA = False,
204  minMVA = -0.2
205  ),
206  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
207  name = 'hiDetachedQuadStep',
208  preFilterName = 'hiDetachedQuadStepTight',
209  applyAdaptedPVCuts = False,
210  useMVA = False,
211  minMVA = -0.09
212  ),
213  ) #end of vpset
214 )
215 
217 hiDetachedQuadStepQual = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
218  TrackProducers = ['hiDetachedQuadStepTracks'],
219  hasSelector = [1],
220  selectedTrackQuals = ["hiDetachedQuadStepSelector:hiDetachedQuadStep"],
221  copyExtras = True,
222  makeReKeyedSeeds = cms.untracked.bool(False),
223 )
224 
225 
226 hiDetachedQuadStepTask = cms.Task(hiDetachedQuadStepClusters,
227  hiDetachedQuadStepSeedLayers,
228  hiDetachedQuadStepTrackingRegions,
229  hiDetachedQuadStepTracksHitDoubletsCA,
230  hiDetachedQuadStepTracksHitQuadrupletsCA,
231  pixelFitterByHelixProjections,
232  hiDetachedQuadStepPixelTracksFilter,
233  hiDetachedQuadStepPixelTracks,
234  hiDetachedQuadStepSeeds,
235  hiDetachedQuadStepTrackCandidates,
236  hiDetachedQuadStepTracks,
237  hiDetachedQuadStepSelector,
238  hiDetachedQuadStepQual)
239 hiDetachedQuadStep = cms.Sequence(hiDetachedQuadStepTask)
240 
pp iterative tracking modified for hiOffline reco (the vertex is the one reconstructed in HI) 3rd ste...