1919#include < gsl/gsl>
2020
2121#include " DataFormatsITSMFT/TopologyDictionary.h"
22+ #include " DataFormatsITSMFT/ClustersPerLayer.h"
2223#include " StrangenessTracking/IndexTableUtils.h"
2324#include " StrangenessTracking/StrangenessTrackingConfigParam.h"
2425#include " ReconstructionDataFormats/PID.h"
@@ -66,6 +67,7 @@ class StrangenessTracker
6667 using PID = o2::track::PID ;
6768 using TrackITS = o2::its::TrackITS;
6869 using ITSCluster = o2::BaseCluster<float >;
70+ using ITSClusters = o2::itsmft::ClustersPerLayer<ITSCluster>;
6971 using V0 = o2::dataformats::V0 ;
7072 using V0Index = o2::dataformats::V0Index;
7173 using Cascade = o2::dataformats::Cascade;
@@ -247,12 +249,12 @@ class StrangenessTracker
247249 auto firstClus = itsTrack.getFirstClusterEntry ();
248250 auto ncl = itsTrack.getNumberOfClusters ();
249251 for (int icl = 0 ; icl < ncl; icl++) {
250- outVec.push_back (mInputClusterSizes [mInputITSidxs [firstClus + icl]]);
252+ outVec.push_back (mInputClusterSizes [mInputITSclusters . flatIndex ( mInputITSidxs [firstClus + icl]) ]);
251253 }
252254 return outVec;
253255 };
254256
255- void getClusterSizesITS (std::vector<int >& clusSizeVec, const gsl::span<const o2::itsmft::CompClusterExt> ITSclus, gsl::span<const unsigned char >::iterator& pattIt, const o2::itsmft::TopologyDictionary* mdict)
257+ void getClusterSizesITS (std::vector<int >& clusSizeVec, int offs, const gsl::span<const o2::itsmft::CompClusterExt> ITSclus, gsl::span<const unsigned char >::iterator& pattIt, const o2::itsmft::TopologyDictionary* mdict)
256258 {
257259 for (unsigned int iClus{0 }; iClus < ITSclus.size (); ++iClus) {
258260 auto & clus = ITSclus[iClus];
@@ -268,13 +270,13 @@ class StrangenessTracker
268270 npix = mdict->getNpixels (pattID);
269271 patt = mdict->getPattern (pattID);
270272 }
271- clusSizeVec[iClus] = npix;
273+ clusSizeVec[offs + iClus] = npix;
272274 }
273275 // LOG(info) << " Patt Npixel: " << pattVec[0].getNPixels();
274276 }
275277
276278#ifdef ENABLE_UPGRADES
277- void getClusterSizesIT3 (std::vector<int >& clusSizeVec, const gsl::span<const o2::itsmft::CompClusterExt> ITSclus, gsl::span<const unsigned char >::iterator& pattIt, const o2::its3::TopologyDictionary* mdict)
279+ void getClusterSizesIT3 (std::vector<int >& clusSizeVec, int offs, const gsl::span<const o2::itsmft::CompClusterExt> ITSclus, gsl::span<const unsigned char >::iterator& pattIt, const o2::its3::TopologyDictionary* mdict)
278280 {
279281 for (unsigned int iClus{0 }; iClus < ITSclus.size (); ++iClus) {
280282 auto & clus = ITSclus[iClus];
@@ -291,7 +293,7 @@ class StrangenessTracker
291293 npix = mdict->getNpixels (pattID, ib);
292294 patt = mdict->getPattern (pattID, ib);
293295 }
294- clusSizeVec[iClus] = npix;
296+ clusSizeVec[offs + iClus] = npix;
295297 }
296298 }
297299#endif
@@ -326,7 +328,7 @@ class StrangenessTracker
326328 std::vector<VBracket> mITSvtxBrackets ; // time brackets for ITS tracks
327329 std::vector<int > mTracksIdxTable ; // index table for ITS tracks
328330 std::vector<int > mInputClusterSizes ; // input cluster sizes
329- std::vector<ITSCluster> mInputITSclusters ; // input ITS clusters
331+ ITSClusters mInputITSclusters ; // input ITS clusters, by composed (layer,index) ID
330332 gsl::span<const int > mInputITSidxs ; // input ITS track-cluster indexes
331333 gsl::span<const V0 > mInputV0tracks ; // input V0 of decay daughters
332334 gsl::span<const V0Index> mInputV0Indices ; // input V0 indices of decay daughters
0 commit comments