27#include <fairlogger/Logger.h>
41 mTiltingTan = TMath::Tan(TMath::DegToRad() * mTiltingAngle);
45int PadPlane::getPadRowNumberROC(
double z)
const
56 if ((
z > getRow0ROC()) || (
z < getRowEndROC())) {
62 while (nabove - nbelow > 1) {
63 middle = (nabove + nbelow) / 2;
64 if (
z == mPadRow[middle - 1]) {
67 if (
z > mPadRow[middle - 1]) {
82 LOG(fatal) <<
"MAXCOLS exceeded " <<
n <<
" > " << MAXCOLS;
90 LOG(fatal) <<
"MAXROWS exceeded " <<
n <<
" > " << MAXROWS;
95double PadPlane::getPadRow(
double z)
const
97 double lengthCorr = mLengthIPad * mInverseLengthOPad;
100 double padrow = -
z * mInverseLengthIPad + mNrows * 0.5;
107 if (
padrow >=
double(mNrows - 1)) {
108 padrow = double(mNrows - 1) + (
padrow - double(mNrows - 1)) * lengthCorr;
116 if (
padrow >
double(mNrows)) {
124double PadPlane::getPad(
double y,
double z)
const
127 double padrowOffset = getPadRowOffsetROC(
padrow,
z);
128 double tiltOffsetY = getTiltOffset(
padrow, padrowOffset);
130 double pad =
y * mInverseWidthIPad + mNcols * 0.5;
132 double lengthCorr = mWidthIPad * mInverseWidthOPad;
135 pad = 1.0 - (1.0 - pad) * lengthCorr;
138 if (pad >=
double(mNcols - 1)) {
139 pad = double(mNcols - 1) + (pad - double(mNcols - 1)) * lengthCorr;
142 double tiltOffsetPad;
143 if (pad <= 1.0 || pad >=
double(mNcols - 1)) {
144 tiltOffsetPad = tiltOffsetY * mInverseWidthOPad;
145 pad += tiltOffsetPad;
147 tiltOffsetPad = tiltOffsetY * mInverseWidthIPad;
148 pad += tiltOffsetPad;
156 if (pad >
double(mNcols)) {
void setTiltingAngle(double t)
GLdouble GLdouble GLdouble z
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"