23#ifndef O2_MCH_MATHIESON_H
24#define O2_MCH_MATHIESON_H
59 int axe,
int chamberId,
double mPrimitive[]);
66 int axe,
int chamberId,
double mathieson[]);
68 double xy0,
int axe,
int chamberId,
double* integrals);
70 int axe,
int chamberId,
double Integrals[]);
73 const double* yInf,
const double* ySup,
int N,
74 int chamberId,
double Integrals[]);
77 const double* yInf,
const double* ySup,
int N);
79 int chamberId,
double Integrals[]);
83 const double* theta,
int N,
int K,
84 int chamberId,
double Integrals[]);
90bool checkIntegrals(
const double* xInf,
const double* xSup,
const double* yInf,
const double* ySup,
91 const double* integralsToCheck,
int chId,
int N);
94double*
getVarX(
double* theta,
int K);
95double*
getVarY(
double* theta,
int K);
96double*
getMuX(
double* theta,
int K);
97double*
getMuY(
double* theta,
int K);
98double*
getW(
double* theta,
int K);
103const double*
getConstMuX(
const double* theta,
int K);
104const double*
getConstMuY(
const double* theta,
int K);
105const double*
getConstW(
const double* theta,
int K);
108double*
getX(
double* xyDxy,
int N);
109double*
getY(
double* xyDxy,
int N);
110double*
getDX(
double* xyDxy,
int N);
111double*
getDY(
double* xyDxy,
int N);
113const double*
getConstX(
const double* xyDxy,
int N);
114const double*
getConstY(
const double* xyDxy,
int N);
115const double*
getConstDX(
const double* xyDxy,
int N);
116const double*
getConstDY(
const double* xyDxy,
int N);
119double*
getXInf(
double* xyInfSup,
int N);
120double*
getYInf(
double* xyInfSup,
int N);
121double*
getXSup(
double* xyInfSup,
int N);
122double*
getYSup(
double* xyInfSup,
int N);
123const double*
getConstXInf(
const double* xyInfSup,
int N);
124const double*
getConstYInf(
const double* xyInfSup,
int N);
125const double*
getConstXSup(
const double* xyInfSup,
int N);
126const double*
getConstYSup(
const double* xyInfSup,
int N);
129void copyTheta(
const double* theta0,
int K0,
double* theta,
int K1,
int K);
130void copyXYdXY(
const double* xyDxy0,
int N0,
double* xyDxy,
int N1,
int N);
133void xyDxyToxyInfSup(
const double* xyDxy,
int nxyDxy,
double* xyInfSup);
136 int nMask,
double* xyDxyMasked,
int nxyDxyMasked);
139 int nMask,
double* xyDxyMasked,
int ndxyDxyMasked);
142 double* maskedTheta,
int maskedK);
144void printTheta(
const char*
str,
double meanCharge,
const double* theta,
int K);
146void printXYdXY(
const char*
str,
const double* xyDxy,
int NMax,
int N,
147 const double* val1,
const double* val2);
156 const double* yInf,
const double* ySup,
int N,
157 int chamberId,
double Integrals[]);
159 const double* theta,
int N,
160 int K,
int chamberId,
163 int K,
int chamberId,
double Cij[]);
GLint GLint GLsizei GLint GLenum GLenum const void * pixels
void o2_mch_compute2DMathiesonMixturePadIntegrals(const double *xyInfSup0, const double *theta, int N, int K, int chamberId, double Integrals[])
void o2_mch_initMathieson()
void o2_mch_computeCij(const double *xyInfSup0, const double *theta, int N, int K, int chamberId, double Cij[])
void o2_mch_compute2DPadIntegrals(const double *xInf, const double *xSup, const double *yInf, const double *ySup, int N, int chamberId, double Integrals[])
void initMathieson(int useSpline_, int useCache_)
const double * getConstXInf(const double *xyInfSup, int N)
void maskedCopyToXYInfSup(const double *xyDxy, int ndxyDxy, const Mask_t *mask, int nMask, double *xyDxyMasked, int ndxyDxyMasked)
void maskedCopyTheta(const double *theta, int K, const Mask_t *mask, int nMask, double *maskedTheta, int maskedK)
double * getMuY(double *theta, int K)
struct o2::mch::SplineCoef SplineCoef_t
const double * getConstMuAndW(const double *theta, int K)
void printTheta(const char *str, double meanCharge, const double *theta, int K)
void compute2DPadIntegrals(const double *xInf, const double *xSup, const double *yInf, const double *ySup, int N, int chamberId, double Integrals[])
void printXYdXY(const char *str, const double *xyDxy, int NMax, int N, const double *val1, const double *val2)
double * getDX(double *xyDxy, int N)
bool checkIntegrals(const double *xInf, const double *xSup, const double *yInf, const double *ySup, const double *integralsToCheck, int chId, int N)
CompressedPads_t * compressPads(const double *xInf, const double *xSup, const double *yInf, const double *ySup, int N)
void computeFastCij(const Pads &pads, const Pads &pixel, double Cij[])
const double * getConstDX(const double *xyDxy, int N)
void splineMathiesonPrimitive(const double *x, int N, int axe, int chamberId, double *mPrimitive)
double * getX(double *xyDxy, int N)
double * getY(double *xyDxy, int N)
void compute1DPadIntegrals(const double *xyInf, const double *xySup, int N, double xy0, int axe, int chamberId, double *integrals)
double * getYSup(double *xyInfSup, int N)
void maskedCopyXYdXY(const double *xyDxy, int nxyDxy, const Mask_t *mask, int nMask, double *xyDxyMasked, int nxyDxyMasked)
double * getYInf(double *xyInfSup, int N)
const double * getConstVarY(const double *theta, int K)
void computeCij(const Pads &pads, const Pads &pixel, double Cij[])
void copyTheta(const double *theta0, int K0, double *theta, int K1, int K)
double * getMuAndW(double *theta, int K)
void initSplineMathiesonPrimitive()
SplineCoef * splineCoef[2][2]
const double * getConstW(const double *theta, int K)
double * getVarX(double *theta, int K)
void compute2DMathiesonMixturePadIntegrals(const double *xyInfSup0, const double *theta, int N, int K, int chamberId, double Integrals[])
void computeCompressed2DPadIntegrals(CompressedPads_t *compressedPads, double xShift, double yShift, int N, int chamberId, double Integrals[])
void checkCij(const Pads &pads, const Pads &pixels, const double *checkCij, int mode)
void xyDxyToxyInfSup(const double *xyDxy, int nxyDxy, double *xyInfSup)
const double * getConstDY(const double *xyDxy, int N)
double * getMuX(double *theta, int K)
void copyXYdXY(const double *xyDxy0, int N0, double *xyDxy, int N1, int N)
double * getXSup(double *xyInfSup, int N)
double * getW(double *theta, int K)
const double * getConstYInf(const double *xyInfSup, int N)
const double * getConstY(const double *xyDxy, int N)
const double * getConstX(const double *xyDxy, int N)
const double * getConstMuX(const double *theta, int K)
void deleteCompressedPads(CompressedPads_t *compressedPads)
double * getVarY(double *theta, int K)
double * getDY(double *xyDxy, int N)
const double * getConstXSup(const double *xyInfSup, int N)
const double * getConstMuY(const double *theta, int K)
void compute1DMathieson(const double *xy, int N, int axe, int chamberId, double mathieson[])
const double * getConstVarX(const double *theta, int K)
void mathiesonPrimitive(const double *xy, int N, int axe, int chamberId, double mPrimitive[])
void computeSplineCoef(const double *xy, double xyStep, const double *f, int N, double leftDerivative, double rightDerivative, SplineCoef *splineCoef)
double * getXInf(double *xyInfSup, int N)
const double * getConstYSup(const double *xyInfSup, int N)
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...