38 virtual double eval(
double t)
const = 0;
47 static std::unique_ptr<PulseShape>
make(
const std::string& name,
double tp,
66 explicit CRRCShape(
double tp) : tp_(tp) {}
68 double eval(
double t)
const override {
69 if (t <= 0.0)
return 0.0;
70 return (t / tp_) * std::exp(1.0 - t / tp_);
102 double eval(
double t)
const override;
124 HgcrocShape(
double rate_up,
double time_up,
double rate_dn,
double time_dn,
127 double eval(
double t)
const override;
130 double rate_up_, time_up_, rate_dn_, time_dn_, time_peak_;
double eval(double t) const override
Evaluate the peak-normalised pulse amplitude at time t [ns] after charge arrival.
Fourth-order shaper with two time constants.
double eval(double t) const override
Evaluate the peak-normalised pulse amplitude at time t [ns] after charge arrival.
double peak_amp_
g(t_peak), used for normalisation.
HGCROC pulse, same form as the HgcrocEmulator pulse.
double eval(double t) const override
Evaluate the peak-normalised pulse amplitude at time t [ns] after charge arrival.
double norm_
makes eval(0) = 1
Abstract base class for front-end readout pulse shapes.
static std::unique_ptr< PulseShape > make(const std::string &name, double tp, double tp2=0.0)
Factory: construct a pulse shape by name.
virtual double eval(double t) const =0
Evaluate the peak-normalised pulse amplitude at time t [ns] after charge arrival.