Belle II Software development
TOPGeoModule Class Reference

Geometry parameters of a module (optical components + positioning) More...

#include <TOPGeoModule.h>

Inheritance diagram for TOPGeoModule:
TOPGeoBase

Public Member Functions

 TOPGeoModule ()
 Default constructor.
 
 TOPGeoModule (int moduleID, double radius, double phi, double backwardZ, const std::string &name="TOPModule")
 Useful constructor.
 
 TOPGeoModule (const TOPGeoModule &module)
 Copy constructor.
 
TOPGeoModuleoperator= (const TOPGeoModule &module)
 Assignment operator.
 
 ~TOPGeoModule ()
 Destructor.
 
void setModuleCNumber (unsigned moduleCNumber)
 Sets module construction number (0 = ideal module = default)
 
void setBarSegment1 (const TOPGeoBarSegment &bar)
 Sets bar segment No.1 (forward bar)
 
void setBarSegment2 (const TOPGeoBarSegment &bar)
 Sets bar segment No.2 (backward bar)
 
void setMirrorSegment (const TOPGeoMirrorSegment &mirror)
 Sets mirror segment.
 
void setPrism (const TOPGeoPrism &prism)
 Sets prism.
 
void setPMTArray (const TOPGeoPMTArray &array)
 Sets PMT array.
 
void setDecoupledPMT (unsigned pmtID)
 Sets PMT as optically decoupled.
 
void generateDecoupledPMTs (double fraction)
 Generate randomly a fraction of PMT's to be optically decoupled.
 
void setBrokenGlue (int glueID, double fraction, double angle, const std::string &material)
 Sets glue to be broken (delaminated)
 
void setPeelOffRegions (double thickness, const std::string &material)
 Sets parameters of the peel-off cookie volumes.
 
void appendPeelOffRegion (unsigned ID, double fraction, double angle)
 Appends peel-off cookie region.
 
void setPMTArrayDisplacement (const TOPGeoPMTArrayDisplacement &displ)
 Sets PMT array displacement.
 
void setModuleDisplacement (const TOPGeoModuleDisplacement &displ)
 Sets module displacement.
 
int getModuleID () const
 Returns module ID.
 
double getRadius () const
 Returns radius of the bar central plane in Belle II frame.
 
double getPhi () const
 Returns module azimuthal angle in Belle II frame.
 
double getBackwardZ () const
 Returns the z position of prism-bar joint in Belle II frame.
 
unsigned getModuleCNumber () const
 Returns module construction number (0 = ideal module)
 
const TOPGeoBarSegmentgetBarSegment1 () const
 Returns bar segment No.1 (forward bar)
 
const TOPGeoBarSegmentgetBarSegment2 () const
 Returns bar segment No.2 (backward bar)
 
const TOPGeoMirrorSegmentgetMirrorSegment () const
 Returns mirror segment.
 
const TOPGeoPrismgetPrism () const
 Returns prism.
 
const TOPGeoPMTArraygetPMTArray () const
 Returns PMT array.
 
const TOPGeoPMTArrayDisplacementgetPMTArrayDisplacement () const
 Returns PMT array displacement.
 
const TOPGeoModuleDisplacementgetModuleDisplacement () const
 Returns module displacement.
 
double getBarLength () const
 Returns bar length (w/o prism) including glue joints.
 
double getFullLength () const
 Returns full length (including prism, wavelenght filter and glue joints)
 
double getForwardZ () const
 Returns the z position of the bar forward end in Belle II frame.
 
double getBarThickness () const
 Returns average bar thickness (weigthed by segment lengths)
 
double getBarWidth () const
 Returns average bar width (weigthed by segment lengths)
 
double getSurfaceReflectivity (double energy) const
 Returns average surface reflectivity at given photon energy (weigthed by segment lengths)
 
double getSigmaAlpha () const
 Returns average surface roughness parameter (weigthed by segment lengths)
 
double getZc () const
 Returns z of bar center (w/o prism) in Belle II frame.
 
double getInnerRadius () const
 Returns inner surface radius in Belle II frame.
 
const ROOT::Math::Transform3D & getTransformation () const
 Returns transformation from internal (= nominal & displaced) to Belle II frame.
 
const ROOT::Math::Transform3D & getTransformationNominal () const
 Returns transformation from nominal to Belle II frame.
 
ROOT::Math::XYZPoint pointToLocal (const ROOT::Math::XYZPoint &point) const
 Transforms 3D point from Belle II to module internal (= nominal & displaced) frame.
 
ROOT::Math::XYZVector momentumToLocal (const ROOT::Math::XYZVector &momentum) const
 Transforms momentum vector from Belle II to module internal (= nominal & displaced) frame.
 
ROOT::Math::XYZPoint pointToGlobal (const ROOT::Math::XYZPoint &point) const
 Transforms 3D point from module internal (= nominal & displaced) frame to Belle II frame.
 
ROOT::Math::XYZVector momentumToGlobal (const ROOT::Math::XYZVector &momentum) const
 Transforms momentum vector from module internal (= nominal & displaced) frame to Belle II frame.
 
ROOT::Math::XYZPoint pointGlobalToNominal (const ROOT::Math::XYZPoint &point) const
 Transforms 3D point from Belle II to module nominal frame.
 
ROOT::Math::XYZVector momentumGlobalToNominal (const ROOT::Math::XYZVector &momentum) const
 Transforms momentum vector from Belle II to module nominal frame.
 
ROOT::Math::XYZPoint pointNominalToGlobal (const ROOT::Math::XYZPoint &point) const
 Transforms 3D point from module nominal frame to Belle II frame.
 
ROOT::Math::XYZVector momentumNominalToGlobal (const ROOT::Math::XYZVector &momentum) const
 Transforms momentum vector from module nominal frame to Belle II frame.
 
bool isConsistent () const override
 Check for consistency of data members.
 
void print (const std::string &title="Module geometry parameters") const override
 Print the content of the class.
 
void setName (const std::string &name)
 Sets object name.
 
const std::string & getName () const
 Returns object name.
 
virtual void printSurface (const GeoOpticalSurface &surface) const
 Print the content of optical surface.
 
double getReflectivity (const GeoOpticalSurface &surface, double energy) const
 Returns reflectivity of optical surface at given photon energy.
 

Protected Member Functions

void printUnderlined (const std::string &title) const
 Print the content of the class.
 
 ClassDef (TOPGeoBase, 1)
 ClassDef.
 

Protected Attributes

std::string m_name
 geometry object name
 

Static Protected Attributes

static double s_unit = Unit::cm
 conversion unit for length
 
static std::string s_unitName
 conversion unit name
 

Private Member Functions

void setTransformation () const
 Sets transformation cache.
 
 ClassDefOverride (TOPGeoModule, 3)
 do not write out
 

Private Attributes

int m_moduleID = 0
 module ID
 
float m_radius = 0
 radius of bar central plane in Belle II frame
 
float m_phi = 0
 azimuthal angle in Belle II frame
 
float m_backwardZ = 0
 z position of prism-bar joint in Belle II frame
 
unsigned m_moduleCNumber = 0
 module construction number, 0 = ideal module
 
TOPGeoBarSegment m_bar1
 bar segment 1 (forward bar)
 
TOPGeoBarSegment m_bar2
 bar segment 2 (backward bar)
 
TOPGeoMirrorSegment m_mirror
 mirror segment
 
TOPGeoPrism m_prism
 prism
 
TOPGeoPMTArray m_pmtArray
 geometry parameters of PMT array
 
TOPGeoPMTArrayDisplacement m_arrayDisplacement
 PMT array displacement.
 
TOPGeoModuleDisplacement m_moduleDisplacement
 module displacement
 
ROOT::Math::Transform3D * m_transform = 0
 cache for transformation from internal (= nominal & displaced) to Belle II frame
 
ROOT::Math::Transform3D * m_transformNominal = 0
 do not write out
 

Detailed Description

Geometry parameters of a module (optical components + positioning)

Definition at line 31 of file TOPGeoModule.h.

Constructor & Destructor Documentation

◆ TOPGeoModule() [1/2]

TOPGeoModule ( )
inline

Default constructor.

Definition at line 37 of file TOPGeoModule.h.

38 {}

◆ TOPGeoModule() [2/2]

TOPGeoModule ( int  moduleID,
double  radius,
double  phi,
double  backwardZ,
const std::string &  name = "TOPModule" 
)
inline

Useful constructor.

Parameters
moduleIDmodule ID
radiusradius of the bar central plane in Belle II frame
phiazimuthal angle in Belle II frame
backwardZz position of prism-bar joint in Belle II frame
nameobject name

Definition at line 48 of file TOPGeoModule.h.

49 : TOPGeoBase(name),
50 m_moduleID(moduleID), m_radius(radius), m_phi(phi), m_backwardZ(backwardZ)
51 {}
TOPGeoBase()
Default constructor.
Definition: TOPGeoBase.h:31
float m_backwardZ
z position of prism-bar joint in Belle II frame
Definition: TOPGeoModule.h:421
float m_phi
azimuthal angle in Belle II frame
Definition: TOPGeoModule.h:420
float m_radius
radius of bar central plane in Belle II frame
Definition: TOPGeoModule.h:419
int m_moduleID
module ID
Definition: TOPGeoModule.h:418

Member Function Documentation

◆ appendPeelOffRegion()

void appendPeelOffRegion ( unsigned  ID,
double  fraction,
double  angle 
)
inline

Appends peel-off cookie region.

Parameters
IDregion ID (1-based)
fractionfraction of the area
angleangle of the area

Definition at line 142 of file TOPGeoModule.h.

143 {
144 m_prism.appendPeelOffRegion(ID, fraction, angle);
145 }
TOPGeoPrism m_prism
prism
Definition: TOPGeoModule.h:427
void appendPeelOffRegion(unsigned ID, double fraction, double angle)
Appends peel-off cookie region.
Definition: TOPGeoPrism.cc:94

◆ ClassDefOverride()

ClassDefOverride ( TOPGeoModule  ,
 
)
private

do not write out

ClassDef

◆ generateDecoupledPMTs()

void generateDecoupledPMTs ( double  fraction)
inline

Generate randomly a fraction of PMT's to be optically decoupled.

Parameters
fractiondecoupled fraction

Definition at line 114 of file TOPGeoModule.h.

115 {
117 }
TOPGeoPMTArray m_pmtArray
geometry parameters of PMT array
Definition: TOPGeoModule.h:428
void generateDecoupledPMTs(double fraction)
Generate randomly a fraction of PMT's to be optically decoupled.

◆ getBackwardZ()

double getBackwardZ ( ) const
inline

Returns the z position of prism-bar joint in Belle II frame.

Returns
z position

Definition at line 188 of file TOPGeoModule.h.

188{return m_backwardZ / s_unit;}
static double s_unit
conversion unit for length
Definition: TOPGeoBase.h:86

◆ getBarLength()

double getBarLength ( ) const
inline

Returns bar length (w/o prism) including glue joints.

Returns
length

Definition at line 248 of file TOPGeoModule.h.

249 {
251 }
double getFullLength() const
Returns bar segment length including glue.
TOPGeoMirrorSegment m_mirror
mirror segment
Definition: TOPGeoModule.h:426
TOPGeoBarSegment m_bar2
bar segment 2 (backward bar)
Definition: TOPGeoModule.h:425
TOPGeoBarSegment m_bar1
bar segment 1 (forward bar)
Definition: TOPGeoModule.h:424

◆ getBarSegment1()

const TOPGeoBarSegment & getBarSegment1 ( ) const
inline

Returns bar segment No.1 (forward bar)

Returns
bar segment geometry parameters

Definition at line 200 of file TOPGeoModule.h.

200{return m_bar1;}

◆ getBarSegment2()

const TOPGeoBarSegment & getBarSegment2 ( ) const
inline

Returns bar segment No.2 (backward bar)

Returns
bar segment geometry parameters

Definition at line 206 of file TOPGeoModule.h.

206{return m_bar2;}

◆ getBarThickness()

double getBarThickness ( ) const
inline

Returns average bar thickness (weigthed by segment lengths)

Returns
average bar thickness

Definition at line 269 of file TOPGeoModule.h.

270 {
274 }
double getThickness() const
Returns bar segment thickness.
double getBarLength() const
Returns bar length (w/o prism) including glue joints.
Definition: TOPGeoModule.h:248

◆ getBarWidth()

double getBarWidth ( ) const
inline

Returns average bar width (weigthed by segment lengths)

Returns
average bar width

Definition at line 280 of file TOPGeoModule.h.

281 {
282 return (m_bar1.getWidth() * m_bar1.getFullLength() +
285 }
double getWidth() const
Returns bar segment width.

◆ getForwardZ()

double getForwardZ ( ) const
inline

Returns the z position of the bar forward end in Belle II frame.

Returns
z position

Definition at line 263 of file TOPGeoModule.h.

263{return getBackwardZ() + getBarLength();}
double getBackwardZ() const
Returns the z position of prism-bar joint in Belle II frame.
Definition: TOPGeoModule.h:188

◆ getFullLength()

double getFullLength ( ) const
inline

Returns full length (including prism, wavelenght filter and glue joints)

Returns
length

Definition at line 257 of file TOPGeoModule.h.

257{return getBarLength() + m_prism.getFullLength();}

◆ getInnerRadius()

double getInnerRadius ( ) const
inline

Returns inner surface radius in Belle II frame.

Returns
radius

Definition at line 320 of file TOPGeoModule.h.

320{return getRadius() - getBarThickness() / 2;}
double getRadius() const
Returns radius of the bar central plane in Belle II frame.
Definition: TOPGeoModule.h:176
double getBarThickness() const
Returns average bar thickness (weigthed by segment lengths)
Definition: TOPGeoModule.h:269

◆ getMirrorSegment()

const TOPGeoMirrorSegment & getMirrorSegment ( ) const
inline

Returns mirror segment.

Returns
mirror segment geometry parameters

Definition at line 212 of file TOPGeoModule.h.

212{return m_mirror;}

◆ getModuleCNumber()

unsigned getModuleCNumber ( ) const
inline

Returns module construction number (0 = ideal module)

Returns
construction number

Definition at line 194 of file TOPGeoModule.h.

194{return m_moduleCNumber;}
unsigned m_moduleCNumber
module construction number, 0 = ideal module
Definition: TOPGeoModule.h:423

◆ getModuleDisplacement()

const TOPGeoModuleDisplacement & getModuleDisplacement ( ) const
inline

Returns module displacement.

Returns
module displacement parameters

Definition at line 239 of file TOPGeoModule.h.

240 {
242 }
TOPGeoModuleDisplacement m_moduleDisplacement
module displacement
Definition: TOPGeoModule.h:430

◆ getModuleID()

int getModuleID ( ) const
inline

Returns module ID.

Returns
module ID

Definition at line 170 of file TOPGeoModule.h.

170{return m_moduleID;}

◆ getName()

const std::string & getName ( ) const
inlineinherited

Returns object name.

Returns
object name

Definition at line 51 of file TOPGeoBase.h.

51{return m_name;}
std::string m_name
geometry object name
Definition: TOPGeoBase.h:89

◆ getPhi()

double getPhi ( ) const
inline

Returns module azimuthal angle in Belle II frame.

Returns
azimuthal angle

Definition at line 182 of file TOPGeoModule.h.

182{return m_phi;}

◆ getPMTArray()

const TOPGeoPMTArray & getPMTArray ( ) const
inline

Returns PMT array.

Returns
PMT array geometry parameters

Definition at line 224 of file TOPGeoModule.h.

224{return m_pmtArray;}

◆ getPMTArrayDisplacement()

const TOPGeoPMTArrayDisplacement & getPMTArrayDisplacement ( ) const
inline

Returns PMT array displacement.

Returns
PMT array displacement parameters

Definition at line 230 of file TOPGeoModule.h.

231 {
232 return m_arrayDisplacement;
233 }
TOPGeoPMTArrayDisplacement m_arrayDisplacement
PMT array displacement.
Definition: TOPGeoModule.h:429

◆ getPrism()

const TOPGeoPrism & getPrism ( ) const
inline

Returns prism.

Returns
prism geometry parameters

Definition at line 218 of file TOPGeoModule.h.

218{return m_prism;}

◆ getRadius()

double getRadius ( ) const
inline

Returns radius of the bar central plane in Belle II frame.

Returns
radius

Definition at line 176 of file TOPGeoModule.h.

176{return m_radius / s_unit;}

◆ getSigmaAlpha()

double getSigmaAlpha ( ) const
inline

Returns average surface roughness parameter (weigthed by segment lengths)

Returns
average surface roughness

Definition at line 303 of file TOPGeoModule.h.

304 {
308 }
double getSigmaAlpha() const
Returns geant4 parameter describing surface roughness.

◆ getSurfaceReflectivity()

double getSurfaceReflectivity ( double  energy) const
inline

Returns average surface reflectivity at given photon energy (weigthed by segment lengths)

Parameters
energyphoton energy in [eV]
Returns
average reflectivity

Definition at line 292 of file TOPGeoModule.h.

293 {
297 }
double getSurfaceReflectivity(double energy) const
Returns surface reflectivity at given photon energy.

◆ getTransformation()

const ROOT::Math::Transform3D & getTransformation ( ) const
inline

Returns transformation from internal (= nominal & displaced) to Belle II frame.

Returns
transformation

Definition at line 326 of file TOPGeoModule.h.

327 {
329 return *m_transform;
330 }
ROOT::Math::Transform3D * m_transform
cache for transformation from internal (= nominal & displaced) to Belle II frame
Definition: TOPGeoModule.h:433
void setTransformation() const
Sets transformation cache.
Definition: TOPGeoModule.cc:64

◆ getTransformationNominal()

const ROOT::Math::Transform3D & getTransformationNominal ( ) const
inline

Returns transformation from nominal to Belle II frame.

Returns
transformation

Definition at line 336 of file TOPGeoModule.h.

337 {
339 return *m_transformNominal;
340 }
ROOT::Math::Transform3D * m_transformNominal
do not write out
Definition: TOPGeoModule.h:435

◆ getZc()

double getZc ( ) const
inline

Returns z of bar center (w/o prism) in Belle II frame.

Returns
z coordinate if bar center

Definition at line 314 of file TOPGeoModule.h.

314{return (getBackwardZ() + getForwardZ()) / 2;}
double getForwardZ() const
Returns the z position of the bar forward end in Belle II frame.
Definition: TOPGeoModule.h:263

◆ setBarSegment1()

void setBarSegment1 ( const TOPGeoBarSegment bar)
inline

Sets bar segment No.1 (forward bar)

Parameters
barsegment No.1 geometry parameters

Definition at line 78 of file TOPGeoModule.h.

78{m_bar1 = bar;}

◆ setBarSegment2()

void setBarSegment2 ( const TOPGeoBarSegment bar)
inline

Sets bar segment No.2 (backward bar)

Parameters
barsegment No.2 geometry parameters

Definition at line 84 of file TOPGeoModule.h.

84{m_bar2 = bar;}

◆ setDecoupledPMT()

void setDecoupledPMT ( unsigned  pmtID)
inline

Sets PMT as optically decoupled.

Parameters
pmtIDID of PMT to be set as decoupled (1-based)

Definition at line 108 of file TOPGeoModule.h.

void setDecoupledPMT(unsigned pmtID)
Sets PMT as optically decoupled.

◆ setMirrorSegment()

void setMirrorSegment ( const TOPGeoMirrorSegment mirror)
inline

Sets mirror segment.

Parameters
mirrormirror segment geometry parameters

Definition at line 90 of file TOPGeoModule.h.

90{m_mirror = mirror;}

◆ setModuleCNumber()

void setModuleCNumber ( unsigned  moduleCNumber)
inline

Sets module construction number (0 = ideal module = default)

Parameters
moduleCNumberconstruction number

Definition at line 72 of file TOPGeoModule.h.

72{m_moduleCNumber = moduleCNumber;}

◆ setModuleDisplacement()

void setModuleDisplacement ( const TOPGeoModuleDisplacement displ)
inline

Sets module displacement.

Parameters
displmodule displacement parameters

Definition at line 161 of file TOPGeoModule.h.

162 {
163 m_moduleDisplacement = displ;
164 }

◆ setName()

void setName ( const std::string &  name)
inlineinherited

Sets object name.

Parameters
nameobject name

Definition at line 45 of file TOPGeoBase.h.

45{m_name = name;}

◆ setPMTArray()

void setPMTArray ( const TOPGeoPMTArray array)
inline

Sets PMT array.

Parameters
arrayPMT array geometry parameters

Definition at line 102 of file TOPGeoModule.h.

102{m_pmtArray = array;}

◆ setPMTArrayDisplacement()

void setPMTArrayDisplacement ( const TOPGeoPMTArrayDisplacement displ)
inline

Sets PMT array displacement.

Parameters
displPMT array displacement parameters

Definition at line 152 of file TOPGeoModule.h.

153 {
154 m_arrayDisplacement = displ;
155 }

◆ setPrism()

void setPrism ( const TOPGeoPrism prism)
inline

Sets prism.

Parameters
prismprism geometry parameters

Definition at line 96 of file TOPGeoModule.h.

96{m_prism = prism;}

Member Data Documentation

◆ m_arrayDisplacement

TOPGeoPMTArrayDisplacement m_arrayDisplacement
private

PMT array displacement.

Definition at line 429 of file TOPGeoModule.h.

◆ m_backwardZ

float m_backwardZ = 0
private

z position of prism-bar joint in Belle II frame

Definition at line 421 of file TOPGeoModule.h.

◆ m_bar1

TOPGeoBarSegment m_bar1
private

bar segment 1 (forward bar)

Definition at line 424 of file TOPGeoModule.h.

◆ m_bar2

TOPGeoBarSegment m_bar2
private

bar segment 2 (backward bar)

Definition at line 425 of file TOPGeoModule.h.

◆ m_mirror

TOPGeoMirrorSegment m_mirror
private

mirror segment

Definition at line 426 of file TOPGeoModule.h.

◆ m_moduleCNumber

unsigned m_moduleCNumber = 0
private

module construction number, 0 = ideal module

Definition at line 423 of file TOPGeoModule.h.

◆ m_moduleDisplacement

TOPGeoModuleDisplacement m_moduleDisplacement
private

module displacement

Definition at line 430 of file TOPGeoModule.h.

◆ m_moduleID

int m_moduleID = 0
private

module ID

Definition at line 418 of file TOPGeoModule.h.

◆ m_name

std::string m_name
protectedinherited

geometry object name

Definition at line 89 of file TOPGeoBase.h.

◆ m_phi

float m_phi = 0
private

azimuthal angle in Belle II frame

Definition at line 420 of file TOPGeoModule.h.

◆ m_pmtArray

TOPGeoPMTArray m_pmtArray
private

geometry parameters of PMT array

Definition at line 428 of file TOPGeoModule.h.

◆ m_prism

TOPGeoPrism m_prism
private

prism

Definition at line 427 of file TOPGeoModule.h.

◆ m_radius

float m_radius = 0
private

radius of bar central plane in Belle II frame

Definition at line 419 of file TOPGeoModule.h.

◆ m_transform

ROOT::Math::Transform3D* m_transform = 0
mutableprivate

cache for transformation from internal (= nominal & displaced) to Belle II frame

Definition at line 433 of file TOPGeoModule.h.

◆ m_transformNominal

ROOT::Math::Transform3D* m_transformNominal = 0
mutableprivate

do not write out

cache for transformation from nominal to Belle II frame

Definition at line 435 of file TOPGeoModule.h.


The documentation for this class was generated from the following files: