CbmRoot
Loading...
Searching...
No Matches
cbm::GeoNodeMap Class Reference

A class to keep paths to nodes vs. hardware addresses for different detectors. More...

#include <CbmGeoNodeMap.h>

Public Member Functions

 GeoNodeMap (std::unordered_map< uint32_t, std::string > &&nodeMap)
 Constructor.
 
const std::string & GetNodePath (uint32_t address) const
 A common function to get a path of a node.
 
const auto & GetNodeMap () const
 An accessor to the node map.
 
algo::GeoVolume ReadGeoVolume (uint32_t address)
 Read volume properties of the node.
 
template<class Visitor>
auto GetVolumeProperties (Visitor &&visitor, ECbmModuleId moduleId) const
 Read volume properties for a given ModuleId.
 

Static Public Member Functions

static uint32_t ApplyMask (uint32_t address, ECbmModuleId moduleId)
 Applies mask.
 
static uint32_t ApplyMask (uint32_t address)
 Applies mask.
 

Static Private Member Functions

template<ECbmModuleId ModuleId>
static uint32_t AlignableMask ()
 Mask for minimally alignable element.
 

Private Attributes

std::unordered_map< uint32_t, std::string > fNodeMap
 Map of geometrical nodes vs hardware address.
 

Detailed Description

A class to keep paths to nodes vs. hardware addresses for different detectors.

Definition at line 27 of file CbmGeoNodeMap.h.

Constructor & Destructor Documentation

◆ GeoNodeMap()

GeoNodeMap::GeoNodeMap ( std::unordered_map< uint32_t, std::string > && nodeMap)
explicit

Constructor.

Parameters
nodeMapA map for address->geo node

Definition at line 18 of file CbmGeoNodeMap.cxx.

References fNodeMap.

Member Function Documentation

◆ AlignableMask()

template<ECbmModuleId ModuleId>
static uint32_t cbm::GeoNodeMap::AlignableMask ( )
inlinestaticprivate

Mask for minimally alignable element.

Definition at line 99 of file CbmGeoNodeMap.h.

References kMuch, kMvd, kSts, kTof, and kTrd.

Referenced by ApplyMask().

◆ ApplyMask() [1/2]

static uint32_t cbm::GeoNodeMap::ApplyMask ( uint32_t address)
inlinestatic

Applies mask.

Parameters
addressSoftware address of detector element

Definition at line 87 of file CbmGeoNodeMap.h.

References ApplyMask(), and CbmAddress::GetSystemId().

◆ ApplyMask() [2/2]

static uint32_t cbm::GeoNodeMap::ApplyMask ( uint32_t address,
ECbmModuleId moduleId )
inlinestatic

Applies mask.

Parameters
addressSoftware address of detector element
moduleIdCBM module identifier

Definition at line 73 of file CbmGeoNodeMap.h.

References AlignableMask(), kMuch, kMvd, kSts, kTof, and kTrd.

Referenced by ApplyMask(), cbm::ca::IdealHitProducerDet< DetID >::FillPointIsLegit(), and GetNodePath().

◆ GetNodeMap()

const auto & cbm::GeoNodeMap::GetNodeMap ( ) const
inline

An accessor to the node map.

Definition at line 45 of file CbmGeoNodeMap.h.

References fNodeMap.

◆ GetNodePath()

const std::string & cbm::GeoNodeMap::GetNodePath ( uint32_t address) const
inline

A common function to get a path of a node.

Parameters
addressSoftware address of detector element

Definition at line 35 of file CbmGeoNodeMap.h.

References ApplyMask(), and fNodeMap.

Referenced by ReadGeoVolume().

◆ GetVolumeProperties()

template<class Visitor>
auto cbm::GeoNodeMap::GetVolumeProperties ( Visitor && visitor,
ECbmModuleId moduleId ) const
inline

Read volume properties for a given ModuleId.

Template Parameters
VisitorA type of callable, which returns a desired volume property
Parameters
visitorA callable object
moduleIdCBM module identifier for a subsystem to read nodes
Returns
A map of volume properties

Definition at line 58 of file CbmGeoNodeMap.h.

References fNodeMap, CbmAddress::GetSystemId(), and cbm::RecoSetupUtils::ReadVolume().

◆ ReadGeoVolume()

cbm::algo::GeoVolume GeoNodeMap::ReadGeoVolume ( uint32_t address)

Read volume properties of the node.

Parameters
addressof the element

Definition at line 25 of file CbmGeoNodeMap.cxx.

References GetNodePath(), CbmAddress::GetSystemId(), and cbm::RecoSetupUtils::ReadVolume().

Member Data Documentation

◆ fNodeMap

std::unordered_map<uint32_t, std::string> cbm::GeoNodeMap::fNodeMap
private

Map of geometrical nodes vs hardware address.

Definition at line 94 of file CbmGeoNodeMap.h.

Referenced by GeoNodeMap(), GetNodeMap(), GetNodePath(), and GetVolumeProperties().


The documentation for this class was generated from the following files: