20 SetName(
"BmnFHCalGeo");
31 if (std::regex_search(spath,
m, kFHCalRegex) &&
m.size() == 3) {
32 int mod = std::stoi(
m[1]);
33 int tyv = std::stoi(
m[2]);
34 int sec = ((tyv - 1) / 6) + 1;
35 int sc = ((tyv - 1) % 6) + 1;
39 LOG(error) << GetName() <<
" : No address for path " << spath;
49 int N = gGeoManager->CountNodes();
50 for (
int i = 0;
i < N; ++
i) {
51 gGeoManager->CdNode(
i);
52 auto* node = gGeoManager->GetCurrentNode();
63 double loc[3] = {0}, glb[3];
64 gGeoManager->LocalToMaster(loc, glb);
65 TVector3 pos(glb[0], glb[1], glb[2]);
67 err.SetZ(err.Z() * 2 * 5 * 6);
static uint32_t GetModuleId(uint32_t address)
Return Module id from address.
static uint32_t GetPhysicalAddress(uint32_t address)
Return Physical address (w/o scintillator id) from address.
static uint32_t GetAddress(uint32_t ModuleType, uint32_t ModuleId, uint32_t SectionId, uint32_t ScintillatorId=0)
Return address from system ID, Module type, Module ID, Section ID, Scintillator ID (optional).
static uint32_t GetScintillatorId(uint32_t address)
Return Scintillator id from address.
static const std::regex fElementPattern
static const TString fPathBeforeLocalSystem
static const TString fTopVolumeName
static bool CheckIfSensitive(std::string name)
static const TString fDetectorVolumeName
static const TString NICA_pattern
static bool CheckIfSensitive(const std::string &vol)
int GetMaxModuleId() const
static const char * PathBeforeLocalSystem()
static const char * DetectorVolumeName()
static const char * TopVolumeName()
uint32_t GetAddressFromPath(const std::string &spath)
TVector3 GetPosError(TGeoNode *node) const
by default: box‐half‐sizes
std::map< uint32_t, std::pair< TVector3, TVector3 > > fPositionMap