Skip to content

Commit e6042b9

Browse files
committed
ITSMFT: explicitly convert common ITS track seeds
1 parent cf19214 commit e6042b9

1 file changed

Lines changed: 27 additions & 17 deletions

File tree

Detectors/ITSMFT/common/tracking/src/DetectorTraits.cxx

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -33,23 +33,33 @@ bool refitSeedITS(const typename DetectorTraits<NLayers>::TrackSeedN& seed,
3333
const o2::its::Cluster* const unsortedClusters[NLayers],
3434
const o2::base::PropagatorImpl<float>* propagator)
3535
{
36-
// Common TrackSeed matches o2::its::TrackSeed layout (hole-layer mask aside); refit uses ITS helper.
37-
const auto& itsSeed = reinterpret_cast<const o2::its::TrackSeed<NLayers>&>(seed);
38-
return o2::its::track::refitTrack<NLayers>(itsSeed,
39-
track,
40-
params.MaxChi2ClusterAttachment,
41-
params.MaxChi2NDF,
42-
bz,
43-
tfInfos,
44-
unsortedClusters,
45-
params.LayerxX0.data(),
46-
params.LayerRadii.data(),
47-
params.MinPt.data(),
48-
propagator,
49-
params.CorrType,
50-
params.ReseedIfShorter,
51-
params.ShiftRefToCluster,
52-
params.RepeatRefitOut);
36+
o2::its::TrackSeed<NLayers> itsSeed;
37+
static_cast<o2::track::TrackParCovF&>(itsSeed) = static_cast<const o2::track::TrackParCovF&>(seed);
38+
itsSeed.setHitLayerMask(o2::its::LayerMask{seed.getHitLayerMask().value()});
39+
itsSeed.setFirstTrackletIndex(seed.getFirstTrackletIndex());
40+
itsSeed.setSecondTrackletIndex(seed.getSecondTrackletIndex());
41+
itsSeed.setChi2(seed.getChi2());
42+
itsSeed.setLevel(seed.getLevel());
43+
itsSeed.getTimeStamp() = seed.getTimeStamp();
44+
for (int iLayer{0}; iLayer < NLayers; ++iLayer) {
45+
itsSeed.getClusters()[iLayer] = seed.getCluster(iLayer);
46+
}
47+
const o2::its::track::TrackFitContext<NLayers> fitCtx{
48+
tfInfos, params.LayerxX0.data(), params.NLayers, bz,
49+
params.MaxChi2ClusterAttachment, params.MaxChi2NDF,
50+
propagator, params.CorrType, params.ShiftRefToCluster, params.RepeatRefitOut};
51+
o2::its::TrackITSInternal<NLayers> internalTrack;
52+
if (!o2::its::track::refitTrackSeed<NLayers>(itsSeed,
53+
internalTrack,
54+
fitCtx,
55+
unsortedClusters,
56+
params.LayerRadii.data(),
57+
params.MinPt.data(),
58+
params.ReseedIfShorter)) {
59+
return false;
60+
}
61+
track = o2::its::makeTrackITSExt(internalTrack);
62+
return true;
5363
}
5464
} // namespace
5565

0 commit comments

Comments
 (0)