67 int sigLength = signal.size();
79 int ap = -1, app = -1;
80 for (
auto it = signal.rbegin(); it != signal.rend(); ++it) {
96 if (app >= 0 && ap >= 0) {
136 const float eMinTOF = 10.;
137 const float kAmp = 0.35;
139 if (
mAmp < eMinTOF) {
144 int posK = sigLength - 1;
145 float levelK = pedestal + kAmp *
mAmp;
146 while (posK >= 0 && signal[posK] <= levelK) {
151 if (posK == 0 || posK == sigLength - 1) {
159 double sx = 0., sy = 0., sxx = 0., sxy = 0.;
165 x = sigLength - iup - 1;
175 if (idn < sigLength) {
176 if (signal[idn] < pedestal) {
181 x = sigLength - idn - 1;
190 if (idn >= sigLength && iup < 0) {
195 double det = np * sxx - sx * sx;
202 double c1 = (np * sxy - sx * sy) / det;
203 double c0 = (sy -
c1 * sx) / np;
209 mTime += (levelK - c0) /
c1 - 5.;