15#ifndef ALICEO2_IOTOF_CLUSTERER_H
16#define ALICEO2_IOTOF_CLUSTERER_H
68 std::vector<Cluster>* clustersOut, std::vector<unsigned char>* patternsOut,
78 gsl::span<const DigROFRecord> digitROFs,
79 std::vector<o2::iotof::Cluster>&
clusters,
80 std::vector<unsigned char>& patterns,
81 std::vector<o2::itsmft::ROFRecord>& clusterROFs,
84 gsl::span<const DigMC2ROFRecord> digMC2ROFs = {},
85 std::vector<o2::itsmft::MC2ROFRecord>* clusterMC2ROFs =
nullptr);
A const (ready only) version of MCTruthContainer.
Definition of a container to keep Monte Carlo truth external to simulation objects.
virtual void process(gsl::span< const Digit > digits, gsl::span< const DigROFRecord > digitROFs, std::vector< o2::iotof::Cluster > &clusters, std::vector< unsigned char > &patterns, std::vector< o2::itsmft::ROFRecord > &clusterROFs, const ConstDigitTruth *digitLabels=nullptr, ClusterTruth *clusterLabels=nullptr, gsl::span< const DigMC2ROFRecord > digMC2ROFs={}, std::vector< o2::itsmft::MC2ROFRecord > *clusterMC2ROFs=nullptr)
static constexpr int MaxLabels
std::vector< int > mSortIdx
reusable per-ROF sort buffer
std::unique_ptr< ClustererThread > mThread
ClustererThread & operator=(const ClustererThread &)=delete
std::vector< unsigned char > patterns
void processChip(gsl::span< const Digit > digits, int chipFirst, int chipN, std::vector< Cluster > *clustersOut, std::vector< unsigned char > *patternsOut, const ConstDigitTruth *labelsDigPtr, ClusterTruth *labelsClusPtr)
void fetchMCLabels(uint32_t digID, const ConstDigitTruth *labelsDig, int &nfilled)
std::vector< Cluster > clusters
void finishChipSingleHitFast(gsl::span< const Digit > digits, uint32_t digitIdx, const ConstDigitTruth *labelsDigPtr, ClusterTruth *labelsClusPtr)
ClustererThread(Clusterer *par=nullptr)
ClustererThread(const ClustererThread &)=delete
std::array< Label, MaxLabels > labelsBuff
MC label buffer for one cluster.
std::vector< Cluster > clusters
std::vector< Digit > digits