31 e =
ECbmModuleId(
static_cast<std::underlying_type<ECbmModuleId>::type
>(e) + 1);
45static const std::array<std::pair<ECbmModuleId, std::string>, 23>
ModIdStrMap = {
73 [modId](std::pair<ECbmModuleId, std::string> p) { return p.first == modId; });
74 if (result == std::end(
ModIdStrMap)) {
return "NotExist"; }
75 return result->second;
81 [modIdStr](std::pair<ECbmModuleId, std::string> p) { return p.second == modIdStr; });
90 return p.second.size() == modIdStr.size()
91 && std::equal(p.second.begin(), p.second.end(), modIdStr.begin(),
92 [](unsigned char a, unsigned char b) { return std::tolower(a) == std::tolower(b); });
std::ostream & operator<<(std::ostream &strm, const ECbmModuleId &modId)
static const std::array< std::pair< ECbmModuleId, std::string >, 23 > ModIdStrMap
std::string ToString(ECbmModuleId modId)
ECbmModuleId ToCbmModuleIdCaseInsensitive(std::string modIdStr)
ECbmModuleId & operator++(ECbmModuleId &e)
ECbmModuleId ToCbmModuleId(std::string modIdStr)
XPU_D constexpr auto ToIntegralType(T enumerator) -> typename std::underlying_type< T >::type
@ kMvd
Micro-Vertex Detector.
@ kHodo
Hodoscope (for test beam times)
@ kTrd
Transition Radiation Detector.
@ kShield
Beam pipe shielding in MUCH section.
@ kTof
Time-of-flight Detector.
@ kPsd
Projectile spectator detector.
@ kSts
Silicon Tracking System.
@ kTrd2d
TRD-FASP Detector (FIXME)
@ kDummyDet
Dummy for tutorials or tests.
@ kLastModule
For loops over all modules.
@ kPlatform
RICH rail platform.
@ kMuch
Muon detection system.
@ kFsd
Forward spectator detector.
@ kNofSystems
For loops over active systems.
@ kRich
Ring-Imaging Cherenkov Detector.
TODO: SZh 8.11.2022: add selection of parameterisation.
EDetectorID ToCaDetectorID(ECbmModuleId modId)
Conversion map from EDetectorID to ECbmModuleId.
EDetectorID
Enumeration for the tracking detector subsystems in CBM-CA.
ECbmModuleId ToCbmModuleId(EDetectorID detID)
Conversion map from EDetectorID to ECbmModuleId.