 |
Belle II Software
release-05-01-25
|
13 #include <framework/logging/Logger.h>
14 #include <arich/dbobjects/ARICHGeoBase.h>
17 #include <TRotation.h>
29 class ARICHGeoDetectorPlane:
public ARICHGeoBase {
50 void print(
const std::string& title =
"Detector plane parameters")
const override;
70 void addSupportPlate(
double inR,
double outR,
double thick,
const std::string& material)
108 void setRingPar(
const std::vector<std::pair<double, double>>& ringPar);
200 double getRingR(
unsigned iRing)
const {
if (iRing == 0 || iRing >
m_nRings) B2ERROR(
"ARICHGeoDetectorPlane: invalid module ring number!");
return m_ringPar[iRing - 1].first /
s_unit;}
207 double getRingDPhi(
unsigned iRing)
const {
if (iRing == 0 || iRing >
m_nRings) B2ERROR(
"ARICHGeoDetectorPlane: invalid module ring number!");
return m_ringPar[iRing - 1].second;}
214 double getSlotR(
unsigned modID)
const {
if (modID == 0 || modID >
m_nSlots) B2ERROR(
"ARICHGeoDetectorPlane: invalid module ID number!");
return m_slotPar[modID - 1].first /
s_unit;};
221 double getSlotPhi(
unsigned modID)
const {
if (modID == 0 || modID >
m_nSlots) B2ERROR(
"ARICHGeoDetectorPlane: invalid module ID number!");
return m_slotPar[modID - 1].second;};
242 unsigned pointSlotID(
double x,
double y)
const;
244 unsigned getSlotIDFromSRF(
unsigned sector,
unsigned ring,
unsigned azimuth)
const;
248 std::vector<std::pair<double, double>>
m_ringPar;
250 std::vector<std::pair<double, double>>
m_slotPar;
double getRotationY() const
Get angle of rotation around Y axis.
double getRotationZ() const
Get angle of rotation around Z axis.
double getSlotR(unsigned modID) const
Get radial position of module with given module ID number.
double m_supportBackWallThickness
< thickness of aluminum walls on the back side (electronics side) of support plate
double m_rz
rotation around z axis
ARICHGeoDetectorPlane()
Default constructor.
void setSupportZPosition(double zPosition)
Set Z position of the aluminum support plate (start Z)
void print(const std::string &title="Detector plane parameters") const override
Print the content of the class.
void setModuleHoleSize(double hsize)
Set size of module hole in support plate.
std::vector< std::pair< double, double > > m_slotPar
parameters of all module slots (radius, phi)
unsigned getNRings() const
Get number of module slot rings.
TRotation getRotation() const
Get rotation matrix.
double m_z
z position in local ARICH volume (position of center of detector plane tube, with Z length of: module...
double getModuleHoleSize() const
Get size of module hole in support plate.
double m_x
x position in local ARICH volume
double m_ry
rotation around y axis
double getSupportInnerR() const
Get support plate inner radius.
double getSupportOuterR() const
Get support plate outer radius.
void addSupportPlate(double inR, double outR, double thick, const std::string &material)
Set parameters of the support plate.
double getRingDPhi(unsigned iRing) const
Get phi (angle) distance between module slots in i-th ring.
double m_supportBackWallHeight
height of aluminum walls on the back side (electronics side) of support plate
double getRingR(unsigned iRing) const
Get radius of i-th module slot ring (radius of center point)
double m_y
y position in local ARICH volume
static double s_unit
conversion unit for length
double m_thickness
thickness of support plate
Abstract base class for different kinds of events.
void setRingPar(const std::vector< std::pair< double, double >> &ringPar)
Set parameters of module slot rings (r of center of slots in ring, phi (angle) distance between modul...
double m_supportZPosition
Z position of support plate (position of center of support tube, with Z length of: support plate thic...
double getSupportThickness() const
Get support plate thickness.
double m_innerR
inner radius of support plate
bool isConsistent() const override
Check if parameters are consistent.
void setSupportBackWallHeight(double h)
Set height of the aluminum walls between modules on the electronics side of aluminum support plate.
double getRotationX() const
Get angle of rotation around X axis.
void setPlacement(double x, double y, double z, double rx, double ry, double rz)
Set detector plane positioning within ARICH local volume.
double m_moduleHoleSize
size of module hole in support plate
Geometry parameters of ARICH photon detector plane.
double getSupportBackWallHeight() const
Get height of the aluminum walls between modules on the electronics side of aluminum support plate.
unsigned getSlotRing(unsigned slotID) const
Get ring number of slot with slot ID.
TVector3 getPosition() const
Get center point.
std::string m_supportMaterial
support structure material
unsigned m_nSlots
number of HAPD module slots
unsigned getNSlots() const
Get total number of module slots.
double m_rx
rotation around x axis
unsigned m_nRings
number of HAPD module rings
void setSupportBackWallThickness(double d)
Set thickness of the aluminum walls between modules on the electronics side of the aluminum support p...
const std::string & getSupportMaterial() const
Get material of support plate.
double getSupportZPosition() const
Get Z position of support plate (start point in Z)
double getSlotPhi(unsigned modID) const
Get phi (angle) position of module with given module ID number.
double m_outerR
outer radius of support plate
ClassDefOverride(ARICHGeoDetectorPlane, 1)
ClassDef.
double getSupportBackWallThickness() const
Get thickness of aluminum walls between modules on the electronics side of aluminum support plate.
std::vector< std::pair< double, double > > m_ringPar
parameters of module rings (radius, dPhi)