Belle II Software development
SVDSupportRibsPar.h
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#pragma once
9
10
11#include <TObject.h>
12#include <string>
13#include <vector>
14
15
16namespace Belle2 {
21
25
26 class SVDSupportBoxPar: public TObject {
27
28 public:
29
31 SVDSupportBoxPar(double theta, double zpos, double rpos, double length):
32 m_theta(theta), m_zpos(zpos), m_rpos(rpos), m_length(length)
33 {}
34
36 m_theta(0.), m_zpos(0.), m_rpos(0.), m_length(0.)
37 {}
38
40 double getTheta() const { return m_theta; }
42 double getZ() const { return m_zpos; }
44 double getR() const { return m_rpos; }
46 double getLength() const { return m_length; }
47
48 private:
49 double m_theta;
50 double m_zpos;
51 double m_rpos;
52 double m_length;
53
55 };
56
60
61 class SVDSupportTabPar: public TObject {
62
63 public:
64
66 SVDSupportTabPar(double theta, double zpos, double rpos):
67 m_theta(theta), m_zpos(zpos), m_rpos(rpos)
68 {}
69
71 m_theta(0.), m_zpos(0.), m_rpos(0.)
72 {}
73
75 double getTheta() const { return m_theta; }
77 double getZ() const { return m_zpos; }
79 double getR() const { return m_rpos; }
80
81 private:
82 double m_theta;
83 double m_zpos;
84 double m_rpos;
85
87 };
88
92
93 class SVDEndmountPar: public TObject {
94
95 public:
97 SVDEndmountPar(const std::string& name, double height, double width, double length, double zpos, double rpos):
98 m_name(name), m_height(height), m_width(width), m_length(length), m_zpos(zpos), m_rpos(rpos)
99 {}
100
102 m_name(""), m_height(0.), m_width(0.), m_length(0.), m_zpos(0.), m_rpos(0.)
103 {}
104
106 const std::string& getName() const { return m_name; }
108 double getHeight() const { return m_height; }
110 double getWidth() const { return m_width; }
112 double getLength() const { return m_length; }
114 double getZ() const { return m_zpos; }
116 double getR() const { return m_rpos; }
117
118 private:
119
120 std::string m_name;
121 double m_height;
122 double m_width;
123 double m_length;
124 double m_zpos;
125 double m_rpos;
126
128 };
129
130
131
135
136 class SVDSupportRibsPar: public TObject {
137
138 public:
140 SVDSupportRibsPar(double spacing, double height, double innerWidth, double outerWidth, double tabLength,
141 const std::string& outerMaterial, const std::string& innerMaterial, const std::string& outerColor, const std::string& innerColor,
142 const std::string& endmountMaterial):
143 m_spacing(spacing), m_height(height), m_innerWidth(innerWidth), m_outerWidth(outerWidth), m_tabLength(tabLength),
144 m_outerMaterial(outerMaterial), m_innerMaterial(innerMaterial), m_outerColor(outerColor), m_innerColor(innerColor),
145 m_endmountMaterial(endmountMaterial)
146 {}
147
152
153
155 double getSpacing() const { return m_spacing; }
157 void setSpacing(double spacing) { m_spacing = spacing; }
159 double getHeight() const { return m_height; }
161 void setHeight(double height) { m_height = height; }
163 double getInnerWidth() const { return m_innerWidth; }
165 double getOuterWidth() const { return m_outerWidth; }
167 double getTabLength() const { return m_tabLength; }
169 const std::string& getOuterMaterial() const { return m_outerMaterial; }
171 const std::string& getInnerMaterial() const { return m_innerMaterial; }
173 const std::string& getInnerColor() const { return m_innerColor; }
175 const std::string& getOuterColor() const { return m_outerColor; }
177 const std::string& getEndmountMaterial() const { return m_endmountMaterial; }
179 const std::vector<SVDSupportTabPar>& getTabs() const { return m_tabs; }
181 const std::vector<SVDSupportBoxPar>& getBoxes() const { return m_boxes; }
183 const std::vector<SVDEndmountPar>& getEndmounts() const { return m_endmounts; }
185 std::vector<SVDSupportTabPar>& getTabs() { return m_tabs; }
187 std::vector<SVDSupportBoxPar>& getBoxes() { return m_boxes; }
189 std::vector<SVDEndmountPar>& getEndmounts() { return m_endmounts; }
190
191 private:
192
193 // Get the common values for all layers
194 double m_spacing;
195 double m_height;
198 double m_tabLength;
199
200 std::string m_outerMaterial;
201 std::string m_innerMaterial;
202 std::string m_outerColor;
203 std::string m_innerColor;
204 std::string m_endmountMaterial;
205
206 std::vector<SVDSupportTabPar> m_tabs;
207 std::vector<SVDSupportBoxPar> m_boxes;
208 std::vector<SVDEndmountPar> m_endmounts;
209
211 };
212
214} // end of namespace Belle2
215
double getWidth() const
get width
double getHeight() const
get height
ClassDef(SVDEndmountPar, 5)
ClassDef, must be the last term before the closing {}.
const std::string & getName() const
get name
double getR() const
get r position
double getZ() const
get z position
SVDEndmountPar(const std::string &name, double height, double width, double length, double zpos, double rpos)
Constructor.
double getLength() const
get length
ClassDef(SVDSupportBoxPar, 5)
ClassDef, must be the last term before the closing {}.
SVDSupportBoxPar(double theta, double zpos, double rpos, double length)
Constructor.
double getR() const
get r position
double m_rpos
position in r
double getZ() const
get z position
double m_zpos
position in z
double getTheta() const
get theta
double getLength() const
get length
std::string m_endmountMaterial
endmount material
double getHeight() const
get height
double getInnerWidth() const
get inner width
const std::string & getOuterMaterial() const
get the name of outer material
std::vector< SVDSupportTabPar > & getTabs()
get tabs
double getTabLength() const
get tabLength
double getOuterWidth() const
get outer width
std::vector< SVDSupportTabPar > m_tabs
vector of svd supper tabs
const std::string & getOuterColor() const
get the name of outer color
void setSpacing(double spacing)
set spacing
std::string m_innerColor
inner material color
std::string m_outerColor
outer material color
const std::string & getInnerMaterial() const
get the name of inner material
std::vector< SVDEndmountPar > & getEndmounts()
get endmounts
double getSpacing() const
get spacing
void setHeight(double height)
set height
std::vector< SVDSupportBoxPar > m_boxes
vector of svd support boxes
std::string m_innerMaterial
inner material name
SVDSupportRibsPar(double spacing, double height, double innerWidth, double outerWidth, double tabLength, const std::string &outerMaterial, const std::string &innerMaterial, const std::string &outerColor, const std::string &innerColor, const std::string &endmountMaterial)
Constructor.
std::vector< SVDEndmountPar > m_endmounts
vector of svd endmounts
std::vector< SVDSupportBoxPar > & getBoxes()
get boxes
const std::string & getInnerColor() const
get the name of inner color
const std::vector< SVDSupportTabPar > & getTabs() const
get tabs
std::string m_outerMaterial
outer material name
const std::vector< SVDEndmountPar > & getEndmounts() const
get endmounts
const std::string & getEndmountMaterial() const
get the name of endmount material
const std::vector< SVDSupportBoxPar > & getBoxes() const
get boxes
ClassDef(SVDSupportRibsPar, 5)
ClassDef, must be the last term before the closing {}.
double getR() const
get r position
double getZ() const
get z position
SVDSupportTabPar(double theta, double zpos, double rpos)
Constructor.
double getTheta() const
get theta
ClassDef(SVDSupportTabPar, 5)
ClassDef, must be the last term before the closing {}.
Abstract base class for different kinds of events.