BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnHodoGeo.h
Go to the documentation of this file.
1
#ifndef BMNHODOGEO_H
2
#define BMNHODOGEO_H
3
4
#include "BmnGeoTemplate.h"
5
#include "
BmnHodoAddress.h
"
6
#include "
BmnHodoGeoPar.h
"
7
8
#include <regex>
9
10
static
const
std::regex
kHodoRegex
{
BmnHodoGeoPar::fElementPattern
};
11
12
class
BmnHodoGeo
13
:
public
FairGeoSet
14
,
public
BmnGeoTemplate
<BmnHodoGeo>
15
{
16
public
:
17
BmnHodoGeo
()
18
:
FairGeoSet
()
19
{
20
SetName(
"BmnHodoGeo"
);
21
}
22
23
static
bool
CheckIfSensitive
(
const
std::string& vol) {
return
BmnHodoGeoPar::CheckIfSensitive
(vol); }
24
static
const
char
*
PathBeforeLocalSystem
() {
return
BmnHodoGeoPar::fPathBeforeLocalSystem
; }
25
static
const
char
*
DetectorVolumeName
() {
return
BmnHodoGeoPar::fDetectorVolumeName
; }
26
static
const
char
*
TopVolumeName
() {
return
BmnHodoGeoPar::fTopVolumeName
; }
27
28
uint32_t
GetAddressFromPath
(
const
std::string& spath)
const
29
{
30
std::smatch
m
;
31
if
(std::regex_search(spath,
m
,
kHodoRegex
) &&
m
.size() == 2) {
32
return
BmnHodoAddress::GetAddress
(std::stoi(
m
[1]), 0, 0);
33
}
34
LOG(error) << GetName() <<
": no address for "
<< spath;
35
return
0;
36
}
37
38
int
GetMaxStripId
()
const
39
{
40
uint32_t mx = 0;
41
for
(
auto
& kv :
fPositionMap
) {
42
mx = std::max(mx,
BmnHodoAddress::GetStripId
(kv.first));
43
}
44
return
mx;
45
}
46
47
ClassDef
(
BmnHodoGeo
, 1)
48
};
49
50
#endif
// BMNHODOGEO_H
m
__m128 m
Definition
P4_F32vec4.h:27
ClassDef
#define ClassDef(name, id)
BmnGeoTemplate< BmnHodoGeo >::BmnGeoTemplate
BmnGeoTemplate()=default
BmnGeoTemplate< BmnHodoGeo >::fPositionMap
std::map< uint32_t, std::pair< TVector3, TVector3 > > fPositionMap
Definition
BmnGeoTemplate.h:157
BmnHodoAddress::GetStripId
static uint32_t GetStripId(uint32_t address)
Return Strip id from address.
Definition
BmnHodoAddress.h:60
BmnHodoAddress::GetAddress
static uint32_t GetAddress(uint32_t StripId, uint32_t StripSide, uint32_t Gain)
Return address from system ID, StripId, StripSide, Gain.
Definition
BmnHodoAddress.h:35
BmnHodoGeoPar::CheckIfSensitive
static bool CheckIfSensitive(std::string name)
Definition
BmnHodoGeoPar.cxx:54
BmnHodoGeoPar::fPathBeforeLocalSystem
static const TString fPathBeforeLocalSystem
Definition
BmnHodoGeoPar.h:33
BmnHodoGeoPar::fTopVolumeName
static const TString fTopVolumeName
Definition
BmnHodoGeoPar.h:26
BmnHodoGeoPar::fElementPattern
static const std::regex fElementPattern
Definition
BmnHodoGeoPar.h:35
BmnHodoGeoPar::fDetectorVolumeName
static const TString fDetectorVolumeName
Definition
BmnHodoGeoPar.h:28
BmnHodoGeo
Definition
BmnHodoGeo.h:15
BmnHodoGeo::PathBeforeLocalSystem
static const char * PathBeforeLocalSystem()
Definition
BmnHodoGeo.h:24
BmnHodoGeo::GetAddressFromPath
uint32_t GetAddressFromPath(const std::string &spath) const
Definition
BmnHodoGeo.h:28
BmnHodoGeo::DetectorVolumeName
static const char * DetectorVolumeName()
Definition
BmnHodoGeo.h:25
BmnHodoGeo::GetMaxStripId
int GetMaxStripId() const
Definition
BmnHodoGeo.h:38
BmnHodoGeo::BmnHodoGeo
BmnHodoGeo()
Definition
BmnHodoGeo.h:17
BmnHodoGeo::TopVolumeName
static const char * TopVolumeName()
Definition
BmnHodoGeo.h:26
BmnHodoGeo::CheckIfSensitive
static bool CheckIfSensitive(const std::string &vol)
Definition
BmnHodoGeo.h:23
FairGeoSet
BmnHodoAddress.h
BmnHodoGeoPar.h
kHodoRegex
static const std::regex kHodoRegex
Definition
BmnHodoGeo.h:10
kHodoRegex
static const std::regex kHodoRegex
Definition
BmnHodoGeo.h:10
detectors
hodo
BmnHodoGeo.h
Generated on
for BmnRoot by
1.17.0