|
LDMX Software
|
Abstract base class for silicon-strip readout pulse shapes. More...
#include <PulseShape.h>
Public Member Functions | |
| virtual double | eval (double t) const =0 |
| Evaluate the peak-normalised pulse amplitude at time t [ns] after charge arrival. | |
Static Public Member Functions | |
| static std::unique_ptr< PulseShape > | make (const std::string &name, double tp, double tp2=0.0) |
| Factory: construct a pulse shape by name. | |
Abstract base class for silicon-strip readout pulse shapes.
The pulse shape describes the time response of the front-end amplifier/ shaper to a delta-function charge injection at t = 0. All shapes are normalised so that their peak value is 1 (peak-normalised).
Two concrete shapes are provided:
CRRC — single CR·RC shaper (one differentiation, one integration): f(t) = (t/tp) · exp(1 − t/tp) for t ≥ 0 Peaks at t = tp.
FourPole — fourth-order shaper (CR + three RC stages), as used by the HPS SVT APV25 readout. Two time constants tp and tp2: f(t) ∝ A · [exp(−t/tp) − exp(−t/tp2)·(1 + t·B + ½(t·B)²)] Peaks near t ≈ 3·(tp·tp2³)^(1/4).
Coordinate convention: t is measured in nanoseconds from the moment the charge arrives at the collection electrode.
Definition at line 30 of file PulseShape.h.
|
pure virtual |
Evaluate the peak-normalised pulse amplitude at time t [ns] after charge arrival.
Returns 0 for t < 0.
Implemented in tracking::digitization::CRRCShape, and tracking::digitization::FourPoleShape.
Referenced by tracking::digitization::StripPulseFitter::evalAtT().
|
static |
Factory: construct a pulse shape by name.
| name | "CRRC" or "FourPole". |
| tp | Peaking time [ns]. |
| tp2 | Second time constant [ns] (FourPole only; ignored for CRRC). |
Definition at line 40 of file PulseShape.cxx.
Referenced by tracking::reco::DigitizationProcessor::onProcessStart().