|
LDMX Software
|
Fourth-order shaper with two time constants. More...
#include <PulseShape.h>
Public Member Functions | |
| FourPoleShape (double tp, double tp2) | |
| double | eval (double t) const override |
| Evaluate the peak-normalised pulse amplitude at time t [ns] after charge arrival. | |
Public Member Functions inherited from tracking::digitization::PulseShape | |
Private Attributes | |
| double | tp_ |
| double | tp2_ |
| double | A_ |
| double | B_ |
| double | peak_amp_ |
| g(t_peak), used for normalisation. | |
Additional Inherited Members | |
Static Public Member Functions inherited from tracking::digitization::PulseShape | |
| static std::unique_ptr< PulseShape > | make (const std::string &name, double tp, double tp2=0.0) |
| Factory: construct a pulse shape by name. | |
Fourth-order shaper with two time constants.
The un-normalised amplitude is: g(t) = A · [exp(−t/tp) − exp(−t/tp2) · (1 + t·B + ½·(t·B)²)] where A = tp² / (tp − tp2)³ B = (tp − tp2) / (tp · tp2)
The peak position is approximated by t_peak ≈ 3 · (tp · tp2³)^(1/4)
eval(t) returns g(t) / g(t_peak), i.e. peak-normalised.
| tp | First (slower) time constant [ns]. |
| tp2 | Second (faster) time constant [ns]. Must be < tp. |
Definition at line 98 of file PulseShape.h.
| tracking::digitization::FourPoleShape::FourPoleShape | ( | double | tp, |
| double | tp2 ) |
Definition at line 11 of file PulseShape.cxx.
|
overridevirtual |
Evaluate the peak-normalised pulse amplitude at time t [ns] after charge arrival.
Returns 0 for t < 0.
Implements tracking::digitization::PulseShape.
Definition at line 28 of file PulseShape.cxx.
|
private |
Definition at line 106 of file PulseShape.h.
|
private |
Definition at line 106 of file PulseShape.h.
|
private |
g(t_peak), used for normalisation.
Definition at line 107 of file PulseShape.h.
|
private |
Definition at line 105 of file PulseShape.h.
|
private |
Definition at line 105 of file PulseShape.h.