CMS 3D CMS Logo

hiLowPtQuadStep_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 hiLowPtQuadStepClusters = 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 # SEEDING LAYERS
25 # Using 4 layers layerlist
26 hiLowPtQuadStepSeedLayers = hiPixelLayerQuadruplets.clone(
27  BPix = dict(skipClusters = cms.InputTag('hiLowPtQuadStepClusters')),
28  FPix = dict(skipClusters = cms.InputTag('hiLowPtQuadStepClusters'))
29 )
30 
31 # SEEDS
32 from RecoTracker.TkTrackingRegions.globalTrackingRegionWithVertices_cfi import globalTrackingRegionWithVertices as _globalTrackingRegionWithVertices
33 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi import hitPairEDProducer as _hitPairEDProducer
34 from RecoPixelVertexing.PixelTriplets.pixelTripletHLTEDProducer_cfi import pixelTripletHLTEDProducer as _pixelTripletHLTEDProducer
40 
41 hiLowPtQuadStepTrackingRegions = _globalTrackingRegionWithVertices.clone(RegionPSet=dict(
42  precise = True,
43  useMultipleScattering = False,
44  useFakeVertices = False,
45  beamSpot = "offlineBeamSpot",
46  useFixedError = True,
47  nSigmaZ = 4.0,
48  sigmaZVertex = 4.0,
49  fixedError = 0.5,
50  VertexCollection = "hiSelectedPixelVertex",
51  ptMin = 0.3,#0.2 for pp
52  useFoundVertices = True,
53  originRadius = 0.02 #0.02 for pp
54 ))
55 hiLowPtQuadStepTracksHitDoubletsCA = _hitPairEDProducer.clone(
56  clusterCheck = "",
57  seedingLayers = "hiLowPtQuadStepSeedLayers",
58  trackingRegions = "hiLowPtQuadStepTrackingRegions",
59  maxElement = 50000000,
60  produceIntermediateHitDoublets = True,
61  layerPairs = [0,1,2]
62 )
63 
64 import RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi
65 from RecoPixelVertexing.PixelTriplets.caHitQuadrupletEDProducer_cfi import caHitQuadrupletEDProducer as _caHitQuadrupletEDProducer
66 hiLowPtQuadStepTracksHitQuadrupletsCA = _caHitQuadrupletEDProducer.clone(
67  doublets = "hiLowPtQuadStepTracksHitDoubletsCA",
68  extraHitRPhitolerance = 0.0,
69  SeedComparitorPSet = RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi.LowPtClusterShapeSeedComparitor.clone(),
70  maxChi2 = dict(
71  pt1 = 0.7, pt2 = 2,
72  value1 = 1000, value2 = 150,
73  ),
74  useBendingCorrection = True,
75  fitFastCircle = True,
76  fitFastCircleChi2Cut = True,
77  CAThetaCut = 0.0017,
78  CAPhiCut = 0.3,
79 )
80 
81 
82 hiLowPtQuadStepPixelTracksFilter = hiFilter.clone(
83  nSigmaTipMaxTolerance = 0,
84  lipMax = 1.0,
85  tipMax = 1.0,
86  ptMin = 0.4, #seeding region is 0.3
87 )
88 hiLowPtQuadStepPixelTracks = cms.EDProducer("PixelTrackProducer",
89 
90  passLabel = cms.string('Pixel detached tracks with vertex constraint'),
91 
92  # Ordered Hits
93  SeedingHitSets = cms.InputTag("hiLowPtQuadStepTracksHitQuadrupletsCA"),
94 
95  # Fitter
96  Fitter = cms.InputTag("pixelFitterByHelixProjections"),
97 
98  # Filter
99  Filter = cms.InputTag("hiLowPtQuadStepPixelTracksFilter"),
100 
101  # Cleaner
102  Cleaner = cms.string("trackCleaner")
103 )
104 
105 
106 import RecoPixelVertexing.PixelLowPtUtilities.TrackSeeds_cfi
107 hiLowPtQuadStepSeeds = RecoPixelVertexing.PixelLowPtUtilities.TrackSeeds_cfi.pixelTrackSeeds.clone(
108  InputCollection = 'hiLowPtQuadStepPixelTracks'
109 )
110 
111 # QUALITY CUTS DURING TRACK BUILDING
113 hiLowPtQuadStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
114  #maxLostHits = 1,
115  minimumNumberOfHits = 3,#3 for pp
116  minPt = 0.075,# 0.075 for pp
117  #constantValueForLostHitsFractionFilter = 0.701
118 )
119 
121 hiLowPtQuadStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi.Chi2MeasurementEstimator.clone(
122  ComponentName = 'hiLowPtQuadStepChi2Est',
123  nSigma = 3.0,
124  MaxChi2 = 9.0
125 )
126 
127 
128 # TRACK BUILDING
130 hiLowPtQuadStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
131  MeasurementTrackerName = '',
132  trajectoryFilter = dict(refToPSet_ = 'hiLowPtQuadStepTrajectoryFilter'),
133  maxCand = 4,#4 for pp
134  estimator = 'hiLowPtQuadStepChi2Est',
135  maxDPhiForLooperReconstruction = cms.double(2.0),#2.0 for pp
136  # 0.63 GeV is the maximum pT for a charged particle to loop within the 1.1m radius
137  # of the outermost Tracker barrel layer (B=3.8T)
138  maxPtForLooperReconstruction = cms.double(0.7),# 0.7 for pp
139  alwaysUseInvalidHits = False
140 )
141 
142 # MAKING OF TRACK CANDIDATES
143 
144 # Trajectory cleaner in default
145 
147 hiLowPtQuadStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
148  src = 'hiLowPtQuadStepSeeds',
149 
150  numHitsForSeedCleaner = cms.int32(50),
151  onlyPixelHitsForSeedCleaner = cms.bool(True),
152  TrajectoryBuilderPSet = dict(refToPSet_ = 'hiLowPtQuadStepTrajectoryBuilder'),
153  TrajectoryBuilder = 'hiLowPtQuadStepTrajectoryBuilder',
154  clustersToSkip = cms.InputTag('hiLowPtQuadStepClusters'),
155  doSeedingRegionRebuilding = True,
156  useHitsSplitting = True
157 )
158 
159 
160 # TRACK FITTING
162 hiLowPtQuadStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
163  src = 'hiLowPtQuadStepTrackCandidates',
164  AlgorithmName = 'lowPtQuadStep',
165  Fitter = 'FlexibleKFFittingSmoother'
166 )
167 
168 # Final selection
170 hiLowPtQuadStepSelector = RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiMultiTrackSelector.clone(
171  src ='hiLowPtQuadStepTracks',
172  useAnyMVA = True,
173  GBRForestLabel = 'HIMVASelectorIter8',#FIXME MVA for new iteration
174  GBRForestVars = ['chi2perdofperlayer', 'nhits', 'nlayers', 'eta'],
175  trackSelectors = cms.VPSet(
176  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
177  name = 'hiLowPtQuadStepLoose',
178  applyAdaptedPVCuts = False,
179  useMVA = False,
180  ), #end of pset
181  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
182  name = 'hiLowPtQuadStepTight',
183  preFilterName = 'hiLowPtQuadStepLoose',
184  applyAdaptedPVCuts = False,
185  useMVA = True,
186  minMVA = -0.2
187  ),
188  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
189  name = 'hiLowPtQuadStep',
190  preFilterName = 'hiLowPtQuadStepTight',
191  applyAdaptedPVCuts = False,
192  useMVA = True,
193  minMVA = -0.09
194  ),
195  ) #end of vpset
196 ) #end of clone
197 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
198 trackingPhase1.toModify(hiLowPtQuadStepSelector, useAnyMVA = False)
199 trackingPhase1.toModify(hiLowPtQuadStepSelector, trackSelectors = cms.VPSet(
200  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
201  name = 'hiLowPtQuadStepLoose',
202  applyAdaptedPVCuts = False,
203  useMVA = False,
204  ), #end of pset
205  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
206  name = 'hiLowPtQuadStepTight',
207  preFilterName = 'hiLowPtQuadStepLoose',
208  applyAdaptedPVCuts = False,
209  useMVA = False,
210  minMVA = -0.2
211  ),
212  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
213  name = 'hiLowPtQuadStep',
214  preFilterName = 'hiLowPtQuadStepTight',
215  applyAdaptedPVCuts = False,
216  useMVA = False,
217  minMVA = -0.09
218  ),
219  ) #end of vpset
220 )
221 
223 hiLowPtQuadStepQual = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
224  TrackProducers = ['hiLowPtQuadStepTracks'],
225  hasSelector = [1],
226  selectedTrackQuals = ["hiLowPtQuadStepSelector:hiLowPtQuadStep"],
227  copyExtras = True,
228  makeReKeyedSeeds = cms.untracked.bool(False),
229 )
230 
231 
232 hiLowPtQuadStepTask = cms.Task(hiLowPtQuadStepClusters,
233  hiLowPtQuadStepSeedLayers,
234  hiLowPtQuadStepTrackingRegions,
235  hiLowPtQuadStepTracksHitDoubletsCA,
236  hiLowPtQuadStepTracksHitQuadrupletsCA,
237  pixelFitterByHelixProjections,
238  hiLowPtQuadStepPixelTracksFilter,
239  hiLowPtQuadStepPixelTracks,
240  hiLowPtQuadStepSeeds,
241  hiLowPtQuadStepTrackCandidates,
242  hiLowPtQuadStepTracks,
243  hiLowPtQuadStepSelector,
244  hiLowPtQuadStepQual)
245 hiLowPtQuadStep = cms.Sequence(hiLowPtQuadStepTask)
246 
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
TrackProducer_cfi
globalTrackingRegionWithVertices_cfi
pixelFitterByHelixProjections_cfi
LowPtQuadStep_cff
trackCleaner_cfi
HIPixelTrackFilter_cff
CkfTrackCandidates_cfi
Chi2MeasurementEstimator_cfi