void init(std::string const& out_file) { initHist(out_file); // intime sample is [2] double pulseShapeTemplate[NSAMPLES+2]; for(int i=0; i<(NSAMPLES+2); i++){ // iwf/4. - (500 / 2) + 25. // double x = double( IDSTART + NFREQ * (i + 3) - WFLENGTH / 2); // double x = double( IDSTART + NFREQ * (i + 3) - WFLENGTH / 2); // double x = double( IDSTART + NFREQ * (i + 3) - 500 / 2); //----> 500 ns is fixed! // x = double( IDSTART + NFREQ * i + 3*25. - 500 / 2. ); //----> 500 ns is fixed! double x = double( IDSTART + NFREQ * (i + 3) + NFREQ - 500 / 2); //----> 500 ns is fixed! pulseShapeTemplate[i] = pSh.fShape(x); std::cout << " >> pulseShapeTemplate[" << i << "] " << pulseShapeTemplate[i] << " at x = " << x << std::endl; } // for(int i=0; i<(NSAMPLES+2); i++) pulseShapeTemplate[i] /= pulseShapeTemplate[2]; for (int i=0; i<(NSAMPLES+2); ++i) fullpulse(i+7) = pulseShapeTemplate[i]; for (int i=0; i<NSAMPLES; ++i) { for (int j=0; j<NSAMPLES; ++j) { int vidx = std::abs(j-i); noisecor(i,j) = pSh.corr(vidx); } } int activeBXs[] = { -5, -4, -3, -2, -1, 0, 1, 2, 3, 4 }; activeBX.resize(10); for (unsigned int ibx=0; ibx<10; ++ibx) { activeBX.coeffRef(ibx) = activeBXs[ibx]; } // activeBX.resize(1); // activeBX.coeffRef(0) = 0; }
double funcPulseShape( double *x, double *par ) { double t = x[0] - par[0]; return par[1] + par[2] * pSh.fShape(t); }