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 RecoPixelVertexing.PixelTriplets.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 RecoPixelVertexing.PixelTriplets.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 hiDetachedQuadStepPixelTracks = cms.EDProducer("PixelTrackProducer",
87 
88  passLabel = cms.string('Pixel detached tracks with vertex constraint'),
89 
90  # Ordered Hits
91  SeedingHitSets = cms.InputTag("hiDetachedQuadStepTracksHitQuadrupletsCA"),
92 
93  # Fitter
94  Fitter = cms.InputTag("pixelFitterByHelixProjections"),
95 
96  # Filter
97  Filter = cms.InputTag("hiDetachedQuadStepPixelTracksFilter"),
98 
99  # Cleaner
100  Cleaner = cms.string("trackCleaner")
101 )
102 
103 
104 import RecoPixelVertexing.PixelLowPtUtilities.TrackSeeds_cfi
105 hiDetachedQuadStepSeeds = RecoPixelVertexing.PixelLowPtUtilities.TrackSeeds_cfi.pixelTrackSeeds.clone(
106  InputCollection = 'hiDetachedQuadStepPixelTracks'
107 )
108 
109 # QUALITY CUTS DURING TRACK BUILDING
111 hiDetachedQuadStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
112  #maxLostHits = 1,
113  minimumNumberOfHits = 3,#3 for pp
114  minPt = 0.075,# 0.075 for pp
115  #constantValueForLostHitsFractionFilter = 0.701
116 )
117 
119 hiDetachedQuadStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi.Chi2MeasurementEstimator.clone(
120  ComponentName = 'hiDetachedQuadStepChi2Est',
121  nSigma = 3.0,
122  MaxChi2 = 9.0
123 )
124 
125 # TRACK BUILDING
127 hiDetachedQuadStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
128  MeasurementTrackerName = '',
129  trajectoryFilter = dict(refToPSet_ = 'hiDetachedQuadStepTrajectoryFilter'),
130  maxCand = 4,#4 for pp
131  estimator = 'hiDetachedQuadStepChi2Est',
132  maxDPhiForLooperReconstruction = cms.double(2.0),#2.0 for pp
133  # 0.63 GeV is the maximum pT for a charged particle to loop within the 1.1m radius
134  # of the outermost Tracker barrel layer (B=3.8T)
135  maxPtForLooperReconstruction = cms.double(0.7),# 0.7 for pp
136  alwaysUseInvalidHits = False
137 )
138 
139 # MAKING OF TRACK CANDIDATES
140 
141 # Trajectory cleaner in default
142 
144 hiDetachedQuadStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
145  src = 'hiDetachedQuadStepSeeds',
146 
147  numHitsForSeedCleaner = cms.int32(50),
148  onlyPixelHitsForSeedCleaner = cms.bool(True),
149  TrajectoryBuilderPSet = dict(refToPSet_ = 'hiDetachedQuadStepTrajectoryBuilder'),
150  TrajectoryBuilder = 'hiDetachedQuadStepTrajectoryBuilder',
151  clustersToSkip = cms.InputTag('hiDetachedQuadStepClusters'),
152  doSeedingRegionRebuilding = True,
153  useHitsSplitting = True
154 )
155 
156 
157 # TRACK FITTING
159 hiDetachedQuadStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
160  src = 'hiDetachedQuadStepTrackCandidates',
161  AlgorithmName = 'detachedQuadStep',
162  Fitter='FlexibleKFFittingSmoother'
163 )
164 
165 # Final selection
167 hiDetachedQuadStepSelector = RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiMultiTrackSelector.clone(
168  src = 'hiDetachedQuadStepTracks',
169  useAnyMVA = True,
170  GBRForestLabel = 'HIMVASelectorIter10',#FIXME MVA for new iteration
171  GBRForestVars = ['chi2perdofperlayer', 'nhits', 'nlayers', 'eta'],
172  trackSelectors= cms.VPSet(
173  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
174  name = 'hiDetachedQuadStepLoose',
175  applyAdaptedPVCuts = False,
176  useMVA = False,
177  ), #end of pset
178  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
179  name = 'hiDetachedQuadStepTight',
180  preFilterName = 'hiDetachedQuadStepLoose',
181  applyAdaptedPVCuts = True,
182  useMVA = True,
183  minMVA = -0.2
184  ),
185  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
186  name = 'hiDetachedQuadStep',
187  preFilterName = 'hiDetachedQuadStepTight',
188  applyAdaptedPVCuts = True,
189  useMVA = True,
190  minMVA = -0.09
191  ),
192  ) #end of vpset
193 ) #end of clone
194 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
195 trackingPhase1.toModify(hiDetachedQuadStepSelector,
196  useAnyMVA = False,
197  trackSelectors= cms.VPSet(
198  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
199  name = 'hiDetachedQuadStepLoose',
200  applyAdaptedPVCuts = False,
201  useMVA = False,
202  ), #end of pset
203  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
204  name = 'hiDetachedQuadStepTight',
205  preFilterName = 'hiDetachedQuadStepLoose',
206  applyAdaptedPVCuts = False,
207  useMVA = False,
208  minMVA = -0.2
209  ),
210  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
211  name = 'hiDetachedQuadStep',
212  preFilterName = 'hiDetachedQuadStepTight',
213  applyAdaptedPVCuts = False,
214  useMVA = False,
215  minMVA = -0.09
216  ),
217  ) #end of vpset
218 )
219 
221 hiDetachedQuadStepQual = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
222  TrackProducers = ['hiDetachedQuadStepTracks'],
223  hasSelector = [1],
224  selectedTrackQuals = ["hiDetachedQuadStepSelector:hiDetachedQuadStep"],
225  copyExtras = True,
226  makeReKeyedSeeds = cms.untracked.bool(False),
227 )
228 
229 
230 hiDetachedQuadStepTask = cms.Task(hiDetachedQuadStepClusters,
231  hiDetachedQuadStepSeedLayers,
232  hiDetachedQuadStepTrackingRegions,
233  hiDetachedQuadStepTracksHitDoubletsCA,
234  hiDetachedQuadStepTracksHitQuadrupletsCA,
235  pixelFitterByHelixProjections,
236  hiDetachedQuadStepPixelTracksFilter,
237  hiDetachedQuadStepPixelTracks,
238  hiDetachedQuadStepSeeds,
239  hiDetachedQuadStepTrackCandidates,
240  hiDetachedQuadStepTracks,
241  hiDetachedQuadStepSelector,
242  hiDetachedQuadStepQual)
243 hiDetachedQuadStep = cms.Sequence(hiDetachedQuadStepTask)
244 
TrajectoryFilter_cff
GroupedCkfTrajectoryBuilder_cfi
hiMultiTrackSelector_cfi
ClusterShapeHitFilterESProducer_cfi
DetachedQuadStep_cff
HITrackingRegionProducer_cfi
pp iterative tracking modified for hiOffline reco (the vertex is the one reconstructed in HI) 3rd ste...
trackListMerger_cfi
TrackProducer_cfi
globalTrackingRegionWithVertices_cfi
pixelFitterByHelixProjections_cfi
trackCleaner_cfi
HIPixelTrackFilter_cff
CkfTrackCandidates_cfi
Chi2MeasurementEstimator_cfi