LArSoft
v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
|
#include "AlgoFixedWindow.h"
Public Member Functions | |
AlgoFixedWindow (const std::string name="FixedWindow") | |
Default ctor. More... | |
AlgoFixedWindow (const fhicl::ParameterSet &pset, std::unique_ptr< pmtana::RiseTimeCalculatorBase > risetimecalculator=nullptr, const std::string name="FixedWindow") | |
Alternative ctor. More... | |
void | Reset () |
Implementation of AlgoFixedWindow::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 AlgoFixedWindow::reco() method. More... | |
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 | |
size_t | _index_start |
index marker for the beginning of the pulse time window More... | |
size_t | _index_end |
index marker for the end of pulse time window More... | |
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... | |
This class implements fixed_window algorithm to AlgoFixedWindow class. The algorithm defines a pulse in user-specified time window. A typical usage is to set the beginning of the window to be 0 (= start of the waveform) and integrate over the time of interest. By default, the ending is set to index=0, in which case it uses the ending index of the input waveform (i.e. full integration).
Definition at line 38 of file AlgoFixedWindow.h.
pmtana::AlgoFixedWindow::AlgoFixedWindow | ( | const std::string | name = "FixedWindow" | ) |
Default ctor.
Definition at line 14 of file AlgoFixedWindow.cxx.
References _index_end, _index_start, and Reset().
pmtana::AlgoFixedWindow::AlgoFixedWindow | ( | const fhicl::ParameterSet & | pset, |
std::unique_ptr< pmtana::RiseTimeCalculatorBase > | risetimecalculator = nullptr , |
||
const std::string | name = "FixedWindow" |
||
) |
Alternative ctor.
Definition at line 25 of file AlgoFixedWindow.cxx.
References _index_end, _index_start, pmtana::PMTPulseRecoBase::_risetime_calc_ptr, 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 RecoPulse().
|
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 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 AlgoFixedWindow::reco() method.
Implements pmtana::PMTPulseRecoBase.
Definition at line 52 of file AlgoFixedWindow.cxx.
References _index_end, _index_start, pmtana::PMTPulseRecoBase::_pulse, pmtana::PMTPulseRecoBase::_pulse_v, pmtana::PMTPulseRecoBase::_risetime_calc_ptr, pmtana::PMTPulseRecoBase::Integral(), pmtana::PMTPulseRecoBase::Max(), Reset(), pmtana::pulse_param::t_end, and pmtana::pulse_param::t_start.
|
virtual |
Implementation of AlgoFixedWindow::reset() method.
Reimplemented from pmtana::PMTPulseRecoBase.
Definition at line 43 of file AlgoFixedWindow.cxx.
References pmtana::PMTPulseRecoBase::_pulse, and pmtana::PMTPulseRecoBase::_pulse_v.
Referenced by AlgoFixedWindow(), and RecoPulse().
|
inherited |
Status getter.
Definition at line 29 of file PMTPulseRecoBase.cxx.
References pmtana::PMTPulseRecoBase::_status.
|
protected |
index marker for the end of pulse time window
Definition at line 60 of file AlgoFixedWindow.h.
Referenced by AlgoFixedWindow(), and RecoPulse().
|
protected |
index marker for the beginning of the pulse time window
Definition at line 59 of file AlgoFixedWindow.h.
Referenced by AlgoFixedWindow(), 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(), pmtana::AlgoThreshold::RecoPulse(), pmtana::AlgoCFD::RecoPulse(), RecoPulse(), 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(), pmtana::AlgoCFD::RecoPulse(), pmtana::AlgoThreshold::RecoPulse(), RecoPulse(), Reset(), and pmtana::PMTPulseRecoBase::Reset().
|
protectedinherited |
Tool for rise time calculation.
Definition at line 122 of file PMTPulseRecoBase.h.
Referenced by pmtana::AlgoCFD::AlgoCFD(), AlgoFixedWindow(), pmtana::AlgoSiPM::AlgoSiPM(), pmtana::AlgoSlidingWindow::AlgoSlidingWindow(), pmtana::AlgoThreshold::AlgoThreshold(), pmtana::AlgoSiPM::RecoPulse(), pmtana::AlgoSlidingWindow::RecoPulse(), pmtana::AlgoThreshold::RecoPulse(), pmtana::AlgoCFD::RecoPulse(), and RecoPulse().