15#ifndef ALICEO2_IOTOF_CLUSTERER_H
16#define ALICEO2_IOTOF_CLUSTERER_H
74 gsl::span<const uint32_t> digitIdxs,
75 int maxTimeDiffNSigma,
76 float timeResolution);
78 std::vector<Cluster>* clustersOut, std::vector<unsigned char>* patternsOut,
89 gsl::span<const DigROFRecord> digitROFs,
90 std::vector<o2::iotof::Cluster>&
clusters,
91 std::vector<unsigned char>& patterns,
92 std::vector<o2::itsmft::ROFRecord>& clusterROFs,
95 gsl::span<const DigMC2ROFRecord> digMC2ROFs = {},
96 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.
Definition of the TopologyClassifier class.
Definition of the IOTOF clusterer settings.
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::array< Label, MaxLabels > mLabelsBuff
MC label buffer for one cluster.
TopologyClassifier mClsTopoClassifier
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)
std::vector< std::vector< uint32_t > > buildPreclusters(gsl::span< const Digit > digits, gsl::span< const uint32_t > digitIdxs, int maxTimeDiffNSigma, float timeResolution)
std::vector< Cluster > mClusters
void writeTopologiesToFile(const char *filename)
void findClustersMultipleHits(gsl::span< const Digit > digits, gsl::span< const uint32_t > digitIdxs, const ConstDigitTruth *labelsDigPtr, ClusterTruth *labelsClusPtr)
std::vector< uint16_t > mPatterns
void fetchMCLabels(uint32_t digID, const ConstDigitTruth *labelsDig, int &nFilled)
Convert the cluster topology to the corresponding entry in the dictionary.
void findClustersSingleHit(gsl::span< const Digit > digits, uint32_t digitIdx, const ConstDigitTruth *labelsDigPtr, ClusterTruth *labelsClusPtr)
ClustererThread(Clusterer *par=nullptr)
ClustererThread(const ClustererThread &)=delete
std::vector< Cluster > clusters
std::vector< Digit > digits