CMS 3D CMS Logo

HILowPtConformalPixelTracks_cfi.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
3 from RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi import PixelLayerTriplets
4 from RecoTracker.TkHitPairs.hitPairEDProducer_cfi import hitPairEDProducer as _hitPairEDProducer
5 from RecoTracker.PixelSeeding.pixelTripletHLTEDProducer_cfi import pixelTripletHLTEDProducer as _pixelTripletHLTEDProducer
11 
12 # Hit ntuplets
13 hiConformalPixelTracksHitDoublets = _hitPairEDProducer.clone(
14  clusterCheck = "",
15  seedingLayers = "PixelLayerTriplets",
16  trackingRegions = "hiTrackingRegionWithVertex",
17  maxElement = 50000000,
18  produceIntermediateHitDoublets = True,
19 )
20 
21 hiConformalPixelTracksHitTriplets = _pixelTripletHLTEDProducer.clone(
22  doublets = "hiConformalPixelTracksHitDoublets",
23  maxElement = 5000000, # increase threshold for triplets in generation step (default: 100000)
24  produceSeedingHitSets = True,
25 )
26 
27 import RecoTracker.PixelTrackFitting.pixelTracks_cfi as _mod
28 # Pixel tracks
29 hiConformalPixelTracks = _mod.pixelTracks.clone(
30  #passLabel = 'Pixel triplet low-pt tracks with vertex constraint',
31  # Ordered Hits
32  SeedingHitSets = "hiConformalPixelTracksHitTriplets",
33  # Fitter
34  Fitter = 'pixelFitterByConformalMappingAndLine',
35  # Filter
36  Filter = "hiConformalPixelFilter",
37  # Cleaner
38  Cleaner = "trackCleaner"
39 )
40 
41 
42 
43 #Tracking regions - use PV from pp tracking
44 from RecoTracker.TkTrackingRegions.globalTrackingRegionWithVertices_cfi import globalTrackingRegionWithVertices
45 hiConformalPixelTracksPhase1TrackingRegions = globalTrackingRegionWithVertices.clone(
46  RegionPSet = dict(
47  precise = True,
48  useMultipleScattering = False,
49  useFakeVertices = False,
50  beamSpot = "offlineBeamSpot",
51  useFixedError = True,
52  nSigmaZ = 3.0,
53  sigmaZVertex = 3.0,
54  fixedError = 0.2,
55  VertexCollection = "offlinePrimaryVertices",
56  ptMin = 0.3,
57  useFoundVertices = True,
58  originRadius = 0.2
59  )
60 )
61 
62 # SEEDING LAYERS
63 # Using 4 layers layerlist
64 from RecoTracker.IterativeTracking.LowPtQuadStep_cff import lowPtQuadStepSeedLayers
65 hiConformalPixelTracksPhase1SeedLayers = lowPtQuadStepSeedLayers.clone(
66  BPix = cms.PSet(
67  HitProducer = cms.string('siPixelRecHits'),
68  TTRHBuilder = cms.string('WithTrackAngle'),
69  ),
70  FPix = cms.PSet(
71  HitProducer = cms.string('siPixelRecHits'),
72  TTRHBuilder = cms.string('WithTrackAngle'),
73  )
74 )
75 
76 
77 # Hit ntuplets
78 from RecoTracker.IterativeTracking.LowPtQuadStep_cff import lowPtQuadStepHitDoublets
79 hiConformalPixelTracksPhase1HitDoubletsCA = lowPtQuadStepHitDoublets.clone(
80  seedingLayers = "hiConformalPixelTracksPhase1SeedLayers",
81  trackingRegions = "hiConformalPixelTracksPhase1TrackingRegions"
82 )
83 
84 
85 from RecoTracker.IterativeTracking.LowPtQuadStep_cff import lowPtQuadStepHitQuadruplets
86 hiConformalPixelTracksPhase1HitQuadrupletsCA = lowPtQuadStepHitQuadruplets.clone(
87  doublets = "hiConformalPixelTracksPhase1HitDoubletsCA",
88  CAPhiCut = 0.2,
89  CAThetaCut = 0.0012,
90  SeedComparitorPSet = dict(
91  ComponentName = 'none'
92  ),
93  extraHitRPhitolerance = 0.032,
94  maxChi2 = dict(
95  enabled = True,
96  pt1 = 0.7,
97  pt2 = 2,
98  value1 = 200,
99  value2 = 50
100  )
101 )
102 
103 #Filter
104 hiConformalPixelTracksPhase1Filter = hiConformalPixelFilter.clone(
105  VertexCollection = "offlinePrimaryVertices",
106  chi2 = 30.0,
107  lipMax = 999.0,
108  nSigmaLipMaxTolerance = 3.0,
109  nSigmaTipMaxTolerance = 3.0,
110  ptMax = 999999,
111  ptMin = 0.30,
112  tipMax = 999.0
113 )
114 
115 from RecoTracker.PixelTrackFitting.pixelNtupletsFitter_cfi import pixelNtupletsFitter
116 
117 from Configuration.Eras.Modifier_phase1Pixel_cff import phase1Pixel
118 phase1Pixel.toModify(hiConformalPixelTracks,
119  Cleaner = 'pixelTrackCleanerBySharedHits',
120  Filter = "hiConformalPixelTracksPhase1Filter",
121  Fitter = "pixelNtupletsFitter",
122  SeedingHitSets = "hiConformalPixelTracksPhase1HitQuadrupletsCA",
123 )
124 
125 hiConformalPixelTracksTask = cms.Task(
126  hiTrackingRegionWithVertex ,
127  PixelLayerTriplets ,
128  hiConformalPixelTracksHitDoublets ,
129  hiConformalPixelTracksHitTriplets ,
130  pixelFitterByConformalMappingAndLine ,
131  hiConformalPixelFilter ,
132  hiConformalPixelTracks
133 )
134 
136 from Configuration.ProcessModifiers.pixelNtupletFit_cff import pixelNtupletFit
137 from RecoTracker.PixelTrackFitting.pixelTrackSoAFromCUDAHIonPhase1_cfi import pixelTrackSoAFromCUDAHIonPhase1 as _pixelTracksSoA
138 from RecoTracker.PixelSeeding.caHitNtupletCUDAHIonPhase1_cfi import caHitNtupletCUDAHIonPhase1 as _pixelTracksCUDA
139 from RecoTracker.PixelTrackFitting.pixelTrackProducerFromSoAHIonPhase1_cfi import pixelTrackProducerFromSoAHIonPhase1 as _pixelTrackProducerFromSoA
140 
141 from HeterogeneousCore.CUDACore.SwitchProducerCUDA import SwitchProducerCUDA
142 
143 hiPixelTracksCUDA = _pixelTracksCUDA.clone(pixelRecHitSrc="siPixelRecHitsPreSplittingCUDA", idealConditions = False,
144  ptmin = 0.25, z0Cut = 8.0, hardCurvCut = 0.0756, doPtCut = False,
145  onGPU = True,
146  dcaCutInnerTriplet = 0.05, dcaCutOuterTriplet = 0.10,
147  CAThetaCutForward = 0.002, CAThetaCutBarrel = 0.001,
148  phiCuts = cms.vint32(19*[900]), #19 pairs
149  trackQualityCuts = dict(
150  chi2MaxPt = 10,
151  chi2Coeff = [0.9,1.8],
152  chi2Scale = 1.8,
153  tripletMinPt = 0.1,
154  tripletMaxTip = 0.3,
155  tripletMaxZip = 12,
156  quadrupletMinPt = 0.1,
157  quadrupletMaxTip = 0.5,
158  quadrupletMaxZip = 12
159  ))
160 
161 # SwitchProducer providing the pixel tracks in SoA format on the CPU
162 hiPixelTracksSoA = SwitchProducerCUDA(
163  # build pixel ntuplets and pixel tracks in SoA format on the CPU
164  cpu = _pixelTracksCUDA.clone(
165  pixelRecHitSrc = "siPixelRecHitsPreSplittingCPU",
166  idealConditions = False,
167  doPtCut = False,
168  ptmin = 0.25,
169  hardCurvCut = 0.0756,
170  onGPU = False,
171  phiCuts = cms.vint32(19*[900]), #19 pairs
172  trackQualityCuts = dict(
173  chi2MaxPt = 10,
174  chi2Coeff = [0.9,1.8],
175  chi2Scale = 8,
176  tripletMinPt = 0.5,
177  tripletMaxTip = 0.3,
178  tripletMaxZip = 12,
179  quadrupletMinPt = 0.3,
180  quadrupletMaxTip = 0.5,
181  quadrupletMaxZip = 12
182  ))
183 )
184 
185 gpu.toModify(hiPixelTracksSoA,
186  # transfer the pixel tracks in SoA format to the host
187  cuda = _pixelTracksSoA.clone(src="hiPixelTracksCUDA")
188 )
189 
190 pixelNtupletFit.toReplaceWith(hiConformalPixelTracks,_pixelTrackProducerFromSoA.clone(
191  pixelRecHitLegacySrc = "siPixelRecHitsPreSplitting",
192  trackSrc = "hiPixelTracksSoA",
193  minQuality = "highPurity"
194 ))
195 
196 
197 hiConformalPixelTracksTaskPhase1 = cms.Task(
198  hiConformalPixelTracksPhase1TrackingRegions ,
199  hiConformalPixelTracksPhase1SeedLayers ,
200  hiConformalPixelTracksPhase1HitDoubletsCA ,
201  hiConformalPixelTracksPhase1HitQuadrupletsCA ,
202  pixelNtupletsFitter ,
203  hiConformalPixelTracksPhase1Filter ,
204  hiConformalPixelTracks
205 )
206 
207 pixelNtupletFit.toReplaceWith(hiConformalPixelTracksTaskPhase1, cms.Task(
208  # build the pixel ntuplets and the pixel tracks in SoA format on the CPU
209  hiPixelTracksSoA,
210  # convert the pixel tracks from SoA to legacy format
211  hiConformalPixelTracks
212 ))
213 
214 (gpu & pixelNtupletFit).toReplaceWith(hiConformalPixelTracksTaskPhase1, cms.Task(
215  # build the pixel ntuplets and the pixel tracks in SoA format on the GPU
216  hiPixelTracksCUDA,
217  # just copying the task above
218  hiConformalPixelTracksTaskPhase1.copy()
219 ))
220 
221 phase1Pixel.toReplaceWith(hiConformalPixelTracksTask, hiConformalPixelTracksTaskPhase1)
222 
223 from Configuration.Eras.Modifier_run3_upc_cff import run3_upc
224 run3_upc.toModify(hiConformalPixelTracksPhase1TrackingRegions.RegionPSet, ptMin = 0.05)
225 run3_upc.toModify(hiConformalPixelTracksPhase1Filter, ptMin = 0.05)
226 run3_upc.toModify(hiTrackingRegionWithVertex.RegionPSet, VertexCollection = "offlinePrimaryVertices", ptMin = 0.05)
227 run3_upc.toModify(hiConformalPixelFilter, VertexCollection = "offlinePrimaryVertices", ptMin = 0.05)
TRIGGER SELECTION #####.