11 bool iPedestalConstraint,
bool iTimeConstraint,
bool iAddPulseJitter,
12 double iPulseJitter,
double iTimeMean,
double iPedMean,
13 unsigned nSamplesToFit) :
62 void PulseShapeFunctor::funcShape(std::array<double,HcalConst::maxSamples> & ntmpbin,
const double pulseTime,
const double pulseHeight,
const double slew) {
76 if( offset_start == 1.0 ){ offset_start = 0.; i_start-=1; }
78 const int bin_start = (
int) offset_start;
79 const int bin_0_start = ( offset_start < bin_start + 0.5 ? bin_start -1 : bin_start );
80 const int iTS_start = i_start/ns_per_bx;
82 const double factor = offset_start - bin_0_start - 0.5;
85 ntmpbin[iTS_start] = (bin_0_start == -1 ?
89 for(
int iTS = iTS_start+1; iTS < num_bx; ++iTS){
90 int bin_idx = distTo25ns_start + 1 + (iTS-iTS_start-1)*ns_per_bx + bin_0_start;
94 for(
int i=iTS_start;
i < num_bx; ++
i) {
95 ntmpbin[
i] *= pulseHeight;
120 const double pedestal=pars[nPars-1];
127 const unsigned parBy2=(nPars-1)/2;
139 for (i=1; i<parBy2; ++
i) {
158 for (i=1; i<parBy2; ++
i) {
180 for(j=0; j< parBy2; ++j ){
void singlePulseShapeFuncMahi(const double *x)
void EvalPulse(const double *pars)
constexpr bool isNotFinite(T x)
double psFit_erry[HcalConst::maxSamples]
double singlePulseShapeFunc(const double *x)
std::array< double, HcalConst::maxSamples > pulse_shape_
std::vector< float > acc25nsVec
double psFit_y[HcalConst::maxSamples]
std::vector< float > diffVarItvlIdxZEROVec
PulseShapeFunctor(const HcalPulseShapes::Shape &pulse, bool iPedestalConstraint, bool iTimeConstraint, bool iAddPulseJitter, double iPulseJitter, double iTimeMean, double iPedMean, unsigned int nSamplesToFit)
void funcShape(std::array< double, HcalConst::maxSamples > &ntmpbin, const double pulseTime, const double pulseHeight, const double slew)
Abs< T >::type abs(const T &t)
std::array< float, HcalConst::maxPSshapeBin > pulse_hist
std::vector< float > diff25nsItvlVec
std::vector< float > accVarLenIdxMinusOneVec
std::vector< float > diffVarItvlIdxMinusOneVec
double pulse(double x, double y, double z, double t)
double triplePulseShapeFunc(const double *x)
double doublePulseShapeFunc(const double *x)
double psFit_erry2[HcalConst::maxSamples]
double psFit_x[HcalConst::maxSamples]
std::array< double, HcalConst::maxSamples > pulse_shape_sum_
double psFit_slew[HcalConst::maxSamples]
std::vector< float > accVarLenIdxZEROVec
double EvalPulseM2(const double *pars, const unsigned nPar)