CMS 3D CMS Logo

hiHighPtTripletStep_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 hiHighPtTripletStepClusters = cms.EDProducer("HITrackClusterRemover",
7  clusterLessSolution = cms.bool(True),
8  trajectories = cms.InputTag("hiLowPtQuadStepTracks"),
9  overrideTrkQuals = cms.InputTag("hiLowPtQuadStepSelector","hiLowPtQuadStep"),
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 3 layers layerlist
26 hiHighPtTripletStepSeedLayers = highPtTripletStepSeedLayers.clone(
27  BPix = dict(skipClusters = 'hiHighPtTripletStepClusters'),
28  FPix = dict(skipClusters = 'hiHighPtTripletStepClusters')
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 hiHighPtTripletStepTrackingRegions = _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.8,#0.6 for pp
52  useFoundVertices = True,
53  originRadius = 0.02 #0.02 for pp
54 ))
55 hiHighPtTripletStepTracksHitDoubletsCA = _hitPairEDProducer.clone(
56  clusterCheck = "",
57  seedingLayers = "hiHighPtTripletStepSeedLayers",
58  trackingRegions = "hiHighPtTripletStepTrackingRegions",
59  maxElement = 50000000,
60  produceIntermediateHitDoublets = True,
61  layerPairs = [0,1]
62 )
63 
64 from RecoPixelVertexing.PixelTriplets.caHitTripletEDProducer_cfi import caHitTripletEDProducer as _caHitTripletEDProducer
65 hiHighPtTripletStepTracksHitTripletsCA = _caHitTripletEDProducer.clone(
66  doublets = "hiHighPtTripletStepTracksHitDoubletsCA",
67  extraHitRPhitolerance = 0.0,
68  SeedComparitorPSet = RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi.LowPtClusterShapeSeedComparitor.clone(),
69  maxChi2 = dict(
70  pt1 = 0.8, pt2 = 8,
71  value1 = 100, value2 = 6,
72  ),
73  useBendingCorrection = True,
74  CAThetaCut = 0.004,
75  CAPhiCut = 0.07,
76  CAHardPtCut = 0.3,
77 )
78 
79 hiHighPtTripletStepPixelTracksFilter = hiFilter.clone(
80  nSigmaTipMaxTolerance = 0,
81  lipMax = 1.0,
82  tipMax = 1.0,
83  ptMin = 1.0, #seeding region is 0.6
84 )
85 hiHighPtTripletStepPixelTracks = cms.EDProducer("PixelTrackProducer",
86 
87  passLabel = cms.string('Pixel detached tracks with vertex constraint'),
88 
89  # Ordered Hits
90  SeedingHitSets = cms.InputTag("hiHighPtTripletStepTracksHitTripletsCA"),
91 
92  # Fitter
93  Fitter = cms.InputTag("pixelFitterByHelixProjections"),
94 
95  # Filter
96  Filter = cms.InputTag("hiHighPtTripletStepPixelTracksFilter"),
97 
98  # Cleaner
99  Cleaner = cms.string("trackCleaner")
100 )
101 
102 
103 import RecoPixelVertexing.PixelLowPtUtilities.TrackSeeds_cfi
104 hiHighPtTripletStepSeeds = RecoPixelVertexing.PixelLowPtUtilities.TrackSeeds_cfi.pixelTrackSeeds.clone(
105  InputCollection = 'hiHighPtTripletStepPixelTracks'
106 )
107 
108 # QUALITY CUTS DURING TRACK BUILDING
110 hiHighPtTripletStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
111  #maxLostHits = 1,
112  minimumNumberOfHits = 3,#3 for pp
113  minPt = 0.2,# 0.2 for pp
114  #constantValueForLostHitsFractionFilter = 0.701
115 )
116 
118 hiHighPtTripletStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi.Chi2MeasurementEstimator.clone(
119  ComponentName = 'hiHighPtTripletStepChi2Est',
120  nSigma = 3.0,
121  MaxChi2 = 9.0# 30 for pp
122 )
123 
124 
125 # TRACK BUILDING
127 hiHighPtTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
128  MeasurementTrackerName = '',
129  trajectoryFilter = dict(refToPSet_ = 'hiHighPtTripletStepTrajectoryFilter'),
130  maxCand = 3,#3 for pp
131  estimator = 'hiHighPtTripletStepChi2Est',
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 hiHighPtTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
145  src = 'hiHighPtTripletStepSeeds',
146 
147  numHitsForSeedCleaner = cms.int32(50),
148  onlyPixelHitsForSeedCleaner = cms.bool(True),
149  TrajectoryBuilderPSet = dict(refToPSet_ = 'hiHighPtTripletStepTrajectoryBuilder'),
150  TrajectoryBuilder = 'hiHighPtTripletStepTrajectoryBuilder',
151  clustersToSkip = cms.InputTag('hiHighPtTripletStepClusters'),
152  doSeedingRegionRebuilding = True,
153  useHitsSplitting = True
154 )
155 
156 
157 # TRACK FITTING
159 hiHighPtTripletStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
160  src = 'hiHighPtTripletStepTrackCandidates',
161  AlgorithmName = 'highPtTripletStep',
162  Fitter = 'FlexibleKFFittingSmoother'
163 )
164 
165 # Final selection
167 hiHighPtTripletStepSelector = RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiMultiTrackSelector.clone(
168  src = 'hiHighPtTripletStepTracks',
169  useAnyMVA = True,
170  GBRForestLabel = 'HIMVASelectorIter9',#FIXME MVA for new iteration
171  GBRForestVars = ['chi2perdofperlayer', 'nhits', 'nlayers', 'eta'],
172  trackSelectors = cms.VPSet(
173  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
174  name = 'hiHighPtTripletStepLoose',
175  applyAdaptedPVCuts = False,
176  useMVA = False,
177  ), #end of pset
178  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
179  name = 'hiHighPtTripletStepTight',
180  preFilterName = 'hiHighPtTripletStepLoose',
181  applyAdaptedPVCuts = False,
182  useMVA = True,
183  minMVA = -0.2
184  ),
185  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
186  name = 'hiHighPtTripletStep',
187  preFilterName = 'hiHighPtTripletStepTight',
188  applyAdaptedPVCuts = False,
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(hiHighPtTripletStepSelector, useAnyMVA = False)
196 trackingPhase1.toModify(hiHighPtTripletStepSelector, trackSelectors= cms.VPSet(
197  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
198  name = 'hiHighPtTripletStepLoose',
199  applyAdaptedPVCuts = False,
200  useMVA = False,
201  ), #end of pset
202  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
203  name = 'hiHighPtTripletStepTight',
204  preFilterName = 'hiHighPtTripletStepLoose',
205  applyAdaptedPVCuts = False,
206  useMVA = False,
207  minMVA = -0.2
208  ),
209  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
210  name = 'hiHighPtTripletStep',
211  preFilterName = 'hiHighPtTripletStepTight',
212  applyAdaptedPVCuts = False,
213  useMVA = False,
214  minMVA = -0.09
215  ),
216  ) #end of vpset
217 )
218 
220 hiHighPtTripletStepQual = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
221  TrackProducers = ['hiHighPtTripletStepTracks'],
222  hasSelector = [1],
223  selectedTrackQuals = ["hiHighPtTripletStepSelector:hiHighPtTripletStep"],
224  copyExtras = True,
225  makeReKeyedSeeds = cms.untracked.bool(False),
226 )
227 
228 
229 hiHighPtTripletStepTask = cms.Task(hiHighPtTripletStepClusters,
230  hiHighPtTripletStepSeedLayers,
231  hiHighPtTripletStepTrackingRegions,
232  hiHighPtTripletStepTracksHitDoubletsCA,
233  hiHighPtTripletStepTracksHitTripletsCA,
234  pixelFitterByHelixProjections,
235  hiHighPtTripletStepPixelTracksFilter,
236  hiHighPtTripletStepPixelTracks,
237  hiHighPtTripletStepSeeds,
238  hiHighPtTripletStepTrackCandidates,
239  hiHighPtTripletStepTracks,
240  hiHighPtTripletStepSelector,
241  hiHighPtTripletStepQual)
242 hiHighPtTripletStep = cms.Sequence(hiHighPtTripletStepTask)
243 
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
HighPtTripletStep_cff
trackCleaner_cfi
HIPixelTrackFilter_cff
CkfTrackCandidates_cfi
Chi2MeasurementEstimator_cfi