#include using namespace std; #define NLAYERS_BCAL 10 double BCAL_TimeWalkUp(double fADC, int layer) { double tw_par[NLAYERS_BCAL][4] ={ {25.0487, 1.79482, 0.155362, -1.56755}, // layer 1 {27.2198, 108.226, 0.94312, -15.5495}, // layer 2 {29.1501, 4.05744e+07, 4.04184, 4.07531e+06}, // layer 3 {29, 237, 1.2, -35}, // 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.1866, 0.343686, 0.047022, -1.14654}, // layer 1 {20.1787, 0.0974848, 0.0161836, -1.04952}, // layer 2 {20.334, 2.76096, 0.224098, -1.97925}, // layer 3 {21, 0.4, 0.061, -1.2}, // 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]); }