46         Int_t i_size = in.size();
 
   54         Int_t i_ntab  =  
fCoeff.size();
 
   55         std::vector<Double_t> temp(i_size + i_nlpad + i_nrpad);
 
   58         for (Int_t 
i = 0; 
i < i_nlpad; 
i++) *p_data++ = in[0];
 
   59         for (Int_t 
i = 0; 
i < i_size;  
i++) *p_data++ = in[
i];
 
   60         for (Int_t 
i = 0; 
i < i_nrpad; 
i++) *p_data++ = in[i_size-1];
 
   65         for (Int_t 
i = 0; 
i < i_size; 
i++) {
 
   70                 for (Int_t j = 0; j < i_ntab; j++)
 
   71                         d_sum += *p_c++ * *p_d++;
 
   96         Int_t i_nlhs = lhs.
Size();
 
   97         Int_t i_nrhs = rhs.
Size();
 
   98         Int_t i_size = i_nlhs + i_nrhs - 1;
 
  103         for (Int_t 
i = 0; 
i < i_size; 
i++) {
 
  105                 for (Int_t j = 0; j < i_nlhs; j++) {
 
  106                         Int_t k = j - 
i + i_nrhs - 1;
 
  107                         Double_t f_rhs = (k >= 0 && k < i_nrhs) ? p_rhs[k] : 0.;
 
  108                         f_sum += p_lhs[j] * f_rhs;
 
  132         for (Int_t 
i = 0; 
i < i_size; 
i++) 
fCoeff[
i] = data[
i];
 
  139                 Int_t i_size2 = i_size/2;
 
  140                 for (Int_t 
i = 0; 
i < i_size2; 
i++) {
 
  143                         if (f_left ==  f_right) i_nsym  += 1;
 
  144                         if (f_left == -f_right) i_nasym += 1;
 
  162         Int_t i_size = i_width;
 
  167         for (Int_t 
i = 0; 
i < i_size; 
i++) {
 
  177         Int_t i_size = i_width;
 
  183         fCoeff[i_size-1]=-(1-1./tau);
 
  185         for (Int_t 
i = 1; 
i < i_size-1; 
i++) {
 
  195         Int_t i_size = i_width;
 
  204         for (  
int i=0;
i<i_size;
i++)
 
  207                 val=pulseshape->
value(t,amplitude,0.);
 
  219         Int_t i_size = 2*i_rise + 2*i_flat+i_width+1;
 
  225         for (Int_t 
i = 0; 
i < i_rise; 
i++) {
 
  230         for (Int_t 
i = i_rise; 
i < (i_rise+i_flat); 
i++)
 
  233                 fCoeff[i_flat+i_width+
i+1] = -i_rise;
 
  236         for (Int_t 
i = (i_rise+i_flat); 
i <= (i_rise+i_flat+i_width); 
i++) {
 
  237                 fCoeff[
i]          = i_rise-2*i_rise/i_width*(
i-i_rise-i_width);
 
  246         Int_t i_size = 2*i_rise + i_flat;
 
  253         for (Int_t 
i = 0; 
i < i_size; 
i++) 
fCoeff[
i] = i_rise+1;
 
  254         for (Int_t 
i = 0; 
i < i_rise; 
i++) {
 
  266         Int_t i_size = 4*i_rise + 1;
 
  273         for (Int_t 
i = 0; 
i <= i_rise; 
i++) {
 
  286         Int_t i_size = i_lag + 2*i_width;
 
  293         for (Int_t 
i = 0; 
i < i_size; 
i++) 
fCoeff[
i] = 0;
 
  294         for (Int_t 
i = 0; 
i < i_width; 
i++) {
 
  306         Int_t i_size = i_npos + 2*(i_nzero + i_nneg);
 
  313         Int_t i_apos = 2*i_nneg;
 
  314         Int_t i_aneg = i_npos;
 
  316         for (Int_t 
i = 2; 
i < 
max(i_apos,i_aneg); 
i++) {
 
  317                 if (i_apos%
i == 0 && i_aneg%
i == 0) i_div = 
i;
 
  322         for (Int_t 
i = 0; 
i < i_size; 
i++) 
fCoeff[
i] = i_apos;
 
  323         for (Int_t 
i = 0; 
i < i_nneg; 
i++) {
 
  327         for (Int_t 
i = i_nneg; 
i < i_nneg+i_nzero; 
i++) {
 
  338         Int_t i_size = i_lag + 2;
 
  345         for (Int_t 
i = 0; 
i < i_size; 
i++) 
fCoeff[
i] = 0.;
 
void SetupPZDifferentiator(Int_t i_lag=0, Double_t d_fac=1.)
void SetupMA(Int_t i_width)
virtual void Filter(const std::vector< Double_t > &in, std::vector< Double_t > &out) const 
void SetNormalizeFloating(Double_t d_norm=1.)
void SetupBipolarTriangle(Int_t i_rise)
Double_t val[nBoxes][nFEBox]
void SetupBipolarTrapez(Int_t i_rise, Int_t i_flat, Int_t i_width)
friend F32vec4 max(const F32vec4 &a, const F32vec4 &b)
FADC FIR (finite impulse response) filter. 
void SetupMWD(Int_t i_width, Double_t tau)
void Convolute(const PndEmcFadcFilter &filt)
virtual double value(const double t, const double amp, const double toffset) const 
void SetupMatchedFilter(Int_t i_width, PndEmcAbsPulseshape *pulseshape, Double_t sampleRate)
void SetupDifferentiator(Int_t i_lag=0, Int_t i_width=1)
virtual ~PndEmcFadcFilter()
void SetData(Double_t data[], Int_t i_size, Int_t i_offset)
void SetupDoubleDifferentiator(Int_t i_npos=1, Int_t i_nneg=1, Int_t i_nzero=0)
std::vector< Double_t > fCoeff
void SetupTrapez(Int_t i_rise, Int_t i_flat)
ClassImp(PndEmcFadcFilter)
void SetNormalizeInteger(Int_t i_shift=0)