 |
Belle II Software
release-05-02-19
|
13 #include <top/dbobjects/TOPGeoBase.h>
14 #include <top/dbobjects/TOPGeoBarSegment.h>
15 #include <top/dbobjects/TOPGeoMirrorSegment.h>
16 #include <top/dbobjects/TOPGeoPrism.h>
17 #include <top/dbobjects/TOPGeoPMTArray.h>
18 #include <top/dbobjects/TOPGeoPMTArrayDisplacement.h>
19 #include <top/dbobjects/TOPGeoModuleDisplacement.h>
21 #include <TRotation.h>
32 class TOPGeoModule:
public TOPGeoBase {
49 TOPGeoModule(
int moduleID,
double radius,
double phi,
double backwardZ,
50 const std::string& name =
"TOPModule"):
TOPGeoBase(name),
70 if (
this != &module) {
71 TOPGeoBase::operator=(module);
74 m_phi = module.getPhi();
77 m_bar1 = module.getBarSegment1();
78 m_bar2 = module.getBarSegment2();
79 m_mirror = module.getMirrorSegment();
162 void setBrokenGlue(
int glueID,
double fraction,
double angle,
163 const std::string& material);
385 void print(
const std::string& title =
"Module geometry parameters")
const override;
void generateDecoupledPMTs(double fraction)
Generate randomly a fraction of PMT's to be optically decoupled.
TVector3 momentumToGlobal(const TVector3 &momentum) const
Transforms momentum vector from module internal frame to Belle II frame.
Geometry parameters of prism.
void setModuleDisplacement(const TOPGeoModuleDisplacement &displ)
Sets module displacement.
double getFullLength() const
Returns full length (including prism, wavelenght filter and glue joints)
void generateDecoupledPMTs(double fraction)
Generate randomly a fraction of PMT's to be optically decoupled.
unsigned getModuleCNumber() const
Returns module construction number (0 = ideal module)
Geometry parameters of a quartz bar segment.
void setPMTArray(const TOPGeoPMTArray &array)
Sets PMT array.
void print(const std::string &title="Module geometry parameters") const override
Print the content of the class.
TVector3 momentumToLocal(const TVector3 &momentum) const
Transforms momentum vector from Belle II to module internal frame.
TOPGeoModule(int moduleID, double radius, double phi, double backwardZ, const std::string &name="TOPModule")
Useful constructor.
float m_backwardZ
z position of prism-bar joint in Belle II frame
double getZc() const
Returns z of bar center (w/o prism) in Belle II frame.
Base class for geometry parameters.
TOPGeoBarSegment m_bar2
bar segment 2 (backward bar)
TOPGeoModule & operator=(const TOPGeoModule &module)
Assignment operator.
TVector3 * m_translation
cache for translation vector (from internal to Belle II frame)
double getFullLength() const
Returns bar segment length including glue.
void setBarSegment2(const TOPGeoBarSegment &bar)
Sets bar segment No.2 (backward bar)
double getInnerRadius() const
Returns inner surface radius in Belle II frame.
double getForwardZ() const
Returns the z position of the bar forward end in Belle II frame.
void setPeelOffRegions(double thickness, const std::string &material)
Sets parameters of the peel-off cookie volumes.
const TOPGeoMirrorSegment & getMirrorSegment() const
Returns mirror segment.
void setPrism(const TOPGeoPrism &prism)
Sets prism.
const std::string & getName() const
Returns object name.
void setBrokenGlue(int glueID, double fraction, double angle, const std::string &material)
Sets glue to be broken (delaminated)
Displacement parameters of a TOP module.
float m_radius
radius of bar central plane in Belle II frame
void appendPeelOffRegion(unsigned ID, double fraction, double angle)
Appends peel-off cookie region.
void setPMTArrayDisplacement(const TOPGeoPMTArrayDisplacement &displ)
Sets PMT array displacement.
const TOPGeoModuleDisplacement & getModuleDisplacement() const
Returns module displacement.
const TOPGeoBarSegment & getBarSegment2() const
Returns bar segment No.2 (backward bar)
double getBackwardZ() const
Returns the z position of prism-bar joint in Belle II frame.
TRotation * m_rotation
cache for rotation matrix (from internal to Belle II frame)
TOPGeoModuleDisplacement m_moduleDisplacement
module displacement
TOPGeoModule()
Default constructor.
Geometry parameters of a module (optical components + positioning)
ClassDefOverride(TOPGeoModule, 3)
ClassDef.
Abstract base class for different kinds of events.
Geometry parameters of MCP-PMT array.
static double s_unit
conversion unit for length
double getRadius() const
Returns radius of the bar central plane in Belle II frame.
int getModuleID() const
Returns module ID.
double getWidth() const
Returns bar segment width.
bool isConsistent() const override
Check for consistency of data members.
double getBarLength() const
Returns bar length (w/o prism) including glue joints.
double getPhi() const
Returns module azimuthal angle in Belle II frame.
float m_phi
azimuthal angle in Belle II frame
TRotation * m_rotationInverse
cache for inverse rotation matrix
void setModuleCNumber(unsigned moduleCNumber)
Sets module construction number (0 = ideal module = default)
const TOPGeoPrism & getPrism() const
Returns prism.
TOPGeoBarSegment m_bar1
bar segment 1 (forward bar)
void appendPeelOffRegion(unsigned ID, double fraction, double angle)
Appends peel-off cookie region.
void setMirrorSegment(const TOPGeoMirrorSegment &mirror)
Sets mirror segment.
Geometry parameters of a mirror segment.
const TOPGeoPMTArray & getPMTArray() const
Returns PMT array.
void setTransformation() const
Sets transformation cache.
TVector3 pointToGlobal(const TVector3 &point) const
Transforms 3D point from module internal frame to Belle II frame.
double getSurfaceReflectivity(double energy) const
Returns average surface reflectivity at given photon energy (weigthed by segment lengths)
TVector3 pointToLocal(const TVector3 &point) const
Transforms 3D point from Belle II to module internal frame.
double getBarWidth() const
Returns average bar width (weigthed by segment lengths)
TOPGeoPMTArray m_pmtArray
geometry parameters of PMT array
TOPGeoPMTArrayDisplacement m_arrayDisplacement
PMT array displacement.
void setDecoupledPMT(unsigned pmtID)
Sets PMT as optically decoupled.
TOPGeoMirrorSegment m_mirror
mirror segment
~TOPGeoModule()
Destructor.
unsigned m_moduleCNumber
module construction number, 0 = ideal module
void setBarSegment1(const TOPGeoBarSegment &bar)
Sets bar segment No.1 (forward bar)
void setDecoupledPMT(unsigned pmtID)
Sets PMT as optically decoupled.
const TOPGeoPMTArrayDisplacement & getPMTArrayDisplacement() const
Returns PMT array displacement.
Displacement parameters of MCP-PMT array.
double getBarThickness() const
Returns average bar thickness (weigthed by segment lengths)
double getSurfaceReflectivity(double energy) const
Returns surface reflectivity at given photon energy.
double getThickness() const
Returns bar segment thickness.
const TOPGeoBarSegment & getBarSegment1() const
Returns bar segment No.1 (forward bar)