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]) {
80int PadPlane::getPadColNumber(
double rphi)
const
91 if ((rphi < getCol0()) || (rphi > getColEnd())) {
97 while (nabove - nbelow > 1) {
98 middle = (nabove + nbelow) / 2;
99 if (rphi == mPadCol[middle]) {
102 if (rphi > mPadCol[middle]) {
117 LOG(fatal) <<
"MAXCOLS exceeded " <<
n <<
" > " << MAXCOLS;
125 LOG(fatal) <<
"MAXROWS exceeded " <<
n <<
" > " << MAXROWS;
130double PadPlane::getPadRow(
double z)
const
132 double lengthCorr = mLengthIPad * mInverseLengthOPad;
135 double padrow = -
z * mInverseLengthIPad + mNrows * 0.5;
142 if (
padrow >=
double(mNrows - 1)) {
143 padrow = double(mNrows - 1) + (
padrow - double(mNrows - 1)) * lengthCorr;
151 if (
padrow >
double(mNrows)) {
159double PadPlane::getPad(
double y,
double z)
const
162 double padrowOffset = getPadRowOffsetROC(
padrow,
z);
163 double tiltOffsetY = getTiltOffset(
padrow, padrowOffset);
165 double pad =
y * mInverseWidthIPad + mNcols * 0.5;
167 double lengthCorr = mWidthIPad * mInverseWidthOPad;
170 pad = 1.0 - (1.0 - pad) * lengthCorr;
173 if (pad >=
double(mNcols - 1)) {
174 pad = double(mNcols - 1) + (pad - double(mNcols - 1)) * lengthCorr;
177 double tiltOffsetPad;
178 if (pad <= 1.0 || pad >=
double(mNcols - 1)) {
179 tiltOffsetPad = tiltOffsetY * mInverseWidthOPad;
180 pad += tiltOffsetPad;
182 tiltOffsetPad = tiltOffsetY * mInverseWidthIPad;
183 pad += tiltOffsetPad;
191 if (pad >
double(mNcols)) {
void setTiltingAngle(double t)
GLdouble GLdouble GLdouble z
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"