#include using namespace std; #define NLAYERS_BCAL 10 double BCAL_TimeWalkUp(double fADC, int layer) { double tw_par[NLAYERS_BCAL][4] ={ {28.972, 0.137209, 0.018331, -1.06768}, // layer 1 {29.4839, 0.0390451, 0.00639502, -1.02328}, // layer 2 {30.5907, 0.0139987, 0.00332873, -1.01247}, // layer 3 {31.8607, 0.0105306, 0.00383546, -1.01485}, // layer 4 {33.1846, 0.00492541, 0.00251299, -1.00984}, // layer 5 {30.5564, 0.0398264, 0.00115586, -0.999979}, // layer 6 {30.0403, 0.0373051, 0.000947487, -0.999774}, // layer 7 {30.4264, 0.0393268, 0.000954251, -0.999938}, // layer 8 {30.7162, 0.0406687, 0.00118828, -1.0001}, // layer 9 {30.5903, 0.04, 0.006, -1} // 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] ={ {19.3532, 0.0168939, 0.00359411, -1.01342}, // layer 1 {19.5011, 0.0217936, 0.00480584, -1.01781}, // layer 2 {19.3913, 0.0263157, 0.00544492, -1.01998}, // layer 3 {19.7508, 0.0174507, 0.004497, -1.01696}, // layer 4 {20.125, 0.0106706, 0.00339171, -1.01303}, // layer 5 {20.5547, 0.00977679, 0.00366579, -1.01424}, // layer 6 {15.0069, 0.0287749, 0.00214258, -1.00692}, // layer 7 {19.7014, 0.0388712, 0.00123469, -0.99987}, // layer 8 {19.701, 0.0388568, 0.00124304, -0.999867}, // layer 9 {19.9486, 0.0402503, 0.00136196, -1.00004} // 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]); }