Belle II Software  release-08-01-10
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 
16 namespace 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  {}
149  m_spacing(0.), m_height(0.), m_innerWidth(0.), m_outerWidth(0.), m_tabLength(0.),
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;
196  double m_innerWidth;
197  double m_outerWidth;
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 {}.
double getR() const
get r position
const std::string & getName() const
get name
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
std::vector< SVDSupportTabPar > & getTabs()
get tabs
double getTabLength() const
get tabLength
double getOuterWidth() const
get outer width
std::vector< SVDSupportBoxPar > & getBoxes()
get boxes
std::vector< SVDSupportTabPar > m_tabs
vector of svd supper tabs
void setSpacing(double spacing)
set spacing
std::string m_innerColor
inner material color
const std::vector< SVDSupportBoxPar > & getBoxes() const
get boxes
std::vector< SVDEndmountPar > & getEndmounts()
get endmounts
const std::string & getEndmountMaterial() const
get the name of endmount material
double m_outerWidth
outer width
const std::vector< SVDEndmountPar > & getEndmounts() const
get endmounts
double m_innerWidth
inner width
std::string m_outerColor
outer material color
const std::vector< SVDSupportTabPar > & getTabs() const
get tabs
const std::string & getOuterMaterial() const
get the name of outer material
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
const std::string & getInnerMaterial() const
get the name of inner material
std::string m_outerMaterial
outer material name
const std::string & getOuterColor() const
get the name of outer color
const std::string & getInnerColor() const
get the name of inner color
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.