10#include <framework/logging/Logger.h>
11#include <framework/gearbox/Unit.h>
13#include <arich/dbobjects/ARICHGeoBase.h>
15#include <Math/Vector3D.h>
16#include <Math/Rotation3D.h>
17#include <geometry/dbobjects/GeoOpticalSurface.h>
49 void print(
const std::string& title =
"Mirror configuration parameters")
const override;
143 if (mirID < 1 || mirID >
m_normVector.size()) B2ERROR(
"ARICHGeoMirrors: invalid mirror plate ID number");
144 m_normVector[mirID - 1] = ROOT::Math::XYZVector(x, y, z).Unit();
156 if (mirID < 1 || mirID >
m_nMirrors) B2ERROR(
"ARICHGeoMirrors: invalid mirror plate ID number");
157 m_point[mirID - 1] = ROOT::Math::XYZVector(x, y, z);
179 if (mirID < 1 || mirID >
m_nMirrors) B2ERROR(
"ARICHGeoMirrors: invalid mirror plate ID number");
188 const ROOT::Math::XYZVector&
getPoint(
const unsigned mirID)
const
190 if (mirID < 1 || mirID >
m_nMirrors) B2ERROR(
"ARICHGeoMirrors: invalid mirror plate ID number");
207 if (mirID < 1 || mirID >
m_nMirrors) B2ERROR(
"ARICHGeoMirrors: invalid mirror plate ID number");
218 if (mirID < 1 || mirID >
m_nMirrors) B2ERROR(
"ARICHGeoMirrors: invalid mirror plate ID number");
Base class for geometry parameters.
static double s_unit
conversion unit for length
Geometry parameters of HAPD.
bool isConsistent() const override
Consistency check of geometry parameters.
void initializeDefault()
Initializes default mirror position parameters (assuming plate position on the regular m_nMirrors-sid...
double m_radius
nominal radius at which mirror plates are placed
std::string m_material
material of mirror plates
void print(const std::string &title="Mirror configuration parameters") const override
Print the content of the class.
double m_plateWidth
width of mirror plate
const GeoOpticalSurface & getMirrorSurface() const
Returns mirror reflective optical surface.
double getZPosition() const
Get nominal Z position of mirror plates (center point in ARICH local frame)
void setMirrorNormVector(unsigned mirID, double x, double y, double z)
Set normal vector of the i-th mirror plate surface.
unsigned getNMirrors() const
Get number of mirror plates.
double getPlateWidth() const
Get width of mirror plate.
const ROOT::Math::XYZVector & getPoint(const unsigned mirID) const
Get vector to the center point of the mirror plate reflective surface.
ClassDefOverride(ARICHGeoMirrors, 2)
ClassDef.
double m_plateLength
length of mirror plate
const ROOT::Math::XYZVector & getNormVector(const unsigned mirID) const
Get normal vector of the i-th mirror plate surface.
std::vector< bool > m_installed
vector of installed/not installed flags of all mirror plates
void setRadius(double r)
Set nominal radius at which mirror plates are placed (center of plate)
void setNMirrors(unsigned nmir)
Set number of mirror plates (slots)
ARICHGeoMirrors()
Default constructor.
GeoOpticalSurface m_surface
optical surface of mirror plates
void setInstalled(unsigned mirID, bool installed)
Set mirror plate installed/not installed (only installed plates are placed)
void setMirrorPoint(unsigned mirID, double x, double y, double z)
Set vector to the center point of the mirror plate reflective surface.
std::vector< ROOT::Math::XYZVector > m_point
vector of points on the reflective surface of all mirror plates
void setStartAngle(double stang)
Set phi angle of position of the first mirror plate.
const std::string & getMaterial() const
Get material name of mirror plates.
double m_startAngle
phi angle of the center of the 1st mirror plate
double getPlateLength() const
Get length of mirror plate.
std::vector< ROOT::Math::XYZVector > m_normVector
vector of normal vectors of all mirror plates
double getRadius() const
Get nominal radius at which mirror plates are placed (center of plate)
double m_z
nominal Z position of mirror plates
double getStartAngle() const
Get phi angle of position of the first mirror plate.
bool isInstalled(unsigned mirID) const
Check if i-th mirror plate is installed.
double getPlateThickness() const
Get thickness of mirror plate.
void setMirrorPlate(double thick, double width, double length, const std::string &material, const GeoOpticalSurface &surf)
Set parameters of mirror plate.
double m_plateThickness
thickness of mirror plate
unsigned m_nMirrors
number of mirror plates (slots)
void setZPosition(double zPos)
Set nominal Z position of mirror plates (center point in ARICH local frame)
Represent an optical finish of a surface.
Abstract base class for different kinds of events.