CbmRoot
Loading...
Searching...
No Matches
bmon/Clusterizer.h
Go to the documentation of this file.
1/* Copyright (C) 2025 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Sergei Zharko [committer] */
4
9
10#pragma once
11
12#include "base/PODVector.h"
14#include "bmon/Hit.h"
15
16#include <cmath>
17#include <cstdint>
18#include <memory>
19#include <utility>
20#include <vector>
21
22class CbmBmonDigi;
23
24namespace cbm::algo::bmon
25{
31 public:
32 using Input_t = std::vector<std::pair<CbmBmonDigi, int32_t>>;
33 using Output_t = std::pair<std::vector<Hit>, PODVector<int32_t>>;
34
37 explicit Clusterizer(ClusterizerPars params) : fParams(params) {}
38
40 Output_t operator()(const Input_t& digisInput);
41
45 bool SelectDigi(const CbmBmonDigi& digi) const;
46
47 private:
49 Hit CreateHit(const CbmBmonDigi& digi) const;
50
52 Hit CreateHit(const CbmBmonDigi& digiL, const CbmBmonDigi& digiR) const;
53
54
56 };
57} // namespace cbm::algo::bmon
BMON clusterizer parameters.
Data class for a signal in the t-zero detector.
Definition CbmBmonDigi.h:31
A clusterizer algorithm for a BMON.
Hit CreateHit(const CbmBmonDigi &digiL, const CbmBmonDigi &digiR) const
Creates a hit from two digis.
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.
Clusterizer(ClusterizerPars params)
Constructor.
Hit CreateHit(const CbmBmonDigi &digi) const
Creates a hit from a single digi.
std::vector< T, PODAllocator< T > > PODVector
PODVector is a std::vector that doesn't initialize its elements.
Definition PODVector.h:17
Clusterizer parameters for Diamond.