LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
#include "AlgoCFD.h"
Public Member Functions | |
AlgoCFD (const std::string name="CFD") | |
Default constructor. More... | |
AlgoCFD (const fhicl::ParameterSet &pset, std::unique_ptr< pmtana::RiseTimeCalculatorBase > risetimecalculator=nullptr, const std::string name="CFD") | |
Alternative ctor. More... | |
void | Reset () |
Implementation of AlgoCFD::reset() method. More... | |
const std::string & | Name () const |
Name getter. More... | |
bool | Status () const |
Status getter. More... | |
bool | Reconstruct (const pmtana::Waveform_t &, const pmtana::PedestalMean_t &, const pmtana::PedestalSigma_t &) |
const pulse_param & | GetPulse (size_t index=0) const |
const pulse_param_array & | GetPulses () const |
A getter for the whole array of pulse_param struct object. More... | |
size_t | GetNPulse () const |
A getter for the number of reconstructed pulses from the input waveform. More... | |
Protected Member Functions | |
bool | RecoPulse (const pmtana::Waveform_t &, const pmtana::PedestalMean_t &, const pmtana::PedestalSigma_t &) |
Implementation of AlgoCFD::reco() method. More... | |
const std::map< unsigned, double > | LinearZeroPointX (const std::vector< double > &trace) |
bool | Integral (const std::vector< short > &wf, double &result, size_t begin=0, size_t end=0) const |
bool | Derivative (const std::vector< short > &wf, std::vector< int32_t > &diff, size_t begin=0, size_t end=0) const |
size_t | Max (const std::vector< short > &wf, double &result, size_t begin=0, size_t end=0) const |
size_t | Min (const std::vector< short > &wf, double &result, size_t begin=0, size_t end=0) const |
Protected Attributes | |
pulse_param_array | _pulse_v |
A container array of pulse_param struct objects to store (possibly multiple) reconstructed pulse(s). More... | |
pulse_param | _pulse |
A subject pulse_param object to be filled with the last reconstructed pulse parameters. More... | |
std::unique_ptr< pmtana::RiseTimeCalculatorBase > | _risetime_calc_ptr = nullptr |
Tool for rise time calculation. More... | |
Private Attributes | |
float | _F |
int | _D |
double | _peak_thresh |
double | _start_thresh |
double | _end_thresh |
This class implements threshold algorithm to AlgoCFD class.
pmtana::AlgoCFD::AlgoCFD | ( | const std::string | name = "CFD" | ) |
Default constructor.
Definition at line 17 of file AlgoCFD.cxx.
pmtana::AlgoCFD::AlgoCFD | ( | const fhicl::ParameterSet & | pset, |
std::unique_ptr< pmtana::RiseTimeCalculatorBase > | risetimecalculator = nullptr , |
||
const std::string | name = "CFD" |
||
) |
Alternative ctor.
Definition at line 22 of file AlgoCFD.cxx.
References _D, _end_thresh, _F, _peak_thresh, pmtana::PMTPulseRecoBase::_risetime_calc_ptr, _start_thresh, fhicl::ParameterSet::get(), and Reset().
|
protectedinherited |
A method to compute derivative, which is a simple subtraction of previous ADC sample from each sample. The result is stored in the input "diff" reference vector which is int32_t type as a derivative could be negative.
Definition at line 121 of file PMTPulseRecoBase.cxx.
References util::begin(), pmtana::CheckIndex(), and util::end().
|
inlineinherited |
A getter for the number of reconstructed pulses from the input waveform.
Definition at line 101 of file PMTPulseRecoBase.h.
Referenced by opdet::LEDCalibrationAna::analyze().
|
inherited |
A getter for the pulse_param struct object. Reconstruction algorithm may have more than one pulse reconstructed from an input waveform. Note you must, accordingly, provide an index key to specify which pulse_param object to be retrieved.
Definition at line 74 of file PMTPulseRecoBase.cxx.
References pmtana::PMTPulseRecoBase::_pulse_v.
Referenced by opdet::LEDCalibrationAna::analyze().
|
inherited |
A getter for the whole array of pulse_param struct object.
Definition at line 91 of file PMTPulseRecoBase.cxx.
References pmtana::PMTPulseRecoBase::_pulse_v.
Referenced by opdet::RunHitFinder().
|
protectedinherited |
A method to integrate an waveform from index "begin" to the "end". The result is filled in "result" reference. If the "end" is default (=0), then "end" is set to the last index of the waveform.
Definition at line 98 of file PMTPulseRecoBase.cxx.
References util::begin(), pmtana::CheckIndex(), and util::end().
Referenced by pmtana::AlgoFixedWindow::RecoPulse().
|
protected |
|
protectedinherited |
A method to return the maximum value of ADC sample within the index from "begin" to "end". If the "end" is default (=0), then "end" is set to the last index of the waveform.
Definition at line 144 of file PMTPulseRecoBase.cxx.
References util::begin(), pmtana::CheckIndex(), and util::end().
Referenced by pmtana::AlgoFixedWindow::RecoPulse().
|
protectedinherited |
A method to return the minimum value of ADC sample within the index from "begin" to "end". If the "end" is default (=0), then "end" is set to the last index of the waveform.
Definition at line 169 of file PMTPulseRecoBase.cxx.
References util::begin(), pmtana::CheckIndex(), and util::end().
|
inherited |
Name getter.
Definition at line 22 of file PMTPulseRecoBase.cxx.
References pmtana::PMTPulseRecoBase::_name.
|
inherited |
A core method: this executes the algorithm and stores reconstructed parameters in the pulse_param struct object.
Definition at line 36 of file PMTPulseRecoBase.cxx.
References pmtana::PMTPulseRecoBase::_status, and pmtana::PMTPulseRecoBase::RecoPulse().
|
protectedvirtual |
Implementation of AlgoCFD::reco() method.
Implements pmtana::PMTPulseRecoBase.
Definition at line 51 of file AlgoCFD.cxx.
References _D, _end_thresh, _F, _peak_thresh, pmtana::PMTPulseRecoBase::_pulse, pmtana::PMTPulseRecoBase::_pulse_v, pmtana::PMTPulseRecoBase::_risetime_calc_ptr, _start_thresh, pmtana::pulse_param::area, util::begin(), geo::vect::cross(), LinearZeroPointX(), pmtana::pulse_param::peak, pmtana::pulse_param::ped_mean, Reset(), pmtana::pulse_param::reset_param(), pmtana::pulse_param::t_cfdcross, pmtana::pulse_param::t_end, pmtana::pulse_param::t_max, pmtana::pulse_param::t_rise, and pmtana::pulse_param::t_start.
|
virtual |
Implementation of AlgoCFD::reset() method.
Reimplemented from pmtana::PMTPulseRecoBase.
Definition at line 44 of file AlgoCFD.cxx.
References pmtana::PMTPulseRecoBase::Reset().
Referenced by AlgoCFD(), and RecoPulse().
|
inherited |
Status getter.
Definition at line 29 of file PMTPulseRecoBase.cxx.
References pmtana::PMTPulseRecoBase::_status.
|
private |
Definition at line 61 of file AlgoCFD.h.
Referenced by AlgoCFD(), and RecoPulse().
|
private |
Definition at line 66 of file AlgoCFD.h.
Referenced by AlgoCFD(), and RecoPulse().
|
private |
Definition at line 60 of file AlgoCFD.h.
Referenced by AlgoCFD(), and RecoPulse().
|
private |
Definition at line 64 of file AlgoCFD.h.
Referenced by AlgoCFD(), and RecoPulse().
|
protectedinherited |
A subject pulse_param object to be filled with the last reconstructed pulse parameters.
Definition at line 119 of file PMTPulseRecoBase.h.
Referenced by pmtana::AlgoSiPM::RecoPulse(), pmtana::AlgoSlidingWindow::RecoPulse(), RecoPulse(), pmtana::AlgoThreshold::RecoPulse(), pmtana::AlgoFixedWindow::RecoPulse(), pmtana::AlgoFixedWindow::Reset(), and pmtana::PMTPulseRecoBase::Reset().
|
protectedinherited |
A container array of pulse_param struct objects to store (possibly multiple) reconstructed pulse(s).
Definition at line 116 of file PMTPulseRecoBase.h.
Referenced by pmtana::PMTPulseRecoBase::GetPulse(), pmtana::PMTPulseRecoBase::GetPulses(), pmtana::AlgoSiPM::RecoPulse(), pmtana::AlgoSlidingWindow::RecoPulse(), RecoPulse(), pmtana::AlgoThreshold::RecoPulse(), pmtana::AlgoFixedWindow::RecoPulse(), pmtana::AlgoFixedWindow::Reset(), and pmtana::PMTPulseRecoBase::Reset().
|
protectedinherited |
Tool for rise time calculation.
Definition at line 122 of file PMTPulseRecoBase.h.
Referenced by AlgoCFD(), pmtana::AlgoFixedWindow::AlgoFixedWindow(), pmtana::AlgoSiPM::AlgoSiPM(), pmtana::AlgoSlidingWindow::AlgoSlidingWindow(), pmtana::AlgoThreshold::AlgoThreshold(), pmtana::AlgoSiPM::RecoPulse(), pmtana::AlgoSlidingWindow::RecoPulse(), pmtana::AlgoThreshold::RecoPulse(), RecoPulse(), and pmtana::AlgoFixedWindow::RecoPulse().
|
private |
Definition at line 65 of file AlgoCFD.h.
Referenced by AlgoCFD(), and RecoPulse().