CMS 3D CMS Logo

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