CbmRoot
|
Algo class for hitfinding. More...
#include <Hitfind.h>
Public Types | |
typedef std::tuple< PartitionedVector< Hit >, HitfindMonitorData > | resultType |
typedef std::pair< Hit, std::vector< DigiRec > > | hitDataType |
Public Member Functions | |
resultType | operator() (gsl::span< CbmTrdDigi > digiIn) |
Algorithm execution. | |
resultType | RunRowParallel (gsl::span< CbmTrdDigi > digiIn) |
Run all steps row-parallel. | |
resultType | RunModuleParallelMerge (gsl::span< CbmTrdDigi > digiIn) |
Run merge step module-parallel all others row-parallel. | |
Hitfind (trd::HitfindSetup, trd::Hitfind2DSetup) | |
Constructor. | |
Private Attributes | |
std::unordered_map< int, std::unique_ptr< cbm::algo::trd::Clusterizer2D > > | fClusterBuild2d |
Cluster building algorithms per module. | |
std::unordered_map< int, std::unique_ptr< cbm::algo::trd::Clusterizer > > | fClusterBuild |
std::unordered_map< int, std::unique_ptr< cbm::algo::trd::HitFinder2D > > | fHitFind2d |
Hit finding algorithms per module. | |
std::unordered_map< int, std::unique_ptr< cbm::algo::trd::HitFinder > > | fHitFind |
std::unordered_map< int, std::unique_ptr< cbm::algo::trd::HitMerger2D > > | fHitMerge2d |
Hit merging algorithms per module. | |
std::unordered_map< int, std::unique_ptr< cbm::algo::trd::HitMerger > > | fHitMerge |
std::vector< std::tuple< int, bool, size_t, size_t > > | fModList |
List of modules (address, type flag (true = 2D), numRows, numCols) | |
std::vector< std::tuple< int, bool, size_t > > | fRowList |
List of rows (module address, type flag (true = 2D), row in module) | |
std::unordered_map< int, size_t > | fModId |
Map from module address to module Id (sequential number) | |
std::pair<Hit, std::vector<DigiRec> > cbm::algo::trd::Hitfind::hitDataType |
Definition at line 61 of file trd/Hitfind.h.
Definition at line 60 of file trd/Hitfind.h.
|
explicit |
Constructor.
Definition at line 32 of file trd/Hitfind.cxx.
References cbm::algo::trd::Hitfind2DSetup::Mod::address, cbm::algo::trd::HitFinder2DModPar::address, cbm::algo::trd::HitFinderModPar::address, cbm::algo::trd::HitfindSetup::Mod::address, cbm::algo::trd::Hitfind2DSetup::Pad::chRMasked, cbm::algo::trd::HitFinder2DPadPar::chRMasked, cbm::algo::trd::Hitfind2DSetup::Pad::chTMasked, cbm::algo::trd::HitFinder2DPadPar::chTMasked, fClusterBuild, fClusterBuild2d, fHitFind, fHitFind2d, fHitMerge, fHitMerge2d, fModId, fModList, fRowList, L_, cbm::algo::trd::Hitfind2DSetup::modules, cbm::algo::trd::HitfindSetup::modules, cbm::algo::trd::HitFinderModPar::orientation, cbm::algo::trd::Hitfind2DSetup::Row::padPar, cbm::algo::trd::HitfindSetup::Row::padPar, cbm::algo::trd::HitFinderModPar::padSizeErrX, cbm::algo::trd::HitFinderModPar::padSizeErrY, cbm::algo::trd::HitFinder2DModPar::padSizeX, cbm::algo::trd::HitFinderModPar::padSizeX, cbm::algo::trd::HitFinder2DModPar::padSizeY, cbm::algo::trd::HitFinderModPar::padSizeY, cbm::algo::trd::HitFinder2DPadPar::pos, cbm::algo::trd::HitFinderPadPar::pos, cbm::algo::trd::HitFinder2DPadPar::posErr, cbm::algo::trd::HitFinderPadPar::posErr, cbm::algo::trd::Hitfind2DSetup::Pad::position, cbm::algo::trd::HitfindSetup::Pad::position, cbm::algo::trd::Hitfind2DSetup::Pad::positionError, cbm::algo::trd::HitfindSetup::Pad::positionError, cbm::algo::trd::HitFinder2DModPar::rotation, cbm::algo::trd::HitFinderModPar::rotation, cbm::algo::trd::Hitfind2DSetup::Mod::rowPar, cbm::algo::trd::HitFinder2DModPar::rowPar, cbm::algo::trd::HitFinderModPar::rowPar, cbm::algo::trd::HitfindSetup::Mod::rowPar, cbm::algo::trd::HitFinder2DModPar::translation, and cbm::algo::trd::HitFinderModPar::translation.
Hitfind::resultType cbm::algo::trd::Hitfind::operator() | ( | gsl::span< CbmTrdDigi > | digiIn | ) |
Algorithm execution.
fles | timeslice to hitfind |
Definition at line 119 of file trd/Hitfind.cxx.
References RunModuleParallelMerge(), and RunRowParallel().
Hitfind::resultType cbm::algo::trd::Hitfind::RunModuleParallelMerge | ( | gsl::span< CbmTrdDigi > | digiIn | ) |
Run merge step module-parallel all others row-parallel.
Definition at line 326 of file trd/Hitfind.cxx.
References buffer, CBM_OMP, CBM_PARALLEL, CBM_PARALLEL_FOR, fClusterBuild, fClusterBuild2d, fHitFind, fHitFind2d, fHitMerge, fHitMerge2d, fModId, fModList, fRowList, CbmTrdDigi::GetAddressChannel(), CbmTrdDigi::GetAddressModule(), cbm::algo::openmp::GetNumThreads(), cbm::algo::openmp::GetThreadNum(), CbmTrdDigi::IsFASP(), and L_.
Referenced by operator()().
Hitfind::resultType cbm::algo::trd::Hitfind::RunRowParallel | ( | gsl::span< CbmTrdDigi > | digiIn | ) |
Run all steps row-parallel.
Definition at line 130 of file trd/Hitfind.cxx.
References CBM_OMP, CBM_PARALLEL, CBM_PARALLEL_FOR, fClusterBuild, fClusterBuild2d, fHitFind, fHitFind2d, fHitMerge, fHitMerge2d, fModId, fModList, fRowList, CbmTrdDigi::GetAddressChannel(), CbmTrdDigi::GetAddressModule(), cbm::algo::openmp::GetNumThreads(), cbm::algo::openmp::GetThreadNum(), hits, CbmTrdDigi::IsFASP(), and L_.
Referenced by operator()().
|
private |
Definition at line 83 of file trd/Hitfind.h.
Referenced by Hitfind(), RunModuleParallelMerge(), and RunRowParallel().
|
private |
Cluster building algorithms per module.
Definition at line 82 of file trd/Hitfind.h.
Referenced by Hitfind(), RunModuleParallelMerge(), and RunRowParallel().
|
private |
Definition at line 87 of file trd/Hitfind.h.
Referenced by Hitfind(), RunModuleParallelMerge(), and RunRowParallel().
|
private |
Hit finding algorithms per module.
Definition at line 86 of file trd/Hitfind.h.
Referenced by Hitfind(), RunModuleParallelMerge(), and RunRowParallel().
|
private |
Definition at line 91 of file trd/Hitfind.h.
Referenced by Hitfind(), RunModuleParallelMerge(), and RunRowParallel().
|
private |
Hit merging algorithms per module.
Definition at line 90 of file trd/Hitfind.h.
Referenced by Hitfind(), RunModuleParallelMerge(), and RunRowParallel().
|
private |
Map from module address to module Id (sequential number)
Definition at line 100 of file trd/Hitfind.h.
Referenced by Hitfind(), RunModuleParallelMerge(), and RunRowParallel().
|
private |
List of modules (address, type flag (true = 2D), numRows, numCols)
Definition at line 94 of file trd/Hitfind.h.
Referenced by Hitfind(), RunModuleParallelMerge(), and RunRowParallel().
|
private |
List of rows (module address, type flag (true = 2D), row in module)
Definition at line 97 of file trd/Hitfind.h.
Referenced by Hitfind(), RunModuleParallelMerge(), and RunRowParallel().