12#ifndef O2_TRD_PADPLANE_H
13#define O2_TRD_PADPLANE_H
67 mInverseLengthOPad = 1.0 / l;
72 mInverseWidthOPad = 1.0 /
w;
77 mInverseLengthIPad = 1.0 / l;
82 mInverseWidthIPad = 1.0 /
w;
98 if ((
z > getRow0()) || (
z < getRowEnd())) {
104 while (nabove - nbelow > 1) {
105 middle = (nabove + nbelow) / 2;
106 if (
z == (mPadRow[middle - 1] + mPadRowSMOffset)) {
109 if (
z > (mPadRow[middle - 1] + mPadRowSMOffset)) {
126 GPUd()
double getTiltOffset(
int row,
double rowOffset)
const
128 if (
row == 0 ||
row == mNrows - 1) {
129 return mTiltingTan * (rowOffset - 0.5 * mLengthOPad);
131 return mTiltingTan * (rowOffset - 0.5 * mLengthIPad);
134 GPUd() double getPadRowOffset(
int row,
double z)
const
136 if ((
row < 0) || (
row >= mNrows)) {
139 return mPadRow[
row] + mPadRowSMOffset -
z;
142 GPUd() double getPadRowOffsetROC(
int row,
double z)
const
144 if ((
row < 0) || (
row >= mNrows)) {
147 return mPadRow[
row] -
z;
151 GPUd() double getPadColOffset(
int col,
double rphi)
const
153 if ((
col < 0) || (
col >= mNcols)) {
156 return rphi - mPadCol[
col];
160 GPUd() double getTiltingAngle()
const {
return mTiltingAngle; };
161 GPUd()
int getNrows()
const {
return mNrows; };
162 GPUd()
int getNcols()
const {
return mNcols; };
163 GPUd() double getRow0()
const {
return mPadRow[0] + mPadRowSMOffset; };
164 GPUd() double getRow0ROC()
const {
return mPadRow[0]; };
165 GPUd() double getCol0()
const {
return mPadCol[0]; };
166 GPUd() double getRowEnd()
const {
return mPadRow[mNrows - 1] - mLengthOPad + mPadRowSMOffset; };
167 GPUd() double getRowEndROC()
const {
return mPadRow[mNrows - 1] - mLengthOPad; };
168 GPUd() double getColEnd()
const {
return mPadCol[mNcols - 1] + mWidthOPad; };
169 GPUd() double getRowPos(
int row)
const {
return mPadRow[
row] + mPadRowSMOffset; };
170 GPUd() double getRowPosROC(
int row)
const {
return mPadRow[
row]; };
171 GPUd() double getColPos(
int col)
const {
return mPadCol[
col]; };
174 if ((
row == 0) || (
row == mNrows - 1)) {
182 if ((
col == 0) || (
col == mNcols - 1)) {
189 GPUd() double getLengthRim()
const {
return mLengthRim; };
190 GPUd() double getWidthRim()
const {
return mWidthRim; };
191 GPUd() double getRowSpacing()
const {
return mRowSpacing; };
192 GPUd() double getColSpacing()
const {
return mColSpacing; };
193 GPUd() double getLengthOPad()
const {
return mLengthOPad; };
194 GPUd() double getLengthIPad()
const {
return mLengthIPad; };
195 GPUd() double getWidthOPad()
const {
return mWidthOPad; };
196 GPUd() double getWidthIPad()
const {
return mWidthIPad; };
197 GPUd() double getAnodeWireOffset()
const {
return mAnodeWireOffset; };
200 static constexpr int MAXCOLS = 144;
201 static constexpr int MAXROWS = 16;
224 double mTiltingAngle;
227 double mPadRow[MAXROWS];
228 double mPadCol[MAXCOLS];
230 double mPadRowSMOffset;
232 double mAnodeWireOffset;
234 double mInverseLengthIPad;
235 double mInverseLengthOPad;
237 double mInverseWidthIPad;
238 double mInverseWidthOPad;
void setPadRow(int ir, double r)
GPUd() double getRowEndROC() const
GPUd() double getColSpacing() const
GPUd() double getRow0ROC() const
void setWidthOPad(double w)
GPUd() double getPadRowOffset(int row
GPUd() double getCol0() const
GPUd() int getNrows() const
void setPadRowSMOffset(double o)
GPUd() double getColSize(int col) const
GPUd() double getWidthIPad() const
GPUd() double getColEnd() const
GPUd() double getWidthRim() const
PadPlane & operator=(const PadPlane &p)=delete
GPUd() double getWidthOPad() const
GPUd() double getLengthIPad() const
GPUd() double getAnodeWireOffset() const
GPUd() double getTiltingAngle() const
void setTiltingAngle(double t)
GPUd() int getNcols() const
GPUd() int getPadRowNumberROC(double z) const
void setRowSpacing(double s)
PadPlane(const PadPlane &p)=delete
void setWidthRim(double w)
void setWidthIPad(double w)
GPUd() double getRowSpacing() const
GPUd() int getPadRowNumber(double z) const
GPUd() double getRowPos(int row) const
void setPadCol(int ic, double c)
void setColSpacing(double s)
GPUd() double getColPos(int col) const
GPUd() double getRowSize(int row) const
void setLengthIPad(double l)
GPUd() double getRowPosROC(int row) const
void setAnodeWireOffset(float o)
void setLengthRim(double l)
GPUd() double getRowEnd() const
PadPlane(int layer, int stack)
GPUd() double getPadRowOffsetROC(int row
GPUd() double getLengthRim() const
void setLengthOPad(double l)
GPUd() double getRow0() const
GPUd() double getLengthOPad() const
GLenum GLuint GLint GLint layer
GLubyte GLubyte GLubyte GLubyte w
GLdouble GLdouble GLdouble z
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
o2::InteractionRecord ir(0, 0)