Belle II Software  release-08-01-10
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 
12 using namespace std;
13 using namespace Belle2;
14 
15 void 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 }
GearDir is the basic class used for accessing the parameter store.
Definition: GearDir.h:31
Abstract base class for different kinds of events.