BmnRoot
Loading...
Searching...
No Matches
BmnNdetGeoPar.h
Go to the documentation of this file.
1/*************************************************************************************
2 *
3 * Class BmnNdetGeoPar
4 *
5 * Adopted for BMN by: Elena Litvinenko
6 * e-mail: litvin@nf.jinr.ru
7 * Version: 06-11-2015
8 * Modified by M.Golubeva July 2022
9 *
10 ************************************************************************************/
11
12#ifndef BMNGEONDETPAR_H
13#define BMNGEONDETPAR_H
14
15#include "FairParGenericSet.h"
16#include "TObjArray.h"
17#include "regex"
18
19class BmnNdetGeoPar : public FairParGenericSet
20{
21 public:
22 TObjArray* fGeoSensNodes;
23 TObjArray* fGeoPassNodes;
25 BmnNdetGeoPar(const char* name = "BmnNdetGeoPar",
26 const char* title = "Ndet Geometry Parameters",
27 const char* context = "NdetDefaultContext");
28 ~BmnNdetGeoPar(void);
29 void clear(void);
30 void putParams(FairParamList*);
31 Bool_t getParams(FairParamList*);
32 TObjArray* GetGeoSensitiveNodes() { return fGeoSensNodes; }
33 TObjArray* GetGeoPassiveNodes() { return fGeoPassNodes; }
34
35 static bool CheckIfSensitive(std::string name);
36
37 static inline const TString fTopVolumeName = "TOP";
38 static inline const TString fCommonVolumeName = "NDET_common";
39 static inline const TString fEnvelopeVolumeName = "ndet01";
40 static inline const TString fDetectorVolumeName = "interior";
41 static inline const TString fModuleVolumeName = "ndet01m_NICA";
42 static inline const TString Pb_name_NICA_5mm = "ndet01a_NICA_5mm";
43 static inline const TString Pb_name_NICA_10mm = "ndet01a_NICA_10mm";
44 static inline const TString Air_name_NICA = "ndet01air_NICA";
45 static inline const TString Air_name_NICA_2mm = "ndet01air_NICA_2mm";
46 static inline const TString G10_name_NICA = "ndet01g10_NICA";
47 static inline const TString PLA_name_NICA = "ndet01pla_NICA";
48 static inline const TString SensitiveVolume_name_NICA = "ndet01s_NICA";
49 static inline const TString SensitiveVolume_name_VETO = "ndet01s_VETO";
50
51 static inline const TString Cu_name_NICA = "ndet01a_NICA"; // Cu
52 static inline const TString Al_name_NICA = "ndet01Al_NICA"; // Al
53 static inline const TString Pb_name_NICA = "ndet01Pb_NICA"; // Pb
54
55 static inline const TString Al_edge_vert = "ndet01Al_edge_vert";
56 static inline const TString Al_edge_hor_front = "ndet01Al_edge_hor_front";
57 static inline const TString Al_edge_hor_side = "ndet01Al_edge_hor_side";
58
59 static inline const TString fPathBeforeLocalSystem = "/NDET_common_0/";
60 // pattern to retrieve information about element indexes from its node path in geo file
61 static inline const std::regex fElementPattern{R"(.*\/ndet01_(\d+)(?:\/[^/]*)*\/ndet01m_NICA_(\d+)_(\d+)_(\d+))"};
62 static inline const std::regex fArmPattern{R"(.*\/ndet01_(\d+))"};
63
64 ClassDef(BmnNdetGeoPar, 4)
65};
66
67#endif /* !BMNGEONDETPAR_H */
static const TString Cu_name_NICA
static const TString G10_name_NICA
TObjArray * fGeoPassNodes
static const TString fDetectorVolumeName
static const TString fEnvelopeVolumeName
static const TString PLA_name_NICA
static const TString fPathBeforeLocalSystem
TObjArray * GetGeoSensitiveNodes()
static const TString Pb_name_NICA_10mm
static const std::regex fArmPattern
TObjArray * GetGeoPassiveNodes()
static const TString Al_name_NICA
static const TString Al_edge_vert
void clear(void)
static const TString Air_name_NICA
static const TString Al_edge_hor_side
static const TString fModuleVolumeName
Bool_t getParams(FairParamList *)
static const TString Pb_name_NICA_5mm
static const TString Pb_name_NICA
static const TString Al_edge_hor_front
static const TString Air_name_NICA_2mm
static bool CheckIfSensitive(std::string name)
static const TString SensitiveVolume_name_VETO
void putParams(FairParamList *)
static const std::regex fElementPattern
static const TString fTopVolumeName
TObjArray * fGeoSensNodes
static const TString SensitiveVolume_name_NICA
static const TString fCommonVolumeName