CMS 3D CMS Logo

hiDetachedTripletStep_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 hiDetachedTripletStepClusters = cms.EDProducer("HITrackClusterRemover",
7  clusterLessSolution = cms.bool(True),
8  trajectories = cms.InputTag("hiGlobalPrimTracks"),
9  overrideTrkQuals = cms.InputTag('hiInitialStepSelector','hiInitialStep'),
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 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
26 trackingPhase1.toModify(hiDetachedTripletStepClusters,
27  trajectories = cms.InputTag("hiDetachedQuadStepTracks"),
28  overrideTrkQuals = cms.InputTag("hiDetachedQuadStepSelector","hiDetachedQuadStep"),
29 )
30 
31 
32 # SEEDING LAYERS
34 hiDetachedTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone()
35 hiDetachedTripletStepSeedLayers.BPix.skipClusters = cms.InputTag('hiDetachedTripletStepClusters')
36 hiDetachedTripletStepSeedLayers.FPix.skipClusters = cms.InputTag('hiDetachedTripletStepClusters')
37 
38 # SEEDS
39 from RecoTracker.TkTrackingRegions.globalTrackingRegionWithVertices_cfi import globalTrackingRegionWithVertices as _globalTrackingRegionWithVertices
40 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi import hitPairEDProducer as _hitPairEDProducer
41 from RecoPixelVertexing.PixelTriplets.pixelTripletHLTEDProducer_cfi import pixelTripletHLTEDProducer as _pixelTripletHLTEDProducer
47 
48 hiDetachedTripletStepTrackingRegions = _globalTrackingRegionWithVertices.clone(RegionPSet=dict(
49  precise = True,
50  useMultipleScattering = False,
51  useFakeVertices = False,
52  beamSpot = "offlineBeamSpot",
53  useFixedError = True,
54  nSigmaZ = 4.0,
55  sigmaZVertex = 4.0,
56  fixedError = 0.5,
57  VertexCollection = "hiSelectedPixelVertex",
58  ptMin = 0.9,
59  useFoundVertices = True,
60  originRadius = 0.5
61 ))
62 hiDetachedTripletStepTracksHitDoublets = _hitPairEDProducer.clone(
63  clusterCheck = "",
64  seedingLayers = "hiDetachedTripletStepSeedLayers",
65  trackingRegions = "hiDetachedTripletStepTrackingRegions",
66  maxElement = 50000000,
67  produceIntermediateHitDoublets = True,
68 )
70 hiDetachedTripletStepTracksHitTriplets = _pixelTripletHLTEDProducer.clone(
71  doublets = "hiDetachedTripletStepTracksHitDoublets",
72  extraHitRPhitolerance = 0.0,
73  extraHitRZtolerance = 0.0,
74  maxElement = 1000000,
75  SeedComparitorPSet = RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi.LowPtClusterShapeSeedComparitor.clone(),
76  produceSeedingHitSets = True,
77 )
78 
79 from RecoPixelVertexing.PixelTriplets.caHitTripletEDProducer_cfi import caHitTripletEDProducer as _caHitTripletEDProducer
80 hiDetachedTripletStepTracksHitDoubletsCA = hiDetachedTripletStepTracksHitDoublets.clone()
81 hiDetachedTripletStepTracksHitDoubletsCA.layerPairs = [0,1]
82 
83 hiDetachedTripletStepTracksHitTripletsCA = _caHitTripletEDProducer.clone(
84  doublets = "hiDetachedTripletStepTracksHitDoubletsCA",
85  extraHitRPhitolerance = hiDetachedTripletStepTracksHitTriplets.extraHitRPhitolerance,
86  maxChi2 = dict(
87  pt1 = 0.8, pt2 = 2,
88  value1 = 300 , value2 = 10,
89  ),
90  useBendingCorrection = True,
91  CAThetaCut = 0.001,
92  CAPhiCut = 0,
93  CAHardPtCut = 0.2,
94 )
95 
96 hiDetachedTripletStepPixelTracksFilter = hiFilter.clone(
97  nSigmaTipMaxTolerance = 0,
98  lipMax = 1.0,
99  tipMax = 1.0,
100  ptMin = 0.95,
101 )
102 hiDetachedTripletStepPixelTracks = cms.EDProducer("PixelTrackProducer",
103 
104  passLabel = cms.string('Pixel detached tracks with vertex constraint'),
105 
106  # Ordered Hits
107  SeedingHitSets = cms.InputTag("hiDetachedTripletStepTracksHitTriplets"),
108 
109  # Fitter
110  Fitter = cms.InputTag("pixelFitterByHelixProjections"),
111 
112  # Filter
113  Filter = cms.InputTag("hiDetachedTripletStepPixelTracksFilter"),
114 
115  # Cleaner
116  Cleaner = cms.string("trackCleaner")
117 )
118 trackingPhase1.toModify(hiDetachedTripletStepPixelTracks,
119  SeedingHitSets = cms.InputTag("hiDetachedTripletStepTracksHitTripletsCA")
120 )
121 
122 
123 import RecoPixelVertexing.PixelLowPtUtilities.TrackSeeds_cfi
124 hiDetachedTripletStepSeeds = RecoPixelVertexing.PixelLowPtUtilities.TrackSeeds_cfi.pixelTrackSeeds.clone(
125  InputCollection = 'hiDetachedTripletStepPixelTracks'
126  )
127 
128 # QUALITY CUTS DURING TRACK BUILDING
130 hiDetachedTripletStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
131  maxLostHits = 1,
132  minimumNumberOfHits = 6,
133  minPt = cms.double(0.3),
134  constantValueForLostHitsFractionFilter = cms.double(0.701)
135  )
136 
138 hiDetachedTripletStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi.Chi2MeasurementEstimator.clone(
139  ComponentName = cms.string('hiDetachedTripletStepChi2Est'),
140  nSigma = cms.double(3.0),
141  MaxChi2 = cms.double(9.0)
142  )
143 
144 
145 # TRACK BUILDING
147 hiDetachedTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
148  MeasurementTrackerName = '',
149  trajectoryFilter = cms.PSet(refToPSet_ = cms.string('hiDetachedTripletStepTrajectoryFilter')),
150  maxCand = 2,
151  estimator = cms.string('hiDetachedTripletStepChi2Est'),
152  maxDPhiForLooperReconstruction = cms.double(0),
153  maxPtForLooperReconstruction = cms.double(0),
154  alwaysUseInvalidHits = cms.bool(False)
155  )
156 
157 # MAKING OF TRACK CANDIDATES
159 hiDetachedTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
160  src = cms.InputTag('hiDetachedTripletStepSeeds'),
161  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
162  numHitsForSeedCleaner = cms.int32(50),
163  onlyPixelHitsForSeedCleaner = cms.bool(True),
164  TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string('hiDetachedTripletStepTrajectoryBuilder')),
165  TrajectoryBuilder = cms.string('hiDetachedTripletStepTrajectoryBuilder'),
166  clustersToSkip = cms.InputTag('hiDetachedTripletStepClusters'),
167  doSeedingRegionRebuilding = True,
168  useHitsSplitting = True
169  )
170 
171 
172 # TRACK FITTING
174 hiDetachedTripletStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
175  src = 'hiDetachedTripletStepTrackCandidates',
176  AlgorithmName = cms.string('detachedTripletStep'),
177  Fitter=cms.string('FlexibleKFFittingSmoother')
178  )
179 
180 # Final selection
182 hiDetachedTripletStepSelector = RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiMultiTrackSelector.clone(
183  src='hiDetachedTripletStepTracks',
184  useAnyMVA = cms.bool(True),
185  GBRForestLabel = cms.string('HIMVASelectorIter7'),
186  GBRForestVars = cms.vstring(['chi2perdofperlayer', 'nhits', 'nlayers', 'eta']),
187  trackSelectors= cms.VPSet(
188  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
189  name = 'hiDetachedTripletStepLoose',
190  applyAdaptedPVCuts = cms.bool(False),
191  useMVA = cms.bool(False),
192  ), #end of pset
193  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
194  name = 'hiDetachedTripletStepTight',
195  preFilterName = 'hiDetachedTripletStepLoose',
196  applyAdaptedPVCuts = cms.bool(False),
197  useMVA = cms.bool(True),
198  minMVA = cms.double(-0.2)
199  ),
200  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
201  name = 'hiDetachedTripletStep',
202  preFilterName = 'hiDetachedTripletStepTight',
203  applyAdaptedPVCuts = cms.bool(False),
204  useMVA = cms.bool(True),
205  minMVA = cms.double(-0.09)
206  ),
207  ) #end of vpset
208  ) #end of clone
209 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
210 trackingPhase1.toModify(hiDetachedTripletStepSelector, useAnyMVA = cms.bool(False))
211 trackingPhase1.toModify(hiDetachedTripletStepSelector, trackSelectors= cms.VPSet(
212  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
213  name = 'hiDetachedTripletStepLoose',
214  applyAdaptedPVCuts = cms.bool(False),
215  useMVA = cms.bool(False),
216  ), #end of pset
217  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
218  name = 'hiDetachedTripletStepTight',
219  preFilterName = 'hiDetachedTripletStepLoose',
220  applyAdaptedPVCuts = cms.bool(False),
221  useMVA = cms.bool(False),
222  minMVA = cms.double(-0.2)
223  ),
224  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
225  name = 'hiDetachedTripletStep',
226  preFilterName = 'hiDetachedTripletStepTight',
227  applyAdaptedPVCuts = cms.bool(False),
228  useMVA = cms.bool(False),
229  minMVA = cms.double(-0.09)
230  ),
231  ) #end of vpset
232 )
233 
235 hiDetachedTripletStepQual = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
236  TrackProducers=cms.VInputTag(cms.InputTag('hiDetachedTripletStepTracks')),
237  hasSelector=cms.vint32(1),
238  selectedTrackQuals = cms.VInputTag(cms.InputTag("hiDetachedTripletStepSelector","hiDetachedTripletStep")),
239  copyExtras = True,
240  makeReKeyedSeeds = cms.untracked.bool(False),
241  )
242 
243 
244 hiDetachedTripletStep = cms.Sequence(hiDetachedTripletStepClusters*
245  hiDetachedTripletStepSeedLayers*
246  hiDetachedTripletStepTrackingRegions*
247  hiDetachedTripletStepTracksHitDoublets*
248  hiDetachedTripletStepTracksHitTriplets*
249  pixelFitterByHelixProjections*
250  hiDetachedTripletStepPixelTracksFilter*
251  hiDetachedTripletStepPixelTracks*
252  hiDetachedTripletStepSeeds*
253  hiDetachedTripletStepTrackCandidates*
254  hiDetachedTripletStepTracks*
255  hiDetachedTripletStepSelector*
256  hiDetachedTripletStepQual)
257 hiDetachedTripletStep_Phase1 = hiDetachedTripletStep.copy()
258 hiDetachedTripletStep_Phase1.replace(hiDetachedTripletStepTracksHitDoublets, hiDetachedTripletStepTracksHitDoubletsCA)
259 hiDetachedTripletStep_Phase1.replace(hiDetachedTripletStepTracksHitTriplets, hiDetachedTripletStepTracksHitTripletsCA)
260 trackingPhase1.toReplaceWith(hiDetachedTripletStep, hiDetachedTripletStep_Phase1)
261 
COSMIC RUN SETTING.
pp iterative tracking modified for hiOffline reco (the vertex is the one reconstructed in HI) 3rd ste...