Skip to content

Commit 8ee465a

Browse files
committed
TPC TimeSeries: store TRD tracklets as native objects (std::vector)
Replace flat primitive arrays with std::vector<Tracklet64> and std::vector<CalibratedTracklet>. std::array failed ROOT serialization (missing ShowMember); std::vector with ROOT dictionary works.
1 parent f51657c commit 8ee465a

1 file changed

Lines changed: 7 additions & 24 deletions

File tree

Detectors/TPC/workflow/src/TPCTimeSeriesSpec.cxx

Lines changed: 7 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1402,33 +1402,21 @@ class TPCTimeSeries : public Task
14021402
const bool itsHasSharedClusters = idxITSCheck ? tracksITS[idxITSTrack].hasSharedClusters() : false;
14031403
const uint32_t itsPattern = idxITSCheck ? (tracksITS[idxITSTrack].getPattern() & 0x7Fu) : 0u;
14041404

1405-
// D2: TRD tracklet data — flat arrays per layer
1405+
// D2: TRD tracklet data — native objects per layer
14061406
uint8_t trdPattern = 0;
14071407
uint8_t nTRDTracklets = 0;
1408-
std::vector<uint64_t> trdTrackletWords(6, 0); // raw Tracklet64 words
1409-
std::vector<int16_t> trdQ0(6, -1); // charge slice 0
1410-
std::vector<int16_t> trdQ1(6, -1); // charge slice 1
1411-
std::vector<int16_t> trdQ2(6, -1); // charge slice 2
1412-
std::vector<float> trdCalibX(6, 0.f); // calibrated x
1413-
std::vector<float> trdCalibY(6, 0.f); // calibrated y
1414-
std::vector<float> trdCalibZ(6, 0.f); // calibrated z
1408+
std::vector<o2::trd::Tracklet64> trdTrackletVec(6);
1409+
std::vector<o2::trd::CalibratedTracklet> trdCalibVec(6);
14151410
auto itTRD = tpcToTRDMap.find(iTrk);
14161411
if (itTRD != tpcToTRDMap.end()) {
14171412
const auto& trdData = itTRD->second;
14181413
trdPattern = trdData.trdPattern;
14191414
nTRDTracklets = trdData.nTRDTracklets;
14201415
for (int iLay = 0; iLay < 6; ++iLay) {
14211416
if (trdData.trackletIndices[iLay] >= 0) {
1422-
const auto& trklt = trdTracklets[trdData.trackletIndices[iLay]];
1423-
trdTrackletWords[iLay] = trklt.getTrackletWord();
1424-
trdQ0[iLay] = trklt.getQ0();
1425-
trdQ1[iLay] = trklt.getQ1();
1426-
trdQ2[iLay] = trklt.getQ2();
1417+
trdTrackletVec[iLay] = trdTracklets[trdData.trackletIndices[iLay]];
14271418
if (trdData.trackletIndices[iLay] < static_cast<int>(trdCalibTracklets.size())) {
1428-
const auto& ctrklt = trdCalibTracklets[trdData.trackletIndices[iLay]];
1429-
trdCalibX[iLay] = ctrklt.getX();
1430-
trdCalibY[iLay] = ctrklt.getY();
1431-
trdCalibZ[iLay] = ctrklt.getZ();
1419+
trdCalibVec[iLay] = trdCalibTracklets[trdData.trackletIndices[iLay]];
14321420
}
14331421
}
14341422
}
@@ -1573,13 +1561,8 @@ class TPCTimeSeries : public Task
15731561
// D2: TRD tracklet data
15741562
<< "trdPattern=" << trdPattern
15751563
<< "nTRDTracklets=" << nTRDTracklets
1576-
<< "trdTrackletWords=" << trdTrackletWords
1577-
<< "trdQ0=" << trdQ0
1578-
<< "trdQ1=" << trdQ1
1579-
<< "trdQ2=" << trdQ2
1580-
<< "trdCalibX=" << trdCalibX
1581-
<< "trdCalibY=" << trdCalibY
1582-
<< "trdCalibZ=" << trdCalibZ
1564+
<< "trdTracklets=" << trdTrackletVec
1565+
<< "trdCalibTracklets=" << trdCalibVec
15831566
<< "chi2match_ITSTPC=" << chi2match_ITSTPC
15841567
<< "PID=" << trkOrig.getPID().getID()
15851568
// TPC cov at vertex (without vertex constrained)

0 commit comments

Comments
 (0)