CMS 3D CMS Logo

hiLowPtTripletStep_cff.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 
4 # NEW CLUSTERS (remove previously used clusters)
5 hiLowPtTripletStepClusters = cms.EDProducer("HITrackClusterRemover",
6  clusterLessSolution= cms.bool(True),
7  oldClusterRemovalInfo = cms.InputTag("hiDetachedTripletStepClusters"),
8  trajectories = cms.InputTag("hiDetachedTripletStepTracks"),
9  overrideTrkQuals = cms.InputTag("hiDetachedTripletStepSelector","hiDetachedTripletStep"),
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 
25 # SEEDING LAYERS
27 hiLowPtTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone(
28  BPix = dict(skipClusters = cms.InputTag('hiLowPtTripletStepClusters')),
29  FPix = dict(skipClusters = cms.InputTag('hiLowPtTripletStepClusters'))
30 )
31 
32 # SEEDS
33 from RecoTracker.TkTrackingRegions.globalTrackingRegionWithVertices_cfi import globalTrackingRegionWithVertices as _globalTrackingRegionWithVertices
34 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi import hitPairEDProducer as _hitPairEDProducer
35 from RecoPixelVertexing.PixelTriplets.pixelTripletHLTEDProducer_cfi import pixelTripletHLTEDProducer as _pixelTripletHLTEDProducer
37 import RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi
42 
43 hiLowPtTripletStepTrackingRegions = _globalTrackingRegionWithVertices.clone(RegionPSet=dict(
44  precise = True,
45  useMultipleScattering = False,
46  useFakeVertices = False,
47  beamSpot = "offlineBeamSpot",
48  useFixedError = False,
49  nSigmaZ = 4.0,
50  sigmaZVertex = 4.0,
51  fixedError = 0.2,
52  VertexCollection = "hiSelectedPixelVertex",
53  ptMin = 0.4,
54  useFoundVertices = True,
55  originRadius = 0.02
56 ))
57 hiLowPtTripletStepTracksHitDoublets = _hitPairEDProducer.clone(
58  clusterCheck = "",
59  seedingLayers = "hiLowPtTripletStepSeedLayers",
60  trackingRegions = "hiLowPtTripletStepTrackingRegions",
61  maxElement = 50000000,
62  produceIntermediateHitDoublets = True,
63 )
64 import RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi
65 hiLowPtTripletStepTracksHitTriplets = _pixelTripletHLTEDProducer.clone(
66  doublets = "hiLowPtTripletStepTracksHitDoublets",
67  #maxElement = 5000000,
68  SeedComparitorPSet = RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi.LowPtClusterShapeSeedComparitor.clone(),
69  produceSeedingHitSets = True,
70 )
71 
72 from RecoPixelVertexing.PixelTriplets.caHitTripletEDProducer_cfi import caHitTripletEDProducer as _caHitTripletEDProducer
73 hiLowPtTripletStepTracksHitDoubletsCA = hiLowPtTripletStepTracksHitDoublets.clone(
74  layerPairs = [0,1]
75 )
76 hiLowPtTripletStepTracksHitTripletsCA = _caHitTripletEDProducer.clone(
77  doublets = "hiLowPtTripletStepTracksHitDoubletsCA",
78  extraHitRPhitolerance = hiLowPtTripletStepTracksHitTriplets.extraHitRPhitolerance,
79  SeedComparitorPSet = hiLowPtTripletStepTracksHitTriplets.SeedComparitorPSet,
80  maxChi2 = dict(
81  pt1 = 0.8, pt2 = 2,
82  value1 = 70 , value2 = 8,
83  ),
84  useBendingCorrection = True,
85  CAThetaCut = 0.002,
86  CAPhiCut = 0.05,
87 )
88 
89 hiLowPtTripletStepPixelTracksFilter = hiFilter.clone(
90  nSigmaLipMaxTolerance = 4.0,
91  nSigmaTipMaxTolerance = 4.0,
92  lipMax = 0,
93  ptMin = 0.4,
94 )
95 hiLowPtTripletStepPixelTracks = cms.EDProducer("PixelTrackProducer",
96 
97  passLabel = cms.string('Pixel primary tracks with vertex constraint'),
98 
99  # Ordered Hits
100  SeedingHitSets = cms.InputTag("hiLowPtTripletStepTracksHitTriplets"),
101 
102  # Fitter
103  Fitter = cms.InputTag("pixelFitterByHelixProjections"),
104 
105  # Filter
106  Filter = cms.InputTag("hiLowPtTripletStepPixelTracksFilter"),
107 
108  # Cleaner
109  Cleaner = cms.string("trackCleaner")
110 )
111 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
112 trackingPhase1.toModify(hiLowPtTripletStepPixelTracks,
113  SeedingHitSets = cms.InputTag("hiLowPtTripletStepTracksHitTripletsCA")
114 )
115 
116 
117 import RecoPixelVertexing.PixelLowPtUtilities.TrackSeeds_cfi
118 hiLowPtTripletStepSeeds = RecoPixelVertexing.PixelLowPtUtilities.TrackSeeds_cfi.pixelTrackSeeds.clone(
119  InputCollection = 'hiLowPtTripletStepPixelTracks'
120 )
121 
122 
123 # QUALITY CUTS DURING TRACK BUILDING
125 hiLowPtTripletStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
126  maxLostHits = 1,
127  minimumNumberOfHits = 6,
128  minPt = 0.4
129 )
130 
132 hiLowPtTripletStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi.Chi2MeasurementEstimator.clone(
133  ComponentName = 'hiLowPtTripletStepChi2Est',
134  nSigma = 3.0,
135  MaxChi2 = 9.0
136 )
137 
138 # TRACK BUILDING
140 hiLowPtTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
141  MeasurementTrackerName = '',
142  trajectoryFilter = dict(refToPSet_ = 'hiLowPtTripletStepTrajectoryFilter'),
143  maxCand = 3,
144  estimator = 'hiLowPtTripletStepChi2Est',
145  maxDPhiForLooperReconstruction = cms.double(2.0),
146  # 0.63 GeV is the maximum pT for a charged particle to loop within the 1.1m radius
147  # of the outermost Tracker barrel layer (with B=3.8T)
148  maxPtForLooperReconstruction = cms.double(0.7)
149 )
150 
151 # MAKING OF TRACK CANDIDATES
153 hiLowPtTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
154  src = 'hiLowPtTripletStepSeeds',
155 
156  numHitsForSeedCleaner = cms.int32(50),
157  onlyPixelHitsForSeedCleaner = cms.bool(True),
158  TrajectoryBuilderPSet = dict(refToPSet_ = 'hiLowPtTripletStepTrajectoryBuilder'),
159  clustersToSkip = cms.InputTag('hiLowPtTripletStepClusters'),
160  doSeedingRegionRebuilding = True,
161  useHitsSplitting = True
162 )
163 
164 # TRACK FITTING
166 hiLowPtTripletStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
167  src = 'hiLowPtTripletStepTrackCandidates',
168  AlgorithmName = 'lowPtTripletStep',
169  Fitter='FlexibleKFFittingSmoother'
170 )
171 
172 
173 
174 # Final selection
176 hiLowPtTripletStepSelector = RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiMultiTrackSelector.clone(
177  src = 'hiLowPtTripletStepTracks',
178  useAnyMVA = True,
179  GBRForestLabel = 'HIMVASelectorIter5',
180  GBRForestVars = ['chi2perdofperlayer', 'dxyperdxyerror', 'dzperdzerror', 'relpterr', 'nhits', 'nlayers', 'eta'],
181  trackSelectors= cms.VPSet(
182  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
183  name = 'hiLowPtTripletStepLoose',
184  useMVA = False
185  ), #end of pset
186  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
187  name = 'hiLowPtTripletStepTight',
188  preFilterName = 'hiLowPtTripletStepLoose',
189  useMVA = True,
190  minMVA = -0.58
191  ),
192  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
193  name = 'hiLowPtTripletStep',
194  preFilterName = 'hiLowPtTripletStepTight',
195  useMVA = True,
196  minMVA = 0.35
197  ),
198  ) #end of vpset
199 ) #end of clone
200 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
201 trackingPhase1.toModify(hiLowPtTripletStepSelector, useAnyMVA = False)
202 trackingPhase1.toModify(hiLowPtTripletStepSelector, trackSelectors= cms.VPSet(
203  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
204  name = 'hiLowPtTripletStepLoose',
205  useMVA = False
206  ), #end of pset
207  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
208  name = 'hiLowPtTripletStepTight',
209  preFilterName = 'hiLowPtTripletStepLoose',
210  useMVA = False,
211  minMVA = -0.58
212  ),
213  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
214  name = 'hiLowPtTripletStep',
215  preFilterName = 'hiLowPtTripletStepTight',
216  useMVA = False,
217  minMVA = 0.35
218  ),
219  ) #end of vpset
220 )
221 
222 
224 hiLowPtTripletStepQual = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
225  TrackProducers = ['hiLowPtTripletStepTracks'],
226  hasSelector = [1],
227  selectedTrackQuals = ["hiLowPtTripletStepSelector:hiLowPtTripletStep"],
228  copyExtras = True,
229  makeReKeyedSeeds = cms.untracked.bool(False),
230  #writeOnlyTrkQuals = True
231 )
232 
233 # Final sequence
234 
235 hiLowPtTripletStepTask = cms.Task(hiLowPtTripletStepClusters,
236  hiLowPtTripletStepSeedLayers,
237  hiLowPtTripletStepTrackingRegions,
238  hiLowPtTripletStepTracksHitDoublets,
239  hiLowPtTripletStepTracksHitTriplets,
240  pixelFitterByHelixProjections,
241  hiLowPtTripletStepPixelTracksFilter,
242  hiLowPtTripletStepPixelTracks,hiLowPtTripletStepSeeds,
243  hiLowPtTripletStepTrackCandidates,
244  hiLowPtTripletStepTracks,
245  hiLowPtTripletStepSelector,
246  hiLowPtTripletStepQual
247  )
248 hiLowPtTripletStep = cms.Sequence(hiLowPtTripletStepTask)
249 hiLowPtTripletStepTask_Phase1 = hiLowPtTripletStepTask.copy()
250 hiLowPtTripletStepTask_Phase1.replace(hiLowPtTripletStepTracksHitDoublets, hiLowPtTripletStepTracksHitDoubletsCA)
251 hiLowPtTripletStepTask_Phase1.replace(hiLowPtTripletStepTracksHitTriplets, hiLowPtTripletStepTracksHitTripletsCA)
252 trackingPhase1.toReplaceWith(hiLowPtTripletStepTask, hiLowPtTripletStepTask_Phase1)
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
PixelLayerTriplets_cfi
TRIGGER SELECTION #####.
TrackProducer_cfi
globalTrackingRegionWithVertices_cfi
pixelFitterByHelixProjections_cfi
trackCleaner_cfi
HIPixelTrackFilter_cff
CkfTrackCandidates_cfi
Chi2MeasurementEstimator_cfi