9#include <arich/dbobjects/ARICHGeoMasterVolume.h>
19 return (*
m_rotation) * point + (*m_translation);
42 ROOT::Math::XYZVector translation(x, y, z);
45 ROOT::Math::RotationX rotX(
m_rx);
46 ROOT::Math::RotationY rotY(
m_ry);
47 ROOT::Math::RotationZ rotZ(
m_rz);
48 (*m_rotation) *= rotZ * rotY * rotX;
74 cout <<
"Positioning parameters (in Belle II global frame)" << endl;
virtual void printPlacement(double x, double y, double z, double rx, double ry, double rz) const
Print volume positioning parameters.
virtual void print(const std::string &title) const
Print the content of the class.
static std::string s_unitName
conversion unit name
bool isConsistent() const override
Check of geometry parameters consistency.
double m_innerR
tube inner radius
std::string m_material
material of ARICH master volume
double m_ry
rotation around y-axis
ROOT::Math::XYZVector pointToGlobal(const ROOT::Math::XYZVector &point) const
Transform local point into global Belle II coordinate system via rotation and translation.
double getOuterRadius() const
Get ARICH master volume outer radius.
double getInnerRadius() const
Get ARICH master volume inner radius.
ROOT::Math::XYZVector momentumToLocal(const ROOT::Math::XYZVector &momentum) const
Rotate global point into ARICH reference system via inverse rotation.
ROOT::Math::Rotation3D * m_rotationInverse
inverse rotation matrix of ARICH master volume
ROOT::Math::XYZVector pointToLocal(const ROOT::Math::XYZVector &point) const
Transform global point into ARICH reference system via inverse rotation and translation.
double m_length
tube length
void print(const std::string &title="ARICH Master Volume geometry parameters") const override
Print the content of the class.
double m_outerR
tube outer radius
ROOT::Math::XYZVector momentumToGlobal(const ROOT::Math::XYZVector &momentum) const
Rotate local momentum into global Belle II coordinate system.
void setPlacement(double x, double y, double z, double rx, double ry, double rz)
Sets positioning of ARICH master volume in global Belle II coordinate system.
double m_rz
rotation around z-axis
ROOT::Math::XYZVector * m_translation
position of ARICH master volume center point
ROOT::Math::Rotation3D * m_rotation
rotation matrix of ARICH master volume
double m_rx
rotation around x-axis
double getLength() const
Get ARICH master volume length.
Abstract base class for different kinds of events.