Position element for ARICH.
More...
#include <ARICHPositionElement.h>
|
| ARICHPositionElement () |
| Default constructor.
|
|
| ARICHPositionElement (double x, double y, double z, double alpha, double beta, double gamma, const std::string &name="ARICHAlignment") |
| Full constructor.
|
|
void | setX (double x) |
| Sets translation in x.
|
|
void | setY (double y) |
| Sets translation in y.
|
|
void | setZ (double z) |
| Sets translation in z.
|
|
void | setRPhi (double r, double phi) |
| Sets x,y from r,phi.
|
|
void | setAlpha (double alpha) |
| Sets rotation around x.
|
|
void | setBeta (double beta) |
| Sets rotation around y.
|
|
void | setGamma (double gamma) |
| Sets rotation around z.
|
|
void | addShift (double dx, double dy, double dz, double dalpha, double dbeta, double dgamma) |
| Shift the existing values of parameters.
|
|
double | getX () const |
| Returns translation in x.
|
|
double | getY () const |
| Returns translation in y.
|
|
double | getZ () const |
| Returns translation in z.
|
|
double | getAlpha () const |
| Returns rotation angle around x.
|
|
double | getBeta () const |
| Returns rotation angle around y.
|
|
double | getGamma () const |
| Returns rotation angle around z.
|
|
ROOT::Math::Rotation3D | getRotation () const |
| Returns rotation matrix.
|
|
ROOT::Math::XYZVector | getTranslation () const |
| Returns translation vector (always in basf2 units!)
|
|
bool | isConsistent () const override |
| Check for consistency of data members.
|
|
void | print (const std::string &title="Parameters of position element") const override |
| Print the content of the class.
|
|
void | setName (const std::string &name) |
| Sets object name.
|
|
const std::string & | getName () const |
| Returns object name.
|
|
virtual void | printSurface (const GeoOpticalSurface &surface) const |
| Print the content of optical surface.
|
|
virtual void | printPlacement (double x, double y, double z, double rx, double ry, double rz) const |
| Print volume positioning parameters.
|
|
|
std::string | m_name |
| geometry object name
|
|
|
float | m_x = 0 |
| translation in x
|
|
float | m_y = 0 |
| translation in y
|
|
float | m_z = 0 |
| translation in z
|
|
float | m_alpha = 0 |
| rotation angle around x
|
|
float | m_beta = 0 |
| rotation angle around y
|
|
float | m_gamma = 0 |
| rotation angle around z
|
|
Position element for ARICH.
Holding parameters for displacement and alignment of arich components
Definition at line 29 of file ARICHPositionElement.h.
◆ ARICHPositionElement() [1/2]
◆ ARICHPositionElement() [2/2]
ARICHPositionElement |
( |
double | x, |
|
|
double | y, |
|
|
double | z, |
|
|
double | alpha, |
|
|
double | beta, |
|
|
double | gamma, |
|
|
const std::string & | name = "ARICHAlignment" ) |
|
inline |
Full constructor.
- Parameters
-
x | translation in x |
y | translation in y |
z | translation in z |
alpha | rotation angle around x |
beta | rotation angle around y |
gamma | rotation angle around z |
name | object name |
Definition at line 48 of file ARICHPositionElement.h.
49 :
50 ARICHGeoBase(name),
51 m_x(x), m_y(y), m_z(z),
52 m_alpha(alpha), m_beta(beta), m_gamma(gamma)
53 {}
◆ ~ARICHPositionElement()
◆ addShift()
void addShift |
( |
double | dx, |
|
|
double | dy, |
|
|
double | dz, |
|
|
double | dalpha, |
|
|
double | dbeta, |
|
|
double | dgamma ) |
|
inline |
Shift the existing values of parameters.
- Parameters
-
dx | translation in x |
dy | translation in y |
dz | translation in z |
dalpha | rotation angle around x |
dbeta | rotation angle around y |
dgamma | rotation angle around z |
Definition at line 116 of file ARICHPositionElement.h.
117 {
118 m_x += dx;
119 m_y += dy;
120 m_z += dz;
121 m_alpha += dalpha;
122 m_beta += dbeta;
123 m_gamma += dgamma;
124 };
◆ getAlpha()
double getAlpha |
( |
| ) |
const |
|
inline |
◆ getBeta()
◆ getGamma()
double getGamma |
( |
| ) |
const |
|
inline |
◆ getName()
const std::string & getName |
( |
| ) |
const |
|
inlineinherited |
Returns object name.
- Returns
- object name
Definition at line 49 of file ARICHGeoBase.h.
◆ getRotation()
ROOT::Math::Rotation3D getRotation |
( |
| ) |
const |
|
inline |
Returns rotation matrix.
- Returns
- rotation matrix
Definition at line 166 of file ARICHPositionElement.h.
167 {
168 ROOT::Math::Rotation3D rot;
169 ROOT::Math::RotationX rotX(m_alpha);
170 ROOT::Math::RotationY rotY(m_beta);
171 ROOT::Math::RotationZ rotZ(m_gamma);
172 rot *= rotZ * rotY * rotX;
173 return rot;
174 }
◆ getTranslation()
ROOT::Math::XYZVector getTranslation |
( |
| ) |
const |
|
inline |
Returns translation vector (always in basf2 units!)
- Returns
- translation vector
Definition at line 180 of file ARICHPositionElement.h.
180{return ROOT::Math::XYZVector(m_x, m_y, m_z);}
◆ getX()
Returns translation in x.
- Returns
- x coordinate
Definition at line 130 of file ARICHPositionElement.h.
130{return m_x / s_unit;}
◆ getY()
Returns translation in y.
- Returns
- y coordinate
Definition at line 136 of file ARICHPositionElement.h.
136{return m_y / s_unit;}
◆ getZ()
Returns translation in z.
- Returns
- z coordinate
Definition at line 142 of file ARICHPositionElement.h.
142{return m_z / s_unit;}
◆ isConsistent()
bool isConsistent |
( |
| ) |
const |
|
inlineoverridevirtual |
◆ print()
void print |
( |
const std::string & | title = "Parameters of position element" | ) |
const |
|
inlineoverridevirtual |
Print the content of the class.
- Parameters
-
Reimplemented from ARICHGeoBase.
Definition at line 192 of file ARICHPositionElement.h.
193 {
194 std::cout << title << std::endl;
195 std::cout << "translations (x,y,z): " << m_x << " " << m_y << " " << m_z << std::endl;
196 std::cout << "rotations (x,y,z axis): " << m_alpha << " " << m_beta << " " << m_gamma << std::endl;
197
198 }
◆ printPlacement()
void printPlacement |
( |
double | x, |
|
|
double | y, |
|
|
double | z, |
|
|
double | rx, |
|
|
double | ry, |
|
|
double | rz ) const |
|
virtualinherited |
Print volume positioning parameters.
- Parameters
-
x | x position |
y | y position |
z | z position |
rx | rotation around x-axis |
ry | rotation around y-axis |
rz | rotation around z-axis |
Definition at line 25 of file ARICHGeoBase.cc.
26{
27
29 << endl;
30 cout << " Rotations; x-axis: " << rx << " y-axis: " << ry << " z-axis: " << rz << " (in rad)" << endl;
31}
static std::string s_unitName
conversion unit name
◆ printSurface()
Print the content of optical surface.
- Parameters
-
surface | optical surface parameters |
Definition at line 32 of file ARICHGeoBase.cc.
33{
34 cout << " Optical surface: ";
36 cout << "not defined" << endl;
37 return;
38 }
40 cout <<
", model: " << surface.
getModel();
41 cout <<
", finish: " << surface.
getFinish();
42 cout <<
", type: " << surface.
getType();
43 cout <<
", value: " << surface.
getValue();
44 cout << endl;
47 cout << " - property: ";
48 cout << property.getName() << " [";
49 for (const auto& value : property.getValues()) cout << value << ", ";
50 cout << "], @[";
51 for (
const auto& value : property.getEnergies()) cout << value /
Unit::eV <<
", ";
52 cout << "] eV" << endl;
53 }
54 } else {
55 cout << " - properties: None" << endl;
56 }
57
58}
const std::string & getName() const
get name of the optical surface
int getFinish() const
get finish of the surface
const std::vector< GeoMaterialProperty > & getProperties() const
get all properties
double getValue() const
get value for the surface condition
int getType() const
get type of the surface
bool hasProperties() const
check if the material has at least one property
int getModel() const
get model for the surface
static const double eV
[electronvolt]
◆ setAlpha()
void setAlpha |
( |
double | alpha | ) |
|
|
inline |
◆ setBeta()
void setBeta |
( |
double | beta | ) |
|
|
inline |
◆ setGamma()
void setGamma |
( |
double | gamma | ) |
|
|
inline |
◆ setName()
void setName |
( |
const std::string & | name | ) |
|
|
inlineinherited |
◆ setRPhi()
void setRPhi |
( |
double | r, |
|
|
double | phi ) |
|
inline |
Sets x,y from r,phi.
- Parameters
-
Definition at line 81 of file ARICHPositionElement.h.
82 {
83 m_x = r * cos(phi / Unit::rad);
84 m_y = r * sin(phi / Unit::rad);
85 }
◆ setX()
◆ setY()
◆ setZ()
◆ m_alpha
◆ m_beta
◆ m_gamma
◆ m_name
◆ m_x
◆ m_y
◆ m_z
◆ s_unit
◆ s_unitName
The documentation for this class was generated from the following file: