Belle II Software development
TOPGeoPMTArray Class Reference

Geometry parameters of MCP-PMT array. More...

#include <TOPGeoPMTArray.h>

Inheritance diagram for TOPGeoPMTArray:
TOPGeoBase

Public Member Functions

 TOPGeoPMTArray ()
 Default constructor.
 
 TOPGeoPMTArray (unsigned numColumns, unsigned numRows, double gapX, double gapY, const std::string &material, const TOPGeoPMT &pmt, const std::string &name="TOPPMTArray")
 Full constructor.
 
void setAirGap (double gap)
 Sets air gap for optically decoupled PMT's.
 
void setDecoupledPMT (unsigned pmtID)
 Sets PMT as optically decoupled.
 
void setSiliconeCookie (double thickness, const std::string &material)
 Sets silicone cookie.
 
void setWavelengthFilter (double thickness, const std::string &material)
 Sets wavelength filter.
 
void generateDecoupledPMTs (double fraction)
 Generate randomly a fraction of PMT's to be optically decoupled.
 
unsigned getNumColumns () const
 Returns number of array columns.
 
unsigned getNumRows () const
 Returns number of array rows.
 
unsigned getSize () const
 Returns array size.
 
unsigned getNumPixels () const
 Returns number of pixels.
 
unsigned getNumPixelColumns () const
 Returns number of pixel columns.
 
unsigned getNumPixelRows () const
 Returns number of pixel rows.
 
double getDx () const
 Returns spacing in x (column width)
 
double getDy () const
 Returns spacing in y (row height)
 
double getGapX () const
 Returns gap between PMT's in x.
 
double getGapY () const
 Returns gap between PMT's in y.
 
double getCookieThickness () const
 Returns silicone cookie thickness.
 
const std::string & getCookieMaterial () const
 Returns silicone cookie material.
 
double getFilterThickness () const
 Returns wavelength filter thickness.
 
const std::string & getFilterMaterial () const
 Returns wavelenght filter material.
 
double getSizeX () const
 Returns array volume dimension in x.
 
double getSizeY () const
 Returns array volume dimension in y.
 
double getSizeZ () const
 Returns array volume dimension in z.
 
double getX (unsigned col) const
 Returns x coordinate of column center.
 
double getY (unsigned row) const
 Returns the y coordinate of row center.
 
const std::string & getMaterial () const
 Returns material name into which PMT's are inserted.
 
const TOPGeoPMTgetPMT () const
 Returns PMT geometry parameters.
 
unsigned getPmtID (unsigned row, unsigned col) const
 Converts row and column numbers to PMT ID (1-based)
 
unsigned getRow (unsigned pmtID) const
 Converts PMT ID to row number (1-based)
 
unsigned getColumn (unsigned pmtID) const
 Converts PMT ID to column number (1-based)
 
int getPixelID (double x, double y, unsigned pmtID) const
 Converts (digitizes) x, y and PMT ID to pixel ID (1-based)
 
int getPixelID (unsigned pmtID, unsigned pmtPixelID) const
 Returns pixel ID (1-based)
 
double getAirGap () const
 Returns air gap.
 
const std::vector< unsigned > & getDecoupledPMTs () const
 Returns ID's of optically decoupled PMT's.
 
bool isPMTDecoupled (unsigned pmtID) const
 Checks if PMT is optically decoupled.
 
bool isConsistent () const override
 Check for consistency of data members.
 
void print (const std::string &title="PMT array 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

 ClassDefOverride (TOPGeoPMTArray, 3)
 ClassDef.
 

Private Attributes

unsigned m_numRows = 0
 number of rows
 
unsigned m_numColumns = 0
 number of columns
 
float m_dx = 0
 spacing in x
 
float m_dy = 0
 spacing in y
 
float m_gx = 0
 gap between PMT's in x
 
float m_gy = 0
 gap between PMT's in y
 
std::string m_material
 material name into which PMT's are inserted
 
TOPGeoPMT m_pmt
 PMT geometry parameters.
 
float m_airGap = 0
 air gap thickness for decoupled PMT's
 
std::vector< unsigned > m_decoupledPMTs
 ID's of decoupled PMT's.
 
float m_cookieThickness = 0
 silicone cookie thickness
 
std::string m_cookieMaterial
 silicone cookie material
 
float m_filterThickness = 0
 wavelength filter thickness
 
std::string m_filterMaterial
 wavelength filter material
 

Detailed Description

Geometry parameters of MCP-PMT array.

Definition at line 24 of file TOPGeoPMTArray.h.

Constructor & Destructor Documentation

◆ TOPGeoPMTArray() [1/2]

TOPGeoPMTArray ( )
inline

Default constructor.

Definition at line 30 of file TOPGeoPMTArray.h.

31 {}

◆ TOPGeoPMTArray() [2/2]

TOPGeoPMTArray ( unsigned  numColumns,
unsigned  numRows,
double  gapX,
double  gapY,
const std::string &  material,
const TOPGeoPMT pmt,
const std::string &  name = "TOPPMTArray" 
)
inline

Full constructor.

Parameters
numColumnsnumber of columns
numRowsnumber of rows
gapXgap between PMT's in x
gapYgap between PMT's in y
materialmaterial name into which PMT's are inserted
pmtPMT geometry parameters
nameobject name

Definition at line 43 of file TOPGeoPMTArray.h.

47 :
48 TOPGeoBase(name),
49 m_numRows(numRows), m_numColumns(numColumns), m_dx(gapX), m_dy(gapY),
50 m_gx(gapX), m_gy(gapY), m_material(material), m_pmt(pmt)
51 {
52 m_dx += pmt.getSizeX() * s_unit;
53 m_dy += pmt.getSizeY() * s_unit;
54 }
TOPGeoBase()
Default constructor.
Definition: TOPGeoBase.h:31
unsigned m_numColumns
number of columns
std::string m_material
material name into which PMT's are inserted
float m_gx
gap between PMT's in x
float m_dy
spacing in y
unsigned m_numRows
number of rows
float m_dx
spacing in x
TOPGeoPMT m_pmt
PMT geometry parameters.
float m_gy
gap between PMT's in y
static double s_unit
conversion unit for length
Definition: TOPGeoBase.h:86

Member Function Documentation

◆ getAirGap()

double getAirGap ( ) const
inline

Returns air gap.

Returns
gap thickness

Definition at line 276 of file TOPGeoPMTArray.h.

276{return m_airGap / s_unit;}
float m_airGap
air gap thickness for decoupled PMT's

◆ getCookieMaterial()

const std::string & getCookieMaterial ( ) const
inline

Returns silicone cookie material.

Returns
material name

Definition at line 166 of file TOPGeoPMTArray.h.

166{return m_cookieMaterial;}
std::string m_cookieMaterial
silicone cookie material

◆ getCookieThickness()

double getCookieThickness ( ) const
inline

Returns silicone cookie thickness.

Returns
thickness

Definition at line 160 of file TOPGeoPMTArray.h.

160{return m_cookieThickness / s_unit;}
float m_cookieThickness
silicone cookie thickness

◆ getDecoupledPMTs()

const std::vector< unsigned > & getDecoupledPMTs ( ) const
inline

Returns ID's of optically decoupled PMT's.

Returns
PMT ID (1-based)

Definition at line 282 of file TOPGeoPMTArray.h.

282{return m_decoupledPMTs;}
std::vector< unsigned > m_decoupledPMTs
ID's of decoupled PMT's.

◆ getDx()

double getDx ( ) const
inline

Returns spacing in x (column width)

Returns
spacing in x

Definition at line 136 of file TOPGeoPMTArray.h.

136{return m_dx / s_unit;}

◆ getDy()

double getDy ( ) const
inline

Returns spacing in y (row height)

Returns
spacing in y

Definition at line 142 of file TOPGeoPMTArray.h.

142{return m_dy / s_unit;}

◆ getFilterMaterial()

const std::string & getFilterMaterial ( ) const
inline

Returns wavelenght filter material.

Returns
material name

Definition at line 178 of file TOPGeoPMTArray.h.

178{return m_filterMaterial;}
std::string m_filterMaterial
wavelength filter material

◆ getFilterThickness()

double getFilterThickness ( ) const
inline

Returns wavelength filter thickness.

Returns
thickness

Definition at line 172 of file TOPGeoPMTArray.h.

172{return m_filterThickness / s_unit;}
float m_filterThickness
wavelength filter thickness

◆ getGapX()

double getGapX ( ) const
inline

Returns gap between PMT's in x.

Returns
gap in x

Definition at line 148 of file TOPGeoPMTArray.h.

148{return m_gx / s_unit;}

◆ getGapY()

double getGapY ( ) const
inline

Returns gap between PMT's in y.

Returns
gap in y

Definition at line 154 of file TOPGeoPMTArray.h.

154{return m_gy / s_unit;}

◆ getMaterial()

const std::string & getMaterial ( ) const
inline

Returns material name into which PMT's are inserted.

Returns
material name

Definition at line 225 of file TOPGeoPMTArray.h.

225{return m_material;}

◆ 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

◆ getNumColumns()

unsigned getNumColumns ( ) const
inline

Returns number of array columns.

Returns
number of columns

Definition at line 100 of file TOPGeoPMTArray.h.

100{return m_numColumns;}

◆ getNumPixelColumns()

unsigned getNumPixelColumns ( ) const
inline

Returns number of pixel columns.

Returns
number of pixel columns

Definition at line 124 of file TOPGeoPMTArray.h.

124{return m_numColumns * m_pmt.getNumColumns();}
unsigned getNumColumns() const
Returns number of pixel columns.
Definition: TOPGeoPMT.h:183

◆ getNumPixelRows()

unsigned getNumPixelRows ( ) const
inline

Returns number of pixel rows.

Returns
number of pixel rows

Definition at line 130 of file TOPGeoPMTArray.h.

130{return m_numRows * m_pmt.getNumRows();}
unsigned getNumRows() const
Returns number of pixel rows.
Definition: TOPGeoPMT.h:189

◆ getNumPixels()

unsigned getNumPixels ( ) const
inline

Returns number of pixels.

Returns
number of pixels

Definition at line 118 of file TOPGeoPMTArray.h.

118{return getSize() * m_pmt.getNumPixels();}
unsigned getSize() const
Returns array size.
unsigned getNumPixels() const
Returns number of pixels.
Definition: TOPGeoPMT.h:195

◆ getNumRows()

unsigned getNumRows ( ) const
inline

Returns number of array rows.

Returns
number of rows

Definition at line 106 of file TOPGeoPMTArray.h.

106{return m_numRows;}

◆ getPMT()

const TOPGeoPMT & getPMT ( ) const
inline

Returns PMT geometry parameters.

Returns
PMT geometry parameters

Definition at line 231 of file TOPGeoPMTArray.h.

231{return m_pmt;}

◆ getSize()

unsigned getSize ( ) const
inline

Returns array size.

Returns
array size

Definition at line 112 of file TOPGeoPMTArray.h.

112{return m_numRows * m_numColumns;}

◆ getSizeX()

double getSizeX ( ) const
inline

Returns array volume dimension in x.

Returns
size in x

Definition at line 184 of file TOPGeoPMTArray.h.

184{return m_numColumns * getDx();}
double getDx() const
Returns spacing in x (column width)

◆ getSizeY()

double getSizeY ( ) const
inline

Returns array volume dimension in y.

Returns
size in y

Definition at line 190 of file TOPGeoPMTArray.h.

190{return m_numRows * getDy();}
double getDy() const
Returns spacing in y (row height)

◆ getSizeZ()

double getSizeZ ( ) const
inline

Returns array volume dimension in z.

Returns
size in z

Definition at line 196 of file TOPGeoPMTArray.h.

197 {
199 }
double getFilterThickness() const
Returns wavelength filter thickness.
double getCookieThickness() const
Returns silicone cookie thickness.
double getAirGap() const
Returns air gap.
double getSizeZ() const
Returns full size in z.
Definition: TOPGeoPMT.h:141

◆ getX()

double getX ( unsigned  col) const
inline

Returns x coordinate of column center.

Parameters
colvalid column number (1-based)
Returns
x coordinate of column center

Definition at line 206 of file TOPGeoPMTArray.h.

207 {
208 return (int)(m_numColumns + 1 - 2 * col) / 2.0 * getDx();
209 }

◆ getY()

double getY ( unsigned  row) const
inline

Returns the y coordinate of row center.

Parameters
rowvalid row number (1-based)
Returns
y coordinate of row center

Definition at line 216 of file TOPGeoPMTArray.h.

217 {
218 return (int)(2 * row - m_numRows - 1) / 2.0 * getDy();
219 }

◆ setAirGap()

void setAirGap ( double  gap)
inline

Sets air gap for optically decoupled PMT's.

Parameters
gapgap thickness

Definition at line 60 of file TOPGeoPMTArray.h.

60{m_airGap = gap;}

◆ 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 66 of file TOPGeoPMTArray.h.

66{m_decoupledPMTs.push_back(pmtID);}

◆ 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;}

◆ setSiliconeCookie()

void setSiliconeCookie ( double  thickness,
const std::string &  material 
)
inline

Sets silicone cookie.

Parameters
thicknessthickness
materialmaterial name

Definition at line 73 of file TOPGeoPMTArray.h.

74 {
75 m_cookieThickness = thickness;
76 m_cookieMaterial = material;
77 }

◆ setWavelengthFilter()

void setWavelengthFilter ( double  thickness,
const std::string &  material 
)
inline

Sets wavelength filter.

Parameters
thicknessthickness
materialmaterial name

Definition at line 84 of file TOPGeoPMTArray.h.

85 {
86 m_filterThickness = thickness;
87 m_filterMaterial = material;
88 }

Member Data Documentation

◆ m_airGap

float m_airGap = 0
private

air gap thickness for decoupled PMT's

Definition at line 312 of file TOPGeoPMTArray.h.

◆ m_cookieMaterial

std::string m_cookieMaterial
private

silicone cookie material

Definition at line 315 of file TOPGeoPMTArray.h.

◆ m_cookieThickness

float m_cookieThickness = 0
private

silicone cookie thickness

Definition at line 314 of file TOPGeoPMTArray.h.

◆ m_decoupledPMTs

std::vector<unsigned> m_decoupledPMTs
private

ID's of decoupled PMT's.

Definition at line 313 of file TOPGeoPMTArray.h.

◆ m_dx

float m_dx = 0
private

spacing in x

Definition at line 306 of file TOPGeoPMTArray.h.

◆ m_dy

float m_dy = 0
private

spacing in y

Definition at line 307 of file TOPGeoPMTArray.h.

◆ m_filterMaterial

std::string m_filterMaterial
private

wavelength filter material

Definition at line 317 of file TOPGeoPMTArray.h.

◆ m_filterThickness

float m_filterThickness = 0
private

wavelength filter thickness

Definition at line 316 of file TOPGeoPMTArray.h.

◆ m_gx

float m_gx = 0
private

gap between PMT's in x

Definition at line 308 of file TOPGeoPMTArray.h.

◆ m_gy

float m_gy = 0
private

gap between PMT's in y

Definition at line 309 of file TOPGeoPMTArray.h.

◆ m_material

std::string m_material
private

material name into which PMT's are inserted

Definition at line 310 of file TOPGeoPMTArray.h.

◆ m_name

std::string m_name
protectedinherited

geometry object name

Definition at line 89 of file TOPGeoBase.h.

◆ m_numColumns

unsigned m_numColumns = 0
private

number of columns

Definition at line 305 of file TOPGeoPMTArray.h.

◆ m_numRows

unsigned m_numRows = 0
private

number of rows

Definition at line 304 of file TOPGeoPMTArray.h.

◆ m_pmt

TOPGeoPMT m_pmt
private

PMT geometry parameters.

Definition at line 311 of file TOPGeoPMTArray.h.


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