Information that has been collected at one impact position. More...
#include <ImpactData.h>
Public Types | |
typedef std::shared_ptr< ImpactData > | mutable_pointer |
typedef std::shared_ptr< const ImpactData > | pointer |
Public Member Functions | |
ImpactData (int impact) | |
void | add (GaussianDiffusion::pointer diffusion) |
const std::vector< GaussianDiffusion::pointer > & | diffusions () const |
void | calculate (int nticks) const |
Waveform::realseq_t & | waveform () const |
Waveform::compseq_t & | spectrum () const |
Waveform::realseq_t & | weightform () const |
Waveform::compseq_t & | weight_spectrum () const |
int | impact_number () const |
std::pair< double, double > | span (double nsigma=0.0) const |
Information that has been collected at one impact position.
Definition at line 18 of file ImpactData.h.
typedef std::shared_ptr<ImpactData> WireCell::Gen::ImpactData::mutable_pointer |
Definition at line 29 of file ImpactData.h.
typedef std::shared_ptr<const ImpactData> WireCell::Gen::ImpactData::pointer |
Definition at line 30 of file ImpactData.h.
Gen::ImpactData::ImpactData | ( | int | impact | ) |
Create an ImpactData associated with the given absolute impact position. See impact_number() for description of the impact.
Definition at line 8 of file ImpactData.cxx.
void Gen::ImpactData::add | ( | GaussianDiffusion::pointer | diffusion | ) |
Add a (shared) GaussianDiffusion object for consideration. If any are added which do not overlap with this ImpactData's impact/pitch sample point then they will not contribute to the waveform nor spectrum at this impact.
Definition at line 12 of file ImpactData.cxx.
void Gen::ImpactData::calculate | ( | int | nticks | ) | const |
The calculate_*()
methods finalize the underlying waveform data for this slice in time across the collected GaussianDiffusion object.
These methods are idempotent and one must be called before waveform(), spectrum() and weightform() return valid results. Calculate the impact data assuming a weighting, linear or constant (all = 0.5), and honoring the Gaussian distribution (diffusion).
Definition at line 37 of file ImpactData.cxx.
|
inline |
Definition at line 44 of file ImpactData.h.
|
inline |
Return the associated impact number. This provides a sample count along the pitch direction starting from some externally defined pitch origin.
Definition at line 85 of file ImpactData.h.
std::pair< double, double > Gen::ImpactData::span | ( | double | nsigma = 0.0 | ) | const |
Return the max time range spanned by the difussions that cover this impact including a width expressed as a factor multiplied by the sigma of the time Gaussian. Set to 0.0 gives collective span of centers.
Definition at line 89 of file ImpactData.cxx.
Waveform::compseq_t & Gen::ImpactData::spectrum | ( | ) | const |
Return the discrete Fourier transform of the above. See calculate()
.
Definition at line 22 of file ImpactData.cxx.
Waveform::realseq_t & Gen::ImpactData::waveform | ( | ) | const |
Return the time domain waveform of drifted/diffused charge at this impact position. See calculate()
.
Definition at line 17 of file ImpactData.cxx.
Waveform::compseq_t & Gen::ImpactData::weight_spectrum | ( | ) | const |
Definition at line 32 of file ImpactData.cxx.
Waveform::realseq_t & Gen::ImpactData::weightform | ( | ) | const |
The "weightform" is a waveform of weights and gives, for each tick, a measure of where the charge is "concentrated" (by some measure) along the distance from the low impact number edge to the high impact number edge. In general, the weights depend on the local (microscopic) charge distribution as well as which calculate_*()
method was used.
Definition at line 27 of file ImpactData.cxx.
|
private |
Definition at line 26 of file ImpactData.h.
|
private |
Definition at line 19 of file ImpactData.h.
|
mutableprivate |
Definition at line 21 of file ImpactData.h.
|
mutableprivate |
Definition at line 20 of file ImpactData.h.
|
mutableprivate |
Definition at line 23 of file ImpactData.h.
|
mutableprivate |
Definition at line 22 of file ImpactData.h.