@@ -134,7 +134,7 @@ GPUg() void __launch_bounds__(256, 1) fitTrackSeedsKernel(
134134 const float maxChi2NDF,
135135 const int reseedIfShorter,
136136 const bool repeatRefitOut,
137- const bool shifRefToCluster ,
137+ const bool shiftRefToCluster ,
138138 const o2::base::Propagator* propagator,
139139 const o2::base::PropagatorF::MatCorrType matCorrType)
140140{
@@ -145,87 +145,28 @@ GPUg() void __launch_bounds__(256, 1) fitTrackSeedsKernel(
145145 continue ;
146146 }
147147 }
148-
149- TrackITSExt temporaryTrack = o2::its::track::seedTrackForRefit (trackSeeds[iCurrentTrackSeedIndex],
150- foundTrackingFrameInfo,
151- unsortedClusters,
152- layerRadii,
153- bz,
154- reseedIfShorter);
155- o2::track::TrackPar linRef{temporaryTrack};
156- bool fitSuccess = o2::its::track::fitTrack (temporaryTrack, // TrackITSExt& track,
157- 0 , // int lastLayer,
158- NLayers, // int firstLayer,
159- 1 , // int firstCluster,
160- maxChi2ClusterAttachment, // float maxChi2ClusterAttachment,
161- maxChi2NDF, // float maxChi2NDF,
162- o2::constants::math::VeryBig, // float maxQoverPt,
163- 0 , // nCl,
164- bz, // float bz,
165- foundTrackingFrameInfo, // TrackingFrameInfo** trackingFrameInfo,
166- layerxX0, // const float* layerxX0,
167- propagator, // const o2::base::Propagator* propagator,
168- matCorrType, // o2::base::PropagatorF::MatCorrType matCorrType
169- &linRef,
170- shifRefToCluster);
171- if (!fitSuccess) {
172- continue ;
173- }
174- temporaryTrack.getParamOut () = temporaryTrack.getParamIn ();
175- linRef = temporaryTrack.getParamOut (); // use refitted track as lin.reference
176- track::resetTrackCovariance (temporaryTrack);
177- temporaryTrack.setChi2 (0 );
178- fitSuccess = o2::its::track::fitTrack (temporaryTrack, // TrackITSExt& track,
179- NLayers - 1 , // int lastLayer,
180- -1 , // int firstLayer,
181- -1 , // int firstCluster,
182- maxChi2ClusterAttachment, // float maxChi2ClusterAttachment,
183- maxChi2NDF, // float maxChi2NDF,
184- 50 .f , // float maxQoverPt,
185- 0 , // nCl,
186- bz, // float bz,
187- foundTrackingFrameInfo, // TrackingFrameInfo** trackingFrameInfo,
188- layerxX0, // const float* layerxX0,
189- propagator, // const o2::base::Propagator* propagator,
190- matCorrType, // o2::base::PropagatorF::MatCorrType matCorrType
191- &linRef,
192- shifRefToCluster);
193- if (!fitSuccess || temporaryTrack.getPt () < minPts[NLayers - temporaryTrack.getNClusters ()]) {
194- continue ;
195- }
196- if (repeatRefitOut) { // repeat outward refit seeding and linearizing with the stable inward fit result
197- o2::track::TrackParCov saveInw{temporaryTrack};
198- linRef = saveInw; // use refitted track as lin.reference
199- float saveChi2 = temporaryTrack.getChi2 ();
200- track::resetTrackCovariance (temporaryTrack);
201- temporaryTrack.setChi2 (0 );
202- fitSuccess = o2::its::track::fitTrack (temporaryTrack, // TrackITSExt& track,
203- 0 , // int lastLayer,
204- NLayers, // int firstLayer,
205- 1 , // int firstCluster,
206- maxChi2ClusterAttachment, // float maxChi2ClusterAttachment,
207- maxChi2NDF, // float maxChi2NDF,
208- o2::constants::math::VeryBig, // float maxQoverPt,
209- 0 , // nCl,
210- bz, // float bz,
211- foundTrackingFrameInfo, // TrackingFrameInfo** trackingFrameInfo,
212- layerxX0, // const float* layerxX0,
213- propagator, // const o2::base::Propagator* propagator,
214- matCorrType, // o2::base::PropagatorF::MatCorrType matCorrType
215- &linRef,
216- shifRefToCluster);
217- if (!fitSuccess) {
218- continue ;
148+ TrackITSExt temporaryTrack;
149+ bool refitSuccess = o2::its::track::refitTrack (trackSeeds[iCurrentTrackSeedIndex],
150+ temporaryTrack,
151+ maxChi2ClusterAttachment,
152+ maxChi2NDF,
153+ bz,
154+ foundTrackingFrameInfo,
155+ unsortedClusters,
156+ layerxX0,
157+ layerRadii,
158+ minPts,
159+ propagator,
160+ matCorrType,
161+ reseedIfShorter,
162+ shiftRefToCluster,
163+ repeatRefitOut);
164+ if (refitSuccess) {
165+ if constexpr (initRun) {
166+ seedLUT[iCurrentTrackSeedIndex] = 1 ;
167+ } else {
168+ tracks[seedLUT[iCurrentTrackSeedIndex]] = temporaryTrack;
219169 }
220- temporaryTrack.getParamOut () = temporaryTrack.getParamIn ();
221- temporaryTrack.getParamIn () = saveInw;
222- temporaryTrack.setChi2 (saveChi2);
223- }
224-
225- if constexpr (initRun) {
226- seedLUT[iCurrentTrackSeedIndex] = 1 ;
227- } else {
228- tracks[seedLUT[iCurrentTrackSeedIndex]] = temporaryTrack;
229170 }
230171 }
231172}
0 commit comments