7namespace tracking::digitization {
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;
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.
Abstract base class for silicon-strip 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.