WireCellToolkit
Wire Cell Simulation, Signal Process and Reconstruction Toolki for Liquid Argon Detectors
WireCell::Gen::ImpactData Class Reference

Information that has been collected at one impact position. More...

#include <ImpactData.h>

Public Types

typedef std::shared_ptr< ImpactDatamutable_pointer
 
typedef std::shared_ptr< const ImpactDatapointer
 

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_twaveform () const
 
Waveform::compseq_tspectrum () const
 
Waveform::realseq_tweightform () const
 
Waveform::compseq_tweight_spectrum () const
 
int impact_number () const
 
std::pair< double, double > span (double nsigma=0.0) const
 

Detailed Description

Information that has been collected at one impact position.

Definition at line 18 of file ImpactData.h.

Member Typedef Documentation

◆ mutable_pointer

Definition at line 29 of file ImpactData.h.

◆ pointer

typedef std::shared_ptr<const ImpactData> WireCell::Gen::ImpactData::pointer

Definition at line 30 of file ImpactData.h.

Constructor & Destructor Documentation

◆ ImpactData()

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.

Member Function Documentation

◆ add()

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.

◆ calculate()

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.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ diffusions()

const std::vector<GaussianDiffusion::pointer>& WireCell::Gen::ImpactData::diffusions ( ) const
inline

Definition at line 44 of file ImpactData.h.

Here is the call graph for this function:

◆ impact_number()

int WireCell::Gen::ImpactData::impact_number ( ) const
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.

Here is the call graph for this function:

◆ span()

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.

Here is the caller graph for this function:

◆ spectrum()

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.

Here is the caller graph for this function:

◆ waveform()

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.

Here is the caller graph for this function:

◆ weight_spectrum()

Waveform::compseq_t & Gen::ImpactData::weight_spectrum ( ) const

Definition at line 32 of file ImpactData.cxx.

Here is the caller graph for this function:

◆ weightform()

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.

Here is the caller graph for this function:

The documentation for this class was generated from the following files: