Describes the waveform from a single photoelectron. More...
#include <AsymExpPulseFunction.h>
Public Types | |
using | ADCcount = typename Base_t::ADCcount |
Type for ADC counts (floating point). More... | |
using | Time = typename Base_t::Time |
Type of time being used. More... | |
Public Types inherited from icarus::opdet::PhotoelectronPulseFunction< T > | |
using | ADCcount = util::quantities::counts_f |
Type for ADC counts (floating point). More... | |
using | Time = T |
Type of time being used. More... | |
Public Member Functions | |
AsymExpPulseFunction (ADCcount amplitude, Time peakTime, Time raiseTau, Time fallTau) | |
Constructor: assigns the parameters of the shape. More... | |
Parameter accessors. | |
Time | raiseTau () const |
Time | fallTau () const |
ADCcount | amplitude () const |
Public Member Functions inherited from icarus::opdet::PhotoelectronPulseFunction< T > | |
virtual | ~PhotoelectronPulseFunction ()=default |
ADCcount | evaluateAt (Time time) const |
Evaluates the pulse at the given time. More... | |
ADCcount | operator() (Time time) const |
Alias of evaluateAt() . More... | |
Time | peakTime () const |
Returns the time at which the first peak is found. More... | |
ADCcount | peakAmplitude () const |
Returns the amplitude of the first peak in ADC counts. More... | |
ADCcount | baseline () const |
Returns the baseline of the pulse in ADC counts. More... | |
int | polarity () const |
Returns the polarity of the pulse (+1 : positive, or -1 : negative). More... | |
void | dump (std::ostream &out, std::string const &indent, std::string const &firstIndent) const |
Prints on stream the parameters of this shape. More... | |
void | dump (std::ostream &&out, std::string const &indent="") const |
std::string | toString (std::string const &indent, std::string const &firstIndent) const |
Returns the parameters of this shape as a descriptive string. More... | |
std::string | toString (std::string const &indent="") const |
Static Public Member Functions | |
static double | Exponential (Time t, Time tau) |
Returns the value of an exponential: exp(-t/tau) . More... | |
static double | ExponentialDiff (Time t, Time raise, Time fall) |
Returns the value of an exponential: exp(-t/tau) . More... | |
Private Types | |
using | Base_t = icarus::opdet::PhotoelectronPulseFunction< T > |
Private Member Functions | |
Time | myPeakTime () const |
Returns the time of the peak. More... | |
ADCcount | myAmplitude () const |
Returns the amplitude of the pulse from the baseline, including its sign. More... | |
virtual ADCcount | doEvaluateAt (Time time) const override |
Evaluates the pulse at the given time. More... | |
virtual Time | doPeakTime () const override |
Returns the time at which the first peak is found. More... | |
virtual ADCcount | doPeakAmplitude () const override |
Returns the amplitude of the first peak in ADC counts. More... | |
virtual void | doDump (std::ostream &out, std::string const &indent, std::string const &firstIndent) const override |
Prints on stream the parameters of this shape. More... | |
Static Private Member Functions | |
static Time | expDiffPeak (Time raiseTau, Time fallTau) |
Returns the time value at which ExponentialDiff() is maximum. More... | |
template<typename V > | |
static V | round (V value) |
Private Attributes | |
ADCcount const | fAmplitude |
Amplitude at peak (transition). More... | |
Time const | fPeakTime |
Time of maximum signal. More... | |
Time const | fRaiseTau |
Time constant of signal rise. More... | |
Time const | fFallTau |
Time constant of signal fall. More... | |
Time const | fRaiseTime |
Time when the signal starts rising above baseline. More... | |
ADCcount const | fA |
Normalization factor in the functional form. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from icarus::opdet::PhotoelectronPulseFunction< T > | |
virtual ADCcount | doEvaluateAt (Time time) const =0 |
Implementation of the function evaluation at time . More... | |
virtual ADCcount | doBaseline () const |
Returns the baseline of the pulse. More... | |
virtual int | doPolarity () const |
Returns the polarity of the pulse (+1 or -1). More... | |
Describes the waveform from a single photoelectron.
Time | type of time unit to be used |
This functor (class behaving like a function) describes the shape of the response to a single photoelectron as an exponentially raising and then exponentially falling shape:
with the rise time and the fall time; is the start of the signal formation, i.e. the time at which the signal starts raising.
Note that is not the peak time, and is not the peak amplitude of the signal.
Definition at line 30 of file AsymExpPulseFunction.h.
using icarus::opdet::AsymExpPulseFunction< T >::ADCcount = typename Base_t::ADCcount |
Type for ADC counts (floating point).
Definition at line 57 of file AsymExpPulseFunction.h.
|
private |
Definition at line 53 of file AsymExpPulseFunction.h.
using icarus::opdet::AsymExpPulseFunction< T >::Time = typename Base_t::Time |
Type of time being used.
Definition at line 59 of file AsymExpPulseFunction.h.
icarus::opdet::AsymExpPulseFunction< T >::AsymExpPulseFunction | ( | ADCcount | amplitude, |
Time | peakTime, | ||
Time | raiseTau, | ||
Time | fallTau | ||
) |
Constructor: assigns the parameters of the shape.
amplitude | the maximum amplitudes of the shape (at transition) |
peakTime | the time of the maximum amplitude of the shape |
raiseTau | the raise time (exponential parameter) of the shape |
fallTau | the decay time (exponential parameter) of the shape |
The time parameters (peakTime
, raiseTau
and fallTau
) must be measured in same unit. The peakTime
defines the position of the shape with respect to time 0.
amplitude
parameter is the actual maximum of the signal response, and peakTime
is the actual time at which the signal peaks. These parameters are more easily read from a measured waveform. Definition at line 165 of file AsymExpPulseFunction.h.
|
inline |
Definition at line 94 of file AsymExpPulseFunction.h.
|
overrideprivatevirtual |
Prints on stream the parameters of this shape.
out | the stream to write into |
indent | indentation string, prepended to all lines except first |
indentFirst | indentation string prepended to the first line |
Reimplemented from icarus::opdet::PhotoelectronPulseFunction< T >.
Definition at line 196 of file AsymExpPulseFunction.h.
|
overrideprivatevirtual |
Evaluates the pulse at the given time.
time | time to evaluate the shape at |
The scale of the time is defined by the transition time passed at construction.
Definition at line 185 of file AsymExpPulseFunction.h.
|
inlineoverrideprivatevirtual |
Returns the amplitude of the first peak in ADC counts.
Reimplemented from icarus::opdet::PhotoelectronPulseFunction< T >.
Definition at line 135 of file AsymExpPulseFunction.h.
|
inlineoverrideprivatevirtual |
Returns the time at which the first peak is found.
Implements icarus::opdet::PhotoelectronPulseFunction< T >.
Definition at line 132 of file AsymExpPulseFunction.h.
|
staticprivate |
Returns the time value at which ExponentialDiff()
is maximum.
Definition at line 214 of file AsymExpPulseFunction.h.
|
inlinestatic |
Returns the value of an exponential: exp(-t/tau)
.
Definition at line 99 of file AsymExpPulseFunction.h.
|
inlinestatic |
Returns the value of an exponential: exp(-t/tau)
.
Definition at line 102 of file AsymExpPulseFunction.h.
|
inline |
Definition at line 93 of file AsymExpPulseFunction.h.
|
inlineprivate |
Returns the amplitude of the pulse from the baseline, including its sign.
Definition at line 118 of file AsymExpPulseFunction.h.
|
inlineprivate |
Returns the time of the peak.
Definition at line 115 of file AsymExpPulseFunction.h.
|
inline |
Definition at line 92 of file AsymExpPulseFunction.h.
|
inlinestaticprivate |
Definition at line 155 of file AsymExpPulseFunction.h.
|
private |
Normalization factor in the functional form.
Definition at line 112 of file AsymExpPulseFunction.h.
|
private |
Amplitude at peak (transition).
Definition at line 106 of file AsymExpPulseFunction.h.
|
private |
Time constant of signal fall.
Definition at line 109 of file AsymExpPulseFunction.h.
|
private |
Time of maximum signal.
Definition at line 107 of file AsymExpPulseFunction.h.
|
private |
Time constant of signal rise.
Definition at line 108 of file AsymExpPulseFunction.h.
|
private |
Time when the signal starts rising above baseline.
Definition at line 111 of file AsymExpPulseFunction.h.