13 #ifndef IWaveformTool_H
14 #define IWaveformTool_H
16 namespace fhicl {
class ParameterSet; }
25 template <
class T>
using Waveform = std::vector<T>;
48 virtual void configure(
const fhicl::ParameterSet& pset) = 0;
53 virtual void triangleSmooth(
const std::vector<float>&, std::vector<float>&,
size_t = 0)
const = 0;
54 virtual void triangleSmooth(
const std::vector<double>&, std::vector<double>&,
size_t = 0)
const = 0;
55 virtual void medianSmooth(
const std::vector<float>&, std::vector<float>&,
size_t = 3)
const = 0;
56 virtual void medianSmooth(
const std::vector<double>&, std::vector<double>&,
size_t = 3)
const = 0;
57 virtual void getTruncatedMeanRMS(
const std::vector<float>&,
float&,
float&,
float&,
int&)
const = 0;
58 virtual void getTruncatedMeanRMS(
const std::vector<double>&,
double&,
double&,
double&,
int&)
const = 0;
59 virtual void firstDerivative(
const std::vector<float>&, std::vector<float>&)
const = 0;
60 virtual void firstDerivative(
const std::vector<double>&, std::vector<double>&)
const = 0;
61 virtual void findPeaks(std::vector<float>::iterator, std::vector<float>::iterator,
PeakTupleVec&,
float,
size_t)
const = 0;
62 virtual void findPeaks(std::vector<double>::iterator, std::vector<double>::iterator,
PeakTupleVec&,
double,
size_t)
const = 0;
63 virtual void getFFTPower(
const std::vector<float>& inputVec, std::vector<float>& outputPowerVec)
const = 0;
64 virtual void getFFTPower(
const std::vector<double>& inputVec, std::vector<double>& outputPowerVec)
const = 0;