CMS 3D CMS Logo

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