CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 
87 import RecoPixelVertexing.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 RecoPixelVertexing.PixelLowPtUtilities.TrackSeeds_cfi
103 hiDetachedQuadStepSeeds = RecoPixelVertexing.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  MeasurementTrackerName = '',
127  trajectoryFilter = dict(refToPSet_ = 'hiDetachedQuadStepTrajectoryFilter'),
128  maxCand = 4,#4 for pp
129  estimator = 'hiDetachedQuadStepChi2Est',
130  maxDPhiForLooperReconstruction = cms.double(2.0),#2.0 for pp
131  # 0.63 GeV is the maximum pT for a charged particle to loop within the 1.1m radius
132  # of the outermost Tracker barrel layer (B=3.8T)
133  maxPtForLooperReconstruction = cms.double(0.7),# 0.7 for pp
134  alwaysUseInvalidHits = False
135 )
136 
137 # MAKING OF TRACK CANDIDATES
138 
139 # Trajectory cleaner in default
140 
142 hiDetachedQuadStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
143  src = 'hiDetachedQuadStepSeeds',
144  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
145  numHitsForSeedCleaner = cms.int32(50),
146  onlyPixelHitsForSeedCleaner = cms.bool(True),
147  TrajectoryBuilderPSet = dict(refToPSet_ = 'hiDetachedQuadStepTrajectoryBuilder'),
148  TrajectoryBuilder = 'hiDetachedQuadStepTrajectoryBuilder',
149  clustersToSkip = cms.InputTag('hiDetachedQuadStepClusters'),
150  doSeedingRegionRebuilding = True,
151  useHitsSplitting = True
152 )
153 
154 
155 # TRACK FITTING
157 hiDetachedQuadStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
158  src = 'hiDetachedQuadStepTrackCandidates',
159  AlgorithmName = 'detachedQuadStep',
160  Fitter='FlexibleKFFittingSmoother'
161 )
162 
163 # Final selection
165 hiDetachedQuadStepSelector = RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiMultiTrackSelector.clone(
166  src = 'hiDetachedQuadStepTracks',
167  useAnyMVA = True,
168  GBRForestLabel = 'HIMVASelectorIter10',#FIXME MVA for new iteration
169  GBRForestVars = ['chi2perdofperlayer', 'nhits', 'nlayers', 'eta'],
170  trackSelectors= cms.VPSet(
171  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
172  name = 'hiDetachedQuadStepLoose',
173  applyAdaptedPVCuts = False,
174  useMVA = False,
175  ), #end of pset
176  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
177  name = 'hiDetachedQuadStepTight',
178  preFilterName = 'hiDetachedQuadStepLoose',
179  applyAdaptedPVCuts = True,
180  useMVA = True,
181  minMVA = -0.2
182  ),
183  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
184  name = 'hiDetachedQuadStep',
185  preFilterName = 'hiDetachedQuadStepTight',
186  applyAdaptedPVCuts = True,
187  useMVA = True,
188  minMVA = -0.09
189  ),
190  ) #end of vpset
191 ) #end of clone
192 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
193 trackingPhase1.toModify(hiDetachedQuadStepSelector,
194  useAnyMVA = False,
195  trackSelectors= cms.VPSet(
196  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
197  name = 'hiDetachedQuadStepLoose',
198  applyAdaptedPVCuts = False,
199  useMVA = False,
200  ), #end of pset
201  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
202  name = 'hiDetachedQuadStepTight',
203  preFilterName = 'hiDetachedQuadStepLoose',
204  applyAdaptedPVCuts = False,
205  useMVA = False,
206  minMVA = -0.2
207  ),
208  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
209  name = 'hiDetachedQuadStep',
210  preFilterName = 'hiDetachedQuadStepTight',
211  applyAdaptedPVCuts = False,
212  useMVA = False,
213  minMVA = -0.09
214  ),
215  ) #end of vpset
216 )
217 
219 hiDetachedQuadStepQual = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
220  TrackProducers = ['hiDetachedQuadStepTracks'],
221  hasSelector = [1],
222  selectedTrackQuals = ["hiDetachedQuadStepSelector:hiDetachedQuadStep"],
223  copyExtras = True,
224  makeReKeyedSeeds = cms.untracked.bool(False),
225 )
226 
227 
228 hiDetachedQuadStepTask = cms.Task(hiDetachedQuadStepClusters,
229  hiDetachedQuadStepSeedLayers,
230  hiDetachedQuadStepTrackingRegions,
231  hiDetachedQuadStepTracksHitDoubletsCA,
232  hiDetachedQuadStepTracksHitQuadrupletsCA,
233  pixelFitterByHelixProjections,
234  hiDetachedQuadStepPixelTracksFilter,
235  hiDetachedQuadStepPixelTracks,
236  hiDetachedQuadStepSeeds,
237  hiDetachedQuadStepTrackCandidates,
238  hiDetachedQuadStepTracks,
239  hiDetachedQuadStepSelector,
240  hiDetachedQuadStepQual)
241 hiDetachedQuadStep = cms.Sequence(hiDetachedQuadStepTask)
242 
pp iterative tracking modified for hiOffline reco (the vertex is the one reconstructed in HI) 3rd ste...