Belle II Software development
CryostatGeo Class Reference

Geometry parameters of Cryostat. More...

#include <CryostatGeo.h>

Inheritance diagram for CryostatGeo:
IRGeoBase

Public Member Functions

 CryostatGeo ()
 Default constructor.
 
void initialize (const GearDir &content)
 Initialize from gearbox (xml file)
 
double getParameter (const std::string &name) const
 Get parameter value.
 
double getParameter (const std::string &name, double def) const
 Get parameter value with giving default value in case parameter doesn't exist in DB.
 
const std::string & getParameterStr (const std::string &name) const
 Get string parameter.
 
const std::string & getParameterStr (const std::string &name, const std::string &def) const
 Get string parameter with giving default value in case of non-existence.
 
const std::map< std::string, double > & getParameters () const
 Get map of all parameters.
 
const std::map< std::string, std::string > & getParametersStr () const
 Get map of all string parameters.
 
void addParameter (const std::string &name, double val)
 Add parameter to map of parameters.
 
void addParameter (const std::string &name, const std::string &val)
 Add string parameter to map of parameters.
 
void addParameters (const GearDir &content, const std::string &section)
 Add parameters from Gearbox.
 
void print () const
 Print all parameters.
 

Protected Member Functions

 ClassDef (IRGeoBase, 1)
 ClassDef.
 

Protected Attributes

std::map< std::string, double > m_params
 map of numeric parameters
 
std::map< std::string, std::string > m_strparams
 map of string parameters
 

Private Member Functions

 ClassDef (CryostatGeo, 1)
 ClassDef.
 

Detailed Description

Geometry parameters of Cryostat.

Definition at line 23 of file CryostatGeo.h.

Constructor & Destructor Documentation

◆ CryostatGeo()

CryostatGeo ( )
inline

Default constructor.

Definition at line 30 of file CryostatGeo.h.

31 {}

Member Function Documentation

◆ addParameter() [1/2]

void addParameter ( const std::string &  name,
const std::string &  val 
)
inlineinherited

Add string parameter to map of parameters.

Parameters
nameparameter name
valparameter value

Definition at line 111 of file IRGeoBase.h.

112 {
113 if (m_strparams.insert(std::pair<std::string, std::string>(name, val)).second) return;
114 else {
115 m_strparams.find(name)->second = val;
116 }
117 }
std::map< std::string, std::string > m_strparams
map of string parameters
Definition: IRGeoBase.h:162

◆ addParameter() [2/2]

void addParameter ( const std::string &  name,
double  val 
)
inlineinherited

Add parameter to map of parameters.

Parameters
nameparameter name
valparameter value

Definition at line 98 of file IRGeoBase.h.

99 {
100 if (m_params.insert(std::pair<std::string, double>(name, val)).second) return;
101 else {
102 m_params.find(name)->second = val;
103 }
104 }
std::map< std::string, double > m_params
map of numeric parameters
Definition: IRGeoBase.h:161

◆ addParameters()

void addParameters ( const GearDir content,
const std::string &  section 
)
inlineinherited

Add parameters from Gearbox.

Parameters
contentgearbox folder
sectionname of section of parameters to add

Definition at line 124 of file IRGeoBase.h.

125 {
126
127 for (const GearDir& slot : content.getNodes("sec")) {
128 std::string name = slot.getString("@name");
129 std::string unt = slot.getString("@unit");
130 double value;
131 if (unt.find("rad") != std::string::npos) value = slot.getAngle();
132 else value = slot.getLength();
133 addParameter(section + "." + name, value);
134 }
135 if (content.exists("Material")) addParameter(section + ".Material", content.getString("Material"));
136 if (content.exists("HeadMaterial")) addParameter(section + ".HeadMaterial", content.getString("HeadMaterial"));
137 if (content.exists("Intersect")) addParameter(section + ".Intersect", content.getString("Intersect"));
138 if (content.exists("Subtract")) addParameter(section + ".Subtract", content.getString("Subtract"));
139 if (content.exists("MotherVolume")) addParameter(section + ".MotherVolume", content.getString("MotherVolume"));
140 if (content.exists("N")) addParameter(section + ".N", double(content.getInt("N")));
141 if (content.exists("@type")) addParameter(section + ".type", content.getString("@type"));
142 };
void addParameter(const std::string &name, double val)
Add parameter to map of parameters.
Definition: IRGeoBase.h:98

◆ getParameter() [1/2]

double getParameter ( const std::string &  name) const
inlineinherited

Get parameter value.

Parameters
nameparameter name

Definition at line 41 of file IRGeoBase.h.

42 {
43 std::map<std::string, double>::const_iterator it = m_params.find(name);
44 if (it != m_params.end()) return (*it).second;
45 B2FATAL("Requested parameter from IR database not found: " << name);
46 }

◆ getParameter() [2/2]

double getParameter ( const std::string &  name,
double  def 
) const
inlineinherited

Get parameter value with giving default value in case parameter doesn't exist in DB.

Parameters
nameparameter name
defdefault parameter value

Definition at line 53 of file IRGeoBase.h.

54 {
55 std::map<std::string, double>::const_iterator it = m_params.find(name);
56 if (it != m_params.end()) return (*it).second;
57 return def;
58 }

◆ getParameters()

const std::map< std::string, double > & getParameters ( ) const
inlineinherited

Get map of all parameters.

Definition at line 86 of file IRGeoBase.h.

86{ return m_params;}

◆ getParametersStr()

const std::map< std::string, std::string > & getParametersStr ( ) const
inlineinherited

Get map of all string parameters.

Definition at line 91 of file IRGeoBase.h.

91{ return m_strparams;}

◆ getParameterStr() [1/2]

const std::string & getParameterStr ( const std::string &  name) const
inlineinherited

Get string parameter.

Parameters
nameparameter name

Definition at line 64 of file IRGeoBase.h.

65 {
66 std::map<std::string, std::string>::const_iterator it = m_strparams.find(name);
67 if (it != m_strparams.end()) return (*it).second;
68 B2FATAL("Requested parameter from IR database not found: " << name);
69 }

◆ getParameterStr() [2/2]

const std::string & getParameterStr ( const std::string &  name,
const std::string &  def 
) const
inlineinherited

Get string parameter with giving default value in case of non-existence.

Parameters
nameparameter name
defdefault parameter value

Definition at line 76 of file IRGeoBase.h.

77 {
78 std::map<std::string, std::string>::const_iterator it = m_strparams.find(name);
79 if (it != m_strparams.end()) return (*it).second;
80 return def;
81 }

◆ initialize()

void initialize ( const GearDir content)

Initialize from gearbox (xml file)

Parameters
contentgearbox folder

Definition at line 15 of file CryostatGeo.cc.

16{
17 //------------------------------
18 // Get Cryostat geometry parameters from the gearbox
19 //------------------------------
20
21 addParameter("LimitStepLength", content.getInt("LimitStepLength"));
22
23 std::vector<std::string> names = {"CrossingAngle", "TubeR", "TubeR2", "TubeL", "A1spc1", "A1spc2", "B1spc1", "B1spc2", "D1spc1", "E1spc1", "C1wal1", "F1wal1"};
24
25 for (auto name : names) {
26 GearDir sect(content, name + "/");
27 addParameters(sect, name);
28 }
29
30 std::string straightSections;
31 for (const GearDir& straight : content.getNodes("Straight")) {
32 std::string name = straight.getString("@name");
33 addParameters(straight, name);
34 if (!straightSections.empty()) straightSections += " ";
35 straightSections += name;
36 }
37 addParameter("Straight", straightSections);
38
39 std::string shields;
40 for (const GearDir& shield : content.getNodes("Shield")) {
41 std::string name = shield.getString("@name");
42 addParameters(shield, name);
43 if (!shields.empty()) shields += " ";
44 shields += name;
45 }
46 addParameter("Shield", shields);
47
48 std::string supports;
49 for (const GearDir& support : content.getNodes("Support")) {
50 std::string name = support.getString("@name");
51 addParameters(support, name);
52 if (!supports.empty()) supports += " ";
53 supports += name;
54 }
55 addParameter("Support", supports);
56}
GearDir is the basic class used for accessing the parameter store.
Definition: GearDir.h:31
void addParameters(const GearDir &content, const std::string &section)
Add parameters from Gearbox.
Definition: IRGeoBase.h:124

◆ print()

void print ( ) const
inlineinherited

Print all parameters.

Definition at line 147 of file IRGeoBase.h.

148 {
149 for (std::pair<std::string, double> element : m_params) {
150 std::cout << element.first << " " << element.second << std::endl;
151 }
152
153 for (std::pair<std::string, std::string> element : m_strparams) {
154 std::cout << element.first << " " << element.second << std::endl;
155 }
156 }

Member Data Documentation

◆ m_params

std::map<std::string, double> m_params
protectedinherited

map of numeric parameters

Definition at line 161 of file IRGeoBase.h.

◆ m_strparams

std::map<std::string, std::string> m_strparams
protectedinherited

map of string parameters

Definition at line 162 of file IRGeoBase.h.


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