WireCellToolkit
Wire Cell Simulation, Signal Process and Reconstruction Toolki for Liquid Argon Detectors
|
#include <GaussianDiffusion.h>
Public Types | |
typedef std::shared_ptr< GaussianDiffusion > | pointer |
typedef Array::array_xxf | patch_t |
Public Member Functions | |
GaussianDiffusion (const IDepo::pointer &depo, const GausDesc &time_desc, const GausDesc &pitch_desc) | |
GaussianDiffusion. More... | |
void | set_sampling (const Binning &tbin, const Binning &pbin, double nsigma=3.0, IRandom::pointer fluctuate=nullptr, unsigned int weightstrat=1) |
void | clear_sampling () |
const patch_t & | patch () const |
const std::vector< double > | weights () const |
int | toffset_bin () const |
Return the absolute time bin in the binning corresponding to column 0 of the patch. More... | |
int | poffset_bin () const |
Return the absolute impact bin in the binning corresponding to column 0 of the patch. More... | |
IDepo::pointer | depo () const |
Access deposition. More... | |
double | depo_time () const |
double | depo_x () const |
const GausDesc | pitch_desc () |
const GausDesc | time_desc () |
Definition at line 68 of file GaussianDiffusion.h.
A patch is a 2D array of diffuse charge in (nimpacts X nticks) bins. patch[0] is drifted/diffused charge waveform at impact position 0 (relative to min pitch for the patch). patch[0][0] is charge at this impact position at time = 0 (relative to min time for the patch). See bin()
.
Definition at line 80 of file GaussianDiffusion.h.
typedef std::shared_ptr<GaussianDiffusion> WireCell::Gen::GaussianDiffusion::pointer |
Definition at line 71 of file GaussianDiffusion.h.
Gen::GaussianDiffusion::GaussianDiffusion | ( | const IDepo::pointer & | depo, |
const GausDesc & | time_desc, | ||
const GausDesc & | pitch_desc | ||
) |
Create a diffused deposition.
Definition at line 113 of file GaussianDiffusion.cxx.
void Gen::GaussianDiffusion::clear_sampling | ( | ) |
Definition at line 238 of file GaussianDiffusion.cxx.
|
inline |
Access deposition.
Definition at line 119 of file GaussianDiffusion.h.
|
inline |
Definition at line 121 of file GaussianDiffusion.h.
|
inline |
Definition at line 122 of file GaussianDiffusion.h.
const Gen::GaussianDiffusion::patch_t & Gen::GaussianDiffusion::patch | ( | ) | const |
Get the diffusion patch as an array of N_pitch rows X N_time columns. Index as patch(i_pitch, i_time). Call set_sampling() first.
Definition at line 246 of file GaussianDiffusion.cxx.
|
inline |
Definition at line 124 of file GaussianDiffusion.h.
|
inline |
Return the absolute impact bin in the binning corresponding to column 0 of the patch.
Definition at line 116 of file GaussianDiffusion.h.
void Gen::GaussianDiffusion::set_sampling | ( | const Binning & | tbin, |
const Binning & | pbin, | ||
double | nsigma = 3.0 , |
||
IRandom::pointer | fluctuate = nullptr , |
||
unsigned int | weightstrat = 1 |
||
) |
This fills the patch once matching the given time and pitch binning. The patch is limited to the 2D sample points that cover the subdomain determined by the number of sigma. If there should be Poisson fluctuations applied pass in an IRandom. Total charge is charge is preserved. Each cell of the patch represents the 2D bin-centered sampling of the Gaussian.
Sample time dimension
Sample pitch dimension.
fixme: for hanyu.
Definition at line 124 of file GaussianDiffusion.cxx.
|
inline |
Definition at line 125 of file GaussianDiffusion.h.
|
inline |
Return the absolute time bin in the binning corresponding to column 0 of the patch.
Definition at line 113 of file GaussianDiffusion.h.
const std::vector< double > Gen::GaussianDiffusion::weights | ( | ) | const |
Definition at line 251 of file GaussianDiffusion.cxx.