CMS 3D CMS Logo

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