#include using namespace std; #define NLAYERS_BCAL 10 double BCAL_TimeWalkUp(double fADC, int layer) { double tw_par[NLAYERS_BCAL][4] ={ {24.8203, 3.98413, 0.240411, -2.00183}, // layer 1 {25.1792, 2.19111, 0.176527, -1.65369}, // layer 2 {27.2732, 173.677, 1.04314, -19.6607}, // layer 3 {29.0226, 6.10783e+06, 3.61429, 455600}, // layer 4 {29, 237, 1.2, -35}, // layer 5 {29, 237, 1.2, -35}, // layer 6 {29, 237, 1.2, -35}, // layer 7 {29, 237, 1.2, -35}, // layer 8 {29, 237, 1.2, -35}, // layer 9 {29, 237, 1.2, -35} // layer 10 }; layer = layer<1 ? 1:layer>NLAYERS_BCAL ? NLAYERS_BCAL:layer; double *p = tw_par[layer-1]; return p[0]+p[1]/(pow(fADC,p[2])+p[3]); } double BCAL_TimeWalkDn(double fADC, int layer) { double tw_par[NLAYERS_BCAL][4] ={ {20.6278, 0.115916, 0.0223809, -1.07145}, // layer 1 {20.4584, 0.0934668, 0.0169301, -1.05244}, // layer 2 {20.0194, 0.214913, 0.0295056, -1.08731}, // layer 3 {20.2197, 3.21749, 0.230221, -1.9739}, // layer 4 {21, 0.4, 0.061, -1.2}, // layer 5 {21, 0.4, 0.061, -1.2}, // layer 6 {21, 0.4, 0.061, -1.2}, // layer 7 {21, 0.4, 0.061, -1.2}, // layer 8 {21, 0.4, 0.061, -1.2}, // layer 9 {21, 0.4, 0.061, -1.2} // layer 10 }; layer = layer<1 ? 1:layer>NLAYERS_BCAL ? NLAYERS_BCAL:layer; double *p = tw_par[layer-1]; return p[0]+p[1]/(pow(fADC,p[2])+p[3]); }