12#ifndef O2_TRD_GEOMETRYBASE_H
13#define O2_TRD_GEOMETRYBASE_H
28 GPUd() int isVersion() {
return 1; }
29 GPUd() bool isHole(
int la,
int st,
int se)
const {
return (((se == 13) || (se == 14) || (se == 15)) && (
st == 2)); }
40 GPUd() bool getSMstatus(
int sm)
const {
return (
mSMStatus & (0x1 << sm)) != 0; }
41 GPUd() static
int getDetectorSec(
int det) {
return (det % (constants::NLAYER * constants::NSTACK)); }
43 GPUd() static
int getDetector(
int layer,
int stack,
int sector) {
return (
layer +
stack * constants::NLAYER + sector * constants::NLAYER * constants::NSTACK); }
44 GPUd() static
int getLayer(
int det) {
return (det % constants::NLAYER); }
45 GPUd() static
int getStack(
int det) {
return ((det % (constants::NLAYER * constants::NSTACK)) / constants::NLAYER); }
52 GPUd() int getColMax(
int layer)
const {
return getPadPlane(
layer, 0)->getNcols(); }
54 GPUd() float getCol0(
int layer)
const {
return getPadPlane(
layer, 0)->getCol0(); }
61 static constexpr GPUd() int getSector(
int det) {
return (det / (constants::NLAYER * constants::NSTACK)); }
63 static constexpr GPUd() double getXtrdBeg() {
return XTRDBEG; }
64 static constexpr GPUd() double getXtrdEnd() {
return XTRDEND; }
65 static constexpr GPUd() double getChamberWidth(
int layer) {
return CWIDTH[
layer]; }
67 static constexpr GPUd() double getAlpha() {
return 2.0 * 3.14159265358979324 / constants::NSECTOR; }
68 static constexpr GPUd() double cheight() {
return CH; }
69 static constexpr GPUd() double cheightSV() {
return CHSV; }
70 static constexpr GPUd() double cspace() {
return VSPACE; }
71 static constexpr GPUd() double craHght() {
return CRAH; }
72 static constexpr GPUd() double cdrHght() {
return CDRH; }
73 static constexpr GPUd() double camHght() {
return CAMH; }
74 static constexpr GPUd() double croHght() {
return CROH; }
75 static constexpr GPUd() double csvHght() {
return CSVH; }
76 static constexpr GPUd() double croWid() {
return CROW; }
77 static constexpr GPUd() double anodePos() {
return ANODEPOS; }
78 static constexpr GPUd() double myThick() {
return RMYTHICK; }
79 static constexpr GPUd() double drThick() {
return DRTHICK; }
80 static constexpr GPUd() double amThick() {
return AMTHICK; }
81 static constexpr GPUd() double drZpos() {
return DRZPOS; }
82 static constexpr GPUd() double rpadW() {
return RPADW; }
83 static constexpr GPUd() double cpadW() {
return CPADW; }
84 static constexpr GPUd() double cwidcha() {
return (SWIDTH2 - SWIDTH1) / SHEIGHT * (CH + VSPACE); }
85 static constexpr GPUd() int MCMmax() {
return MCMMAX; }
86 static constexpr GPUd() int MCMrow() {
return MCMROW; }
87 static constexpr GPUd() int ROBmaxC0() {
return ROBMAXC0; }
88 static constexpr GPUd() int ROBmaxC1() {
return ROBMAXC1; }
89 static constexpr GPUd() int ADCmax() {
return ADCMAX; }
90 static constexpr GPUd() int TBmax() {
return TBMAX; }
91 static constexpr GPUd() int padmax() {
return PADMAX; }
92 static constexpr GPUd() int colmax() {
return COLMAX; }
93 static constexpr GPUd() int rowmaxC0() {
return ROWMAXC0; }
94 static constexpr GPUd() int rowmaxC1() {
return ROWMAXC1; }
166 static
GPUglobalconstexpr()
double PHCTHICK = CROH - PPDTHICK - PPPTHICK - PGLTHICK - PCBTHICK * 2.0 - PPCTHICK - PRBTHICK - PELTHICK;
191 TIME0BASE + 1 * (CH + VSPACE),
192 TIME0BASE + 2 * (CH + VSPACE),
193 TIME0BASE + 3 * (CH + VSPACE),
194 TIME0BASE + 4 * (CH + VSPACE),
195 TIME0BASE + 5 * (CH + VSPACE)};
201 static
GPUglobalconstexpr()
double CWIDTH[constants::NLAYER] = {90.4, 94.8, 99.3, 103.7, 108.1, 112.6};
206 {124.0, 124.0, 110.0, 124.0, 124.0},
207 {124.0, 124.0, 110.0, 124.0, 124.0},
208 {131.0, 131.0, 110.0, 131.0, 131.0},
209 {138.0, 138.0, 110.0, 138.0, 138.0},
210 {145.0, 145.0, 110.0, 145.0, 145.0},
211 {147.0, 147.0, 110.0, 147.0, 147.0}};
static constexpr GPUd() double craHght()
static constexpr GPUd() int padmax()
static constexpr GPUd() int rowmaxC1()
static constexpr GPUd() double cspace()
static constexpr GPUd() double getAlpha()
GPUd() int getColMax(int layer) const
static constexpr GPUd() double cwidcha()
static constexpr GPUd() double cdrHght()
static constexpr GPUd() int getSector(int det)
GPUd() float getRowPos(int layer
static constexpr GPUd() int colmax()
static constexpr GPUd() double getXtrdBeg()
static constexpr GPUd() double croHght()
GPUd() float getRowEnd(int layer
static constexpr GPUd() double amThick()
static constexpr GPUd() double getTime0(int layer)
GPUd() float getRow0(int layer
static constexpr GPUd() int MCMmax()
static constexpr GPUd() double csvHght()
static constexpr GPUd() double cheight()
GPUd() float getRowSize(int layer
static constexpr GPUd() double cpadW()
static constexpr GPUd() double anodePos()
static constexpr GPUd() double rpadW()
static constexpr GPUd() double getXtrdEnd()
static constexpr GPUd() double croWid()
static constexpr GPUd() double getChamberLength(int layer
static constexpr GPUd() double camHght()
static constexpr GPUd() int rowmaxC0()
GPUd() const PadPlane *getPadPlane(int det) const
PadPlane mPadPlanes[constants::NLAYER *constants::NSTACK]
static GPUglobalconstexpr() double XTRDBEG
X-coordinate in tracking system of begin of TRD mother volume.
ClassDefNV(GeometryBase, 1)
static GPUglobalconstexpr() double CLENGTH[constants
static constexpr GPUd() int ROBmaxC0()
static constexpr GPUd() double getChamberWidth(int layer)
static GPUglobalconstexpr() double TLENGTH
Total length of the TRD mother volume.
static constexpr GPUd() double drThick()
static constexpr GPUd() double cheightSV()
static constexpr GPUd() int MCMrow()
static constexpr GPUd() int ROBmaxC1()
static constexpr GPUd() int TBmax()
static constexpr GPUd() double drZpos()
static constexpr GPUd() int ADCmax()
GPUd() float getCol0(int layer) const
static constexpr GPUd() double myThick()
GLenum GLuint GLint GLint layer
GLdouble GLdouble GLdouble z
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...