#include using namespace std; #define NLAYERS_BCAL 10 double BCAL_TimeWalkUp(double fADC, int layer) { double tw_par[NLAYERS_BCAL][4] ={ {25.0956, 1.93859, 0.164456, -1.60959}, // layer 1 {27.1094, 48.5252, 0.780523, -10.5072}, // layer 2 {29.0094, 6.16066e+07, 4.14221, 5.47715e+06}, // layer 3 {28.396, 28026.8, 2.2069, 529.352}, // 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.6377, 4.07762, 0.264534, -2.08526}, // layer 1 {20.1299, 0.0790059, 0.0127599, -1.03836}, // layer 2 {20.2926, 5.63404, 0.291209, -2.19461}, // layer 3 {20.0103, 16.5238, 0.440997, -3.10345}, // 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]); }