CMS 3D CMS Logo

hiLowPtTripletStep_cff.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 
4 # NEW CLUSTERS (remove previously used clusters)
5 hiLowPtTripletStepClusters = cms.EDProducer("HITrackClusterRemover",
6  clusterLessSolution= cms.bool(True),
7  oldClusterRemovalInfo = cms.InputTag("hiDetachedTripletStepClusters"),
8  trajectories = cms.InputTag("hiDetachedTripletStepTracks"),
9  overrideTrkQuals = cms.InputTag("hiDetachedTripletStepSelector","hiDetachedTripletStep"),
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 # SEEDING LAYERS
27 hiLowPtTripletStepSeedLayers = RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi.PixelLayerTriplets.clone()
28 hiLowPtTripletStepSeedLayers.BPix.skipClusters = cms.InputTag('hiLowPtTripletStepClusters')
29 hiLowPtTripletStepSeedLayers.FPix.skipClusters = cms.InputTag('hiLowPtTripletStepClusters')
30 
31 # SEEDS
32 from RecoTracker.TkTrackingRegions.globalTrackingRegionWithVertices_cfi import globalTrackingRegionWithVertices as _globalTrackingRegionWithVertices
33 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi import hitPairEDProducer as _hitPairEDProducer
34 from RecoPixelVertexing.PixelTriplets.pixelTripletHLTEDProducer_cfi import pixelTripletHLTEDProducer as _pixelTripletHLTEDProducer
36 import RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi
41 
42 hiLowPtTripletStepTrackingRegions = _globalTrackingRegionWithVertices.clone(RegionPSet=dict(
43  precise = True,
44  useMultipleScattering = False,
45  useFakeVertices = False,
46  beamSpot = "offlineBeamSpot",
47  useFixedError = False,
48  nSigmaZ = 4.0,
49  sigmaZVertex = 4.0,
50  fixedError = 0.2,
51  VertexCollection = "hiSelectedPixelVertex",
52  ptMin = 0.4,
53  useFoundVertices = True,
54  originRadius = 0.02
55 ))
56 hiLowPtTripletStepTracksHitDoublets = _hitPairEDProducer.clone(
57  clusterCheck = "",
58  seedingLayers = "hiLowPtTripletStepSeedLayers",
59  trackingRegions = "hiLowPtTripletStepTrackingRegions",
60  maxElement = 50000000,
61  produceIntermediateHitDoublets = True,
62 )
63 import RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi
64 hiLowPtTripletStepTracksHitTriplets = _pixelTripletHLTEDProducer.clone(
65  doublets = "hiLowPtTripletStepTracksHitDoublets",
66  #maxElement = 5000000,
67  SeedComparitorPSet = RecoPixelVertexing.PixelLowPtUtilities.LowPtClusterShapeSeedComparitor_cfi.LowPtClusterShapeSeedComparitor.clone(),
68  produceSeedingHitSets = True,
69 )
70 
71 from RecoPixelVertexing.PixelTriplets.caHitTripletEDProducer_cfi import caHitTripletEDProducer as _caHitTripletEDProducer
72 hiLowPtTripletStepTracksHitDoubletsCA = hiLowPtTripletStepTracksHitDoublets.clone()
73 hiLowPtTripletStepTracksHitDoubletsCA.layerPairs = [0,1]
74 
75 hiLowPtTripletStepTracksHitTripletsCA = _caHitTripletEDProducer.clone(
76  doublets = "hiLowPtTripletStepTracksHitDoubletsCA",
77  extraHitRPhitolerance = hiLowPtTripletStepTracksHitTriplets.extraHitRPhitolerance,
78  SeedComparitorPSet = hiLowPtTripletStepTracksHitTriplets.SeedComparitorPSet,
79  maxChi2 = dict(
80  pt1 = 0.8, pt2 = 2,
81  value1 = 70 , value2 = 8,
82  ),
83  useBendingCorrection = True,
84  CAThetaCut = 0.002,
85  CAPhiCut = 0.05,
86 )
87 
88 hiLowPtTripletStepPixelTracksFilter = hiFilter.clone(
89  nSigmaLipMaxTolerance = 4.0,
90  nSigmaTipMaxTolerance = 4.0,
91  lipMax = 0,
92  ptMin = 0.4,
93 )
94 hiLowPtTripletStepPixelTracks = cms.EDProducer("PixelTrackProducer",
95 
96  passLabel = cms.string('Pixel primary tracks with vertex constraint'),
97 
98  # Ordered Hits
99  SeedingHitSets = cms.InputTag("hiLowPtTripletStepTracksHitTriplets"),
100 
101  # Fitter
102  Fitter = cms.InputTag("pixelFitterByHelixProjections"),
103 
104  # Filter
105  Filter = cms.InputTag("hiLowPtTripletStepPixelTracksFilter"),
106 
107  # Cleaner
108  Cleaner = cms.string("trackCleaner")
109 )
110 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
111 trackingPhase1.toModify(hiLowPtTripletStepPixelTracks,
112  SeedingHitSets = cms.InputTag("hiLowPtTripletStepTracksHitTripletsCA")
113 )
114 
115 
116 import RecoPixelVertexing.PixelLowPtUtilities.TrackSeeds_cfi
117 hiLowPtTripletStepSeeds = RecoPixelVertexing.PixelLowPtUtilities.TrackSeeds_cfi.pixelTrackSeeds.clone(
118  InputCollection = 'hiLowPtTripletStepPixelTracks'
119  )
120 
121 
122 # QUALITY CUTS DURING TRACK BUILDING
124 hiLowPtTripletStepTrajectoryFilter = TrackingTools.TrajectoryFiltering.TrajectoryFilter_cff.CkfBaseTrajectoryFilter_block.clone(
125  maxLostHits = 1,
126  minimumNumberOfHits = 6,
127  minPt = 0.4
128  )
129 
131 hiLowPtTripletStepChi2Est = TrackingTools.KalmanUpdators.Chi2MeasurementEstimator_cfi.Chi2MeasurementEstimator.clone(
132  ComponentName = cms.string('hiLowPtTripletStepChi2Est'),
133  nSigma = cms.double(3.0),
134  MaxChi2 = cms.double(9.0)
135  )
136 
137 # TRACK BUILDING
139 hiLowPtTripletStepTrajectoryBuilder = RecoTracker.CkfPattern.GroupedCkfTrajectoryBuilder_cfi.GroupedCkfTrajectoryBuilder.clone(
140  MeasurementTrackerName = '',
141  trajectoryFilter = cms.PSet(refToPSet_ = cms.string('hiLowPtTripletStepTrajectoryFilter')),
142  maxCand = 3,
143  estimator = cms.string('hiLowPtTripletStepChi2Est'),
144  maxDPhiForLooperReconstruction = cms.double(2.0),
145  # 0.63 GeV is the maximum pT for a charged particle to loop within the 1.1m radius
146  # of the outermost Tracker barrel layer (with B=3.8T)
147  maxPtForLooperReconstruction = cms.double(0.7)
148  )
149 
150 # MAKING OF TRACK CANDIDATES
152 hiLowPtTripletStepTrackCandidates = RecoTracker.CkfPattern.CkfTrackCandidates_cfi.ckfTrackCandidates.clone(
153  src = cms.InputTag('hiLowPtTripletStepSeeds'),
154  ### these two parameters are relevant only for the CachingSeedCleanerBySharedInput
155  numHitsForSeedCleaner = cms.int32(50),
156  onlyPixelHitsForSeedCleaner = cms.bool(True),
157  TrajectoryBuilderPSet = cms.PSet(refToPSet_ = cms.string('hiLowPtTripletStepTrajectoryBuilder')),
158  clustersToSkip = cms.InputTag('hiLowPtTripletStepClusters'),
159  doSeedingRegionRebuilding = True,
160  useHitsSplitting = True
161  )
162 
163 # TRACK FITTING
165 hiLowPtTripletStepTracks = RecoTracker.TrackProducer.TrackProducer_cfi.TrackProducer.clone(
166  src = 'hiLowPtTripletStepTrackCandidates',
167  AlgorithmName = cms.string('lowPtTripletStep'),
168  Fitter=cms.string('FlexibleKFFittingSmoother')
169  )
170 
171 
172 
173 # Final selection
175 hiLowPtTripletStepSelector = RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiMultiTrackSelector.clone(
176  src='hiLowPtTripletStepTracks',
177  useAnyMVA = cms.bool(True),
178  GBRForestLabel = cms.string('HIMVASelectorIter5'),
179  GBRForestVars = cms.vstring(['chi2perdofperlayer', 'dxyperdxyerror', 'dzperdzerror', 'relpterr', 'nhits', 'nlayers', 'eta']),
180  trackSelectors= cms.VPSet(
181  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
182  name = 'hiLowPtTripletStepLoose',
183  useMVA = cms.bool(False)
184  ), #end of pset
185  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
186  name = 'hiLowPtTripletStepTight',
187  preFilterName = 'hiLowPtTripletStepLoose',
188  useMVA = cms.bool(True),
189  minMVA = cms.double(-0.58)
190  ),
191  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
192  name = 'hiLowPtTripletStep',
193  preFilterName = 'hiLowPtTripletStepTight',
194  useMVA = cms.bool(True),
195  minMVA = cms.double(0.35)
196  ),
197  ) #end of vpset
198  ) #end of clone
199 from Configuration.Eras.Modifier_trackingPhase1_cff import trackingPhase1
200 trackingPhase1.toModify(hiLowPtTripletStepSelector, useAnyMVA = cms.bool(False))
201 trackingPhase1.toModify(hiLowPtTripletStepSelector, trackSelectors= cms.VPSet(
202  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiLooseMTS.clone(
203  name = 'hiLowPtTripletStepLoose',
204  useMVA = cms.bool(False)
205  ), #end of pset
206  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiTightMTS.clone(
207  name = 'hiLowPtTripletStepTight',
208  preFilterName = 'hiLowPtTripletStepLoose',
209  useMVA = cms.bool(False),
210  minMVA = cms.double(-0.58)
211  ),
212  RecoHI.HiTracking.hiMultiTrackSelector_cfi.hiHighpurityMTS.clone(
213  name = 'hiLowPtTripletStep',
214  preFilterName = 'hiLowPtTripletStepTight',
215  useMVA = cms.bool(False),
216  minMVA = cms.double(0.35)
217  ),
218  ) #end of vpset
219 )
220 
221 
223 hiLowPtTripletStepQual = RecoTracker.FinalTrackSelectors.trackListMerger_cfi.trackListMerger.clone(
224  TrackProducers = cms.VInputTag(cms.InputTag('hiLowPtTripletStepTracks')),
225  hasSelector=cms.vint32(1),
226  selectedTrackQuals = cms.VInputTag(cms.InputTag("hiLowPtTripletStepSelector","hiLowPtTripletStep")),
227  copyExtras = True,
228  makeReKeyedSeeds = cms.untracked.bool(False),
229  #writeOnlyTrkQuals = True
230  )
231 
232 # Final sequence
233 
234 hiLowPtTripletStep = cms.Sequence(hiLowPtTripletStepClusters*
235  hiLowPtTripletStepSeedLayers*
236  hiLowPtTripletStepTrackingRegions*
237  hiLowPtTripletStepTracksHitDoublets*
238  hiLowPtTripletStepTracksHitTriplets*
239  pixelFitterByHelixProjections*
240  hiLowPtTripletStepPixelTracksFilter*
241  hiLowPtTripletStepPixelTracks*hiLowPtTripletStepSeeds*
242  hiLowPtTripletStepTrackCandidates*
243  hiLowPtTripletStepTracks*
244  hiLowPtTripletStepSelector*
245  hiLowPtTripletStepQual
246  )
247 hiLowPtTripletStep_Phase1 = hiLowPtTripletStep.copy()
248 hiLowPtTripletStep_Phase1.replace(hiLowPtTripletStepTracksHitDoublets, hiLowPtTripletStepTracksHitDoubletsCA)
249 hiLowPtTripletStep_Phase1.replace(hiLowPtTripletStepTracksHitTriplets, hiLowPtTripletStepTracksHitTripletsCA)
250 trackingPhase1.toReplaceWith(hiLowPtTripletStep, hiLowPtTripletStep_Phase1)
COSMIC RUN SETTING.
pp iterative tracking modified for hiOffline reco (the vertex is the one reconstructed in HI) 3rd ste...