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