68 int sigLength = signal.size();
80 int ap = -1, app = -1;
81 for (
auto it = signal.rbegin(); it != signal.rend(); ++it) {
97 if (app >= 0 && ap >= 0) {
137 const float eMinTOF = 10.;
138 const float kAmp = 0.35;
140 if (
mAmp < eMinTOF) {
145 int posK = sigLength - 1;
146 float levelK = pedestal + kAmp *
mAmp;
147 while (posK >= 0 && signal[posK] <= levelK) {
152 if (posK == 0 || posK == sigLength - 1) {
160 double sx = 0., sy = 0., sxx = 0., sxy = 0.;
166 x = sigLength - iup - 1;
176 if (idn < sigLength) {
177 if (signal[idn] < pedestal) {
182 x = sigLength - idn - 1;
191 if (idn >= sigLength && iup < 0) {
196 double det = np * sxx - sx * sx;
203 double c1 = (np * sxy - sx * sy) / det;
204 double c0 = (sy -
c1 * sx) / np;
210 mTime += (levelK - c0) /
c1 - 5.;