11#include <top/dbobjects/TOPGeoBase.h>
12#include <top/dbobjects/TOPGeoPMT.h>
44 double gapX,
double gapY,
45 const std::string& material,
47 const std::string& name =
"TOPPMTArray"):
206 double getX(
unsigned col)
const
216 double getY(
unsigned row)
const
239 unsigned getPmtID(
unsigned row,
unsigned col)
const;
246 unsigned getRow(
unsigned pmtID)
const;
253 unsigned getColumn(
unsigned pmtID)
const;
262 int getPixelID(
double x,
double y,
unsigned pmtID)
const;
270 int getPixelID(
unsigned pmtID,
unsigned pmtPixelID)
const;
300 void print(
const std::string& title =
"PMT array geometry parameters")
const override;
Base class for geometry parameters.
Geometry parameters of MCP-PMT array.
const std::string & getCookieMaterial() const
Returns silicone cookie material.
double getSizeZ() const
Returns array volume dimension in z.
unsigned getNumColumns() const
Returns number of array columns.
void setSiliconeCookie(double thickness, const std::string &material)
Sets silicone cookie.
unsigned m_numColumns
number of columns
std::vector< unsigned > m_decoupledPMTs
ID's of decoupled PMT's.
std::string m_cookieMaterial
silicone cookie material
TOPGeoPMTArray(unsigned numColumns, unsigned numRows, double gapX, double gapY, const std::string &material, const TOPGeoPMT &pmt, const std::string &name="TOPPMTArray")
Full constructor.
void setDecoupledPMT(unsigned pmtID)
Sets PMT as optically decoupled.
double getX(unsigned col) const
Returns x coordinate of column center.
std::string m_material
material name into which PMT's are inserted
double getY(unsigned row) const
Returns the y coordinate of row center.
float m_gx
gap between PMT's in x
double getDx() const
Returns spacing in x (column width)
double getFilterThickness() const
Returns wavelength filter thickness.
std::string m_filterMaterial
wavelength filter material
unsigned m_numRows
number of rows
unsigned getSize() const
Returns array size.
unsigned getNumPixelRows() const
Returns number of pixel rows.
double getDy() const
Returns spacing in y (row height)
void setWavelengthFilter(double thickness, const std::string &material)
Sets wavelength filter.
unsigned getNumPixels() const
Returns number of pixels.
unsigned getNumPixelColumns() const
Returns number of pixel columns.
double getSizeX() const
Returns array volume dimension in x.
const std::string & getFilterMaterial() const
Returns wavelenght filter material.
const TOPGeoPMT & getPMT() const
Returns PMT geometry parameters.
double getSizeY() const
Returns array volume dimension in y.
float m_filterThickness
wavelength filter thickness
TOPGeoPMT m_pmt
PMT geometry parameters.
const std::string & getMaterial() const
Returns material name into which PMT's are inserted.
float m_cookieThickness
silicone cookie thickness
double getGapY() const
Returns gap between PMT's in y.
TOPGeoPMTArray()
Default constructor.
unsigned getNumRows() const
Returns number of array rows.
ClassDefOverride(TOPGeoPMTArray, 3)
ClassDef.
double getCookieThickness() const
Returns silicone cookie thickness.
void setAirGap(double gap)
Sets air gap for optically decoupled PMT's.
float m_gy
gap between PMT's in y
double getAirGap() const
Returns air gap.
const std::vector< unsigned > & getDecoupledPMTs() const
Returns ID's of optically decoupled PMT's.
float m_airGap
air gap thickness for decoupled PMT's
double getGapX() const
Returns gap between PMT's in x.
Geometry parameters of MCP-PMT.
double getSizeZ() const
Returns full size in z.
unsigned getNumColumns() const
Returns number of pixel columns.
unsigned getNumPixels() const
Returns number of pixels.
double getSizeX() const
Returns full size in x.
double getSizeY() const
Returns full size in y.
unsigned getNumRows() const
Returns number of pixel rows.
bool isConsistent() const override
Check for consistency of data members.
static double s_unit
conversion unit for length
void generateDecoupledPMTs(double fraction)
Generate randomly a fraction of PMT's to be optically decoupled.
void print(const std::string &title="PMT array geometry parameters") const override
Print the content of the class.
bool isPMTDecoupled(unsigned pmtID) const
Checks if PMT is optically decoupled.
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)
unsigned getPmtID(unsigned row, unsigned col) const
Converts row and column numbers to PMT ID (1-based)
Abstract base class for different kinds of events.