/home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/daq/include/RAT/WaveformAnalysisLucyDDM.hh Source File
|
Ratpac-two
|
WaveformAnalysisLucyDDM.hh
36 WaveformAnalysisLucyDDM(std::string config_name) : WaveformAnalyzerBase("WaveformAnalysisLucyDDM", config_name) {
51 -9999; // to be overwritten by the charge * termohms. Set to invalid here because termOhms is not known yet.
56 std::vector<std::complex<double>> vpe_norm_fft, vpe_norm_flipped_fft; // and their fourier transforms.
62 double stopping_nll_diff; // Stop if the change in the poisson negative log-likelihood is less than this value
68 bool npe_estimate; // if true, perform a final NPE estimation on all resolved wave packet in the deconvolved
72 size_t npe_estimate_max_pes; // upper limit for the number of PEs in a single resolved wave packet.
86 std::vector<double> ConvolveFFT(const std::vector<double> &a, const std::vector<std::complex<double>> &b,
106 void FindHits(const std::vector<double> &phi, std::vector<double> &out_times, std::vector<double> &out_charges,
107 std::vector<double> &out_time_errors, std::vector<double> &out_charge_errors, double &chi2ndf) const;
113 void MergeClosePeaks(std::vector<double> ×, std::vector<double> &charges, std::vector<double> &time_errors,
145 double PoissonNLL(const std::vector<double> &wfm, const std::vector<double> &reblurred_wfm) const;
Definition: DigitPMT.hh:23
Perform PMT waveform analysis using Richard-Lucy Direct Demodulation (LucyDDM).
Definition: WaveformAnalysisLucyDDM.hh:33
double GaussianPulseTrain(double *x, double *p, size_t N) const
Definition: WaveformAnalysisLucyDDM.cc:362
std::vector< double > ConvolveFFT(const std::vector< double > &a, const std::vector< std::complex< double >> &b, size_t conv_size, double dt) const
convolve a real waveform with the FFT of a kernel.
Definition: WaveformAnalysisLucyDDM.cc:170
void Configure(const std::string &config_name) override
Definition: WaveformAnalysisLucyDDM.cc:19
void ClampBelowThreshold(std::vector< double > &wfm, double thresh=-9999) const
Clamp all samples of a waveform below a threashold to epsilon (a positive value close to zero).
Definition: WaveformAnalysisLucyDDM.cc:302
std::vector< double > Resample(const std::vector< double > &wfm, size_t n_samples) const
Resample a waveform to a different sampling period using linear interpolation.
Definition: WaveformAnalysisLucyDDM.cc:333
void RequestFFTSize(size_t size)
Ensure that hte requested size can be done with the existing transformers. If the transformers are to...
Definition: WaveformAnalysisLucyDDM.cc:151
void FindHits(const std::vector< double > &phi, std::vector< double > &out_times, std::vector< double > &out_charges, std::vector< double > &out_time_errors, std::vector< double > &out_charge_errors, double &chi2ndf) const
Find hits in the deconvolved waveform.
Definition: WaveformAnalysisLucyDDM.cc:237
double PoissonNLL(const std::vector< double > &wfm, const std::vector< double > &reblurred_wfm) const
Definition: WaveformAnalysisLucyDDM.cc:313
std::vector< double > Deconvolve(const std::vector< double > &wfm, size_t &iterations_ran) const
performs Richard-Lucy deconvolution of the waveform.
Definition: WaveformAnalysisLucyDDM.cc:189
std::vector< double > ReblurWaveform(const std::vector< double > &phi) const
convolve phi with the SPE template, effectively "reblurring" the deconvolved waveform.
Definition: WaveformAnalysisLucyDDM.cc:325
void DoAnalysis(DS::DigitPMT *pmt, const std::vector< UShort_t > &digitWfm) override
Main analysis function entry point, provided by WaveformAnalyzerBase.
Definition: WaveformAnalysisLucyDDM.cc:48
void MergeClosePeaks(std::vector< double > ×, std::vector< double > &charges, std::vector< double > &time_errors, std::vector< double > &charge_errors)
Perform post processing on the hits. Occasionally LucyDDM will resolve a single PE into two peaks....
Definition: WaveformAnalysisLucyDDM.cc:96
Definition: WaveformAnalyzerBase.hh:23
WaveformAnalyzerBase()=delete
Definition: CCCrossSecMessenger.hh:29
Generated by