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 {
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 {}
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;
55 };
56
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 {}
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;
87 };
88
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 {}
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;
128 };
129
130
131
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 {}
151 {}
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;
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;
206 std::vector<SVDSupportTabPar> m_tabs;
207 std::vector<SVDSupportBoxPar> m_boxes;
208 std::vector<SVDEndmountPar> m_endmounts;
211 };
212
214} // end of namespace Belle2
215
The Class for SVD Support Rib Endmounts.
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
The Class for SVD Support Box.
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_theta
theta angle
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
The Class for SVD Support Ribs (one layer)
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
double m_outerWidth
outer width
double m_innerWidth
inner width
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 {}.
The Class for SVD Support Rib Tab.
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.