Belle II Software development
CryostatGeo.cc
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8
9#include <framework/gearbox/GearDir.h>
10#include <ir/dbobjects/CryostatGeo.h>
11
12using namespace std;
13using namespace Belle2;
14
15void CryostatGeo::initialize(const GearDir& content)
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}
void initialize(const GearDir &content)
Initialize from gearbox (xml file)
Definition: CryostatGeo.cc:15
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
void addParameter(const std::string &name, double val)
Add parameter to map of parameters.
Definition: IRGeoBase.h:98
Abstract base class for different kinds of events.
STL namespace.