CMS 3D CMS Logo

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