11#include <arich/dbobjects/ARICHGeoBase.h>
12#include <framework/gearbox/Unit.h>
13#include <Math/Vector3D.h>
14#include <Math/Rotation3D.h>
15#include <Math/RotationX.h>
16#include <Math/RotationY.h>
17#include <Math/RotationZ.h>
49 double alpha,
double beta,
double gamma,
const std::string& name =
"ARICHAlignment"):
116 void addShift(
double dx,
double dy,
double dz,
double dalpha,
double dbeta,
double dgamma)
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;
192 void print(
const std::string& title =
"Parmeters of position element")
const override
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;
Base class for geometry parameters.
static double s_unit
conversion unit for length
Position element for ARICH.
float m_beta
rotation angle around y
void setRPhi(double r, double phi)
Sets x,y from r,phi.
bool isConsistent() const override
Check for consistency of data members.
ARICHPositionElement(double x, double y, double z, double alpha, double beta, double gamma, const std::string &name="ARICHAlignment")
Full constructor.
double getGamma() const
Returns rotation angle around z.
double getX() const
Returns translation in x.
void setBeta(double beta)
Sets rotation around y.
ClassDefOverride(ARICHPositionElement, 1)
ClassDef.
void setZ(double z)
Sets translation in z.
double getAlpha() const
Returns rotation angle around x.
ARICHPositionElement()
Default constructor.
void setAlpha(double alpha)
Sets rotation around x.
ROOT::Math::Rotation3D getRotation() const
Returns rotation matrix.
ROOT::Math::XYZVector getTranslation() const
Returns translation vector (always in basf2 units!)
void setY(double y)
Sets translation in y.
void setGamma(double gamma)
Sets rotation around z.
double getZ() const
Returns translation in z.
void setX(double x)
Sets translation in x.
double getY() const
Returns translation in y.
float m_y
translation in y
float m_alpha
rotation angle around x
float m_z
translation in z
float m_gamma
rotation angle around z
float m_x
translation in x
void print(const std::string &title="Parmeters of position element") const override
Print the content of the class.
void addShift(double dx, double dy, double dz, double dalpha, double dbeta, double dgamma)
Shift the existing values of parameters.
double getBeta() const
Returns rotation angle around y.
static const double rad
Standard of [angle].
Abstract base class for different kinds of events.