37 auto&
hits = std::get<0>(res);
38 auto& digiIndices = std::get<1>(res);
39 hits.reserve(digis.size());
40 digiIndices.reserve(digis.size());
41 auto itLast = std::prev(digis.end());
42 bool bUsedWithPrevious{
false};
43 for (
auto it = digis.begin(), in = it; it != itLast; ++it) {
44 if (bUsedWithPrevious) {
46 bUsedWithPrevious =
false;
50 const auto& digiT = it->first;
51 const auto& digiN = in->first;
53 && abs(digiN.GetChannel() - digiT.GetChannel()) == 1) {
56 digiIndices.emplace_back(it->second);
57 bUsedWithPrevious =
true;
62 digiIndices.emplace_back(it->second);
65 if (!bUsedWithPrevious) {
68 digiIndices.emplace_back(itLast->second);
static vector< vector< QAHit > > hits
A clusterizer algorithm for BMON.
Data class for a signal in the t-zero detector.
int32_t GetAddress() const
Address.
static int32_t GetChannelId(uint32_t address)
A clusterizer algorithm for a BMON.
bool SelectDigi(const CbmBmonDigi &digi) const
Applies selection on a digis.
ClusterizerPars fParams
parameters container
Output_t operator()(const Input_t &digisInput)
Hit building function.
std::vector< std::pair< CbmBmonDigi, int32_t > > Input_t
Input type.
std::pair< std::vector< Hit >, PODVector< int32_t > > Output_t
Output type.
uint32_t fDeadStrips
Dead strip bitmask.
double fdMaxTimeDist
Maximum time difference between two consecutive digis to form a single hit.
uint32_t fAddress
Address of the diamond (the channel bit field is 0)