10#ifndef CbmGeoNodeMap_h
11#define CbmGeoNodeMap_h 1
21#include <unordered_map>
31 explicit GeoNodeMap(std::unordered_map<uint32_t, std::string>&& nodeMap);
57 template<
class Visitor>
60 using Property_t = std::invoke_result_t<Visitor, algo::GeoVolume>;
61 std::unordered_map<uint32_t, Property_t> res;
62 for (
const auto& [address, path] :
fNodeMap) {
94 std::unordered_map<uint32_t, std::string>
fNodeMap;
98 template<ECbmModuleId ModuleId>
ECbmModuleId
Enumerator for module Identifiers.
@ kMvd
Micro-Vertex Detector.
@ kTrd
Transition Radiation Detector.
@ kTof
Time-of-flight Detector.
@ kSts
Silicon Tracking System.
@ kMuch
Muon detection system.
Different utilities for the CbmOfflineRecoSetup library (source)
A class for a geometrical volume representation in the reconstruction setup.
static int32_t GetSystemId(uint32_t address)
auto GetVolumeProperties(Visitor &&visitor, ECbmModuleId moduleId) const
Read volume properties for a given ModuleId.
static uint32_t ApplyMask(uint32_t address, ECbmModuleId moduleId)
Applies mask.
algo::GeoVolume ReadGeoVolume(uint32_t address)
Read volume properties of the node.
const std::string & GetNodePath(uint32_t address) const
A common function to get a path of a node.
GeoNodeMap(std::unordered_map< uint32_t, std::string > &&nodeMap)
Constructor.
static uint32_t AlignableMask()
Mask for minimally alignable element.
std::unordered_map< uint32_t, std::string > fNodeMap
Map of geometrical nodes vs hardware address.
const auto & GetNodeMap() const
An accessor to the node map.
static uint32_t ApplyMask(uint32_t address)
Applies mask.
A representation of a geometrical volume of different tracking stations.
static algo::GeoVolume ReadVolume(const TString &path)
Creates a volume info from a geo node, provided by path.