Describes the waveform from a single photoelectron. More...
#include <AsymGaussPulseFunction.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 | |
AsymGaussPulseFunction (ADCcount amplitude, Time peakTime, Time sigmaLeft, Time sigmaRight) | |
Constructor: assigns the parameters of the shape. More... | |
Parameter accessors. | |
Time | leftSigma () const |
Time | rightSigma () 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 ADCcount | Gaussian (Time x, Time mean, Time sigma, ADCcount amplitude) |
Returns the value of normal distribution at specified point. More... | |
Private Types | |
using | Base_t = icarus::opdet::PhotoelectronPulseFunction< T > |
Private Member Functions | |
Time | myPeakTime () const |
Returns the time of the center of the Gaussian. 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 | |
template<typename V > | |
static V | sqr (V value) |
template<typename V > | |
static V | round (V value) |
Private Attributes | |
ADCcount | fAmplitude |
Amplitude at peak (transition). More... | |
Time | fTransitTime |
Time of transition between the two forms of shape. More... | |
Time | fSigmaL |
RMS parameter of the shape before transition. More... | |
Time | fSigmaR |
RMS parameter of the shape after transition. 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 asymmetric Gaussian shape.
Definition at line 29 of file AsymGaussPulseFunction.h.
using icarus::opdet::AsymGaussPulseFunction< T >::ADCcount = typename Base_t::ADCcount |
Type for ADC counts (floating point).
Definition at line 48 of file AsymGaussPulseFunction.h.
|
private |
Definition at line 44 of file AsymGaussPulseFunction.h.
using icarus::opdet::AsymGaussPulseFunction< T >::Time = typename Base_t::Time |
Type of time being used.
Definition at line 50 of file AsymGaussPulseFunction.h.
|
inline |
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 |
sigmaLeft | the standard deviation of the shape before transition |
sigmaRight | the standard deviation of the shape after transition |
The time parameters (peakTime
, sigmaLeft
and sigmaRight
) must be measured in same unit. The peakTime
defines the position of the shape with respect to time 0.
Definition at line 64 of file AsymGaussPulseFunction.h.
|
inline |
Definition at line 82 of file AsymGaussPulseFunction.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 164 of file AsymGaussPulseFunction.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 150 of file AsymGaussPulseFunction.h.
|
inlineoverrideprivatevirtual |
Returns the amplitude of the first peak in ADC counts.
Reimplemented from icarus::opdet::PhotoelectronPulseFunction< T >.
Definition at line 117 of file AsymGaussPulseFunction.h.
|
inlineoverrideprivatevirtual |
Returns the time at which the first peak is found.
Implements icarus::opdet::PhotoelectronPulseFunction< T >.
Definition at line 114 of file AsymGaussPulseFunction.h.
|
inlinestatic |
Returns the value of normal distribution at specified point.
Definition at line 87 of file AsymGaussPulseFunction.h.
|
inline |
Definition at line 80 of file AsymGaussPulseFunction.h.
|
inlineprivate |
Returns the amplitude of the pulse from the baseline, including its sign.
Definition at line 100 of file AsymGaussPulseFunction.h.
|
inlineprivate |
Returns the time of the center of the Gaussian.
Definition at line 97 of file AsymGaussPulseFunction.h.
|
inline |
Definition at line 81 of file AsymGaussPulseFunction.h.
|
inlinestaticprivate |
Definition at line 136 of file AsymGaussPulseFunction.h.
|
inlinestaticprivate |
Definition at line 133 of file AsymGaussPulseFunction.h.
|
private |
Amplitude at peak (transition).
Definition at line 91 of file AsymGaussPulseFunction.h.
|
private |
RMS parameter of the shape before transition.
Definition at line 93 of file AsymGaussPulseFunction.h.
|
private |
RMS parameter of the shape after transition.
Definition at line 94 of file AsymGaussPulseFunction.h.
|
private |
Time of transition between the two forms of shape.
Definition at line 92 of file AsymGaussPulseFunction.h.