#include using namespace std; #define NLAYERS_BCAL 10 double BCAL_TimeWalkUp(double fADC, int layer) { double tw_par[NLAYERS_BCAL][4] ={ {18.9945, 0.392085, 0.0714483, -1.24097}, // layer 1 {18.8175, 0.12678, 0.0248285, -1.07684}, // layer 2 {18.9407, 0.0984009, 0.0205023, -1.06382}, // layer 3 {19.0711, 0.105819, 0.0227548, -1.07173}, // layer 4 {19.2103, 0.39418, 0.071816, -1.2435}, // layer 5 {19.1614, 0.102945, 0.021786, -1.06837}, // layer 6 {19.3006, 0.10465, 0.0229067, -1.0724}, // layer 7 {19.4781, 0.3785, 0.0705406, -1.23932}, // layer 8 {19.5888, 0.366996, 0.0701293, -1.23912}, // layer 9 {19.8455, 0.332666, 0.0693766, -1.23883} // 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.0173, 0.139478, 0.0305921, -1.09771}, // layer 1 {18.8138, 0.0271288, 0.0057779, -1.01749}, // layer 2 {18.9702, 0.150068, 0.0304246, -1.09616}, // layer 3 {19.0065, 0.0312956, 0.00693649, -1.02127}, // layer 4 {19.1105, 0.150614, 0.0308815, -1.09821}, // layer 5 {19.1489, 0.0290422, 0.00653761, -1.02009}, // layer 6 {19.2678, 0.0330413, 0.00753493, -1.02323}, // layer 7 {19.4377, 0.1425, 0.0307528, -1.09841}, // layer 8 {19.4774, 0.145233, 0.0306338, -1.09757}, // layer 9 {19.743, 0.133273, 0.0305021, -1.09835} // 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]); }