LArSoft  v07_13_02
Liquid Argon Software toolkit - http://larsoft.org/
pmtana::PulseRecoManager Class Reference

#include "PulseRecoManager.h"

Public Member Functions

 PulseRecoManager ()
 Default constructor. More...
 
 ~PulseRecoManager ()
 Default constructor. More...
 
bool Reconstruct (const pmtana::Waveform_t &) const
 Implementation of ana_base::analyze method. More...
 
void AddRecoAlgo (pmtana::PMTPulseRecoBase *algo, PMTPedestalBase *ped_algo=nullptr)
 A method to set pulse reconstruction algorithm. More...
 
void SetDefaultPedAlgo (pmtana::PMTPedestalBase *algo)
 A method to set a choice of pedestal estimation method. More...
 

Private Attributes

std::vector< std::pair< pmtana::PMTPulseRecoBase *, pmtana::PMTPedestalBase * > > _reco_algo_v
 pulse reconstruction algorithm pointer More...
 
PMTPedestalBase_ped_algo
 ped_estimator object More...
 

Detailed Description

A manager class of pulse reconstruction which acts as an analysis unit (inherits from ana_base). This class executes various pulse reconstruction algorithm which inherits from PMTPulseRecoBase Refer to analyze() function implementation to check how a pulse reconstruction algorithm is called.

Definition at line 32 of file PulseRecoManager.h.

Constructor & Destructor Documentation

pmtana::PulseRecoManager::PulseRecoManager ( )

Default constructor.

Definition at line 16 of file PulseRecoManager.cxx.

References _reco_algo_v.

16  : _ped_algo(nullptr)
17  //*******************************************************
18  {
19  _reco_algo_v.clear();
20  }
PMTPedestalBase * _ped_algo
ped_estimator object
std::vector< std::pair< pmtana::PMTPulseRecoBase *, pmtana::PMTPedestalBase * > > _reco_algo_v
pulse reconstruction algorithm pointer
pmtana::PulseRecoManager::~PulseRecoManager ( )

Default constructor.

Definition at line 23 of file PulseRecoManager.cxx.

25  {}

Member Function Documentation

void pmtana::PulseRecoManager::AddRecoAlgo ( pmtana::PMTPulseRecoBase algo,
PMTPedestalBase ped_algo = nullptr 
)

A method to set pulse reconstruction algorithm.

Definition at line 28 of file PulseRecoManager.cxx.

References _reco_algo_v.

Referenced by opdet::LEDCalibrationAna::LEDCalibrationAna(), opdet::OpHitFinder::OpHitFinder(), and pmtana::PMTAna::PMTAna().

30  {
31  if(!algo) throw OpticalRecoException("Invalid PulseReco algorithm!");
32 
33  _reco_algo_v.push_back(std::make_pair(algo,ped_algo));
34  }
std::vector< std::pair< pmtana::PMTPulseRecoBase *, pmtana::PMTPedestalBase * > > _reco_algo_v
pulse reconstruction algorithm pointer
bool pmtana::PulseRecoManager::Reconstruct ( const pmtana::Waveform_t wf) const

Implementation of ana_base::analyze method.

Definition at line 45 of file PulseRecoManager.cxx.

References _ped_algo, _reco_algo_v, pmtana::PMTPedestalBase::Evaluate(), pmtana::PMTPedestalBase::Mean(), pmtana::PMTPedestalBase::Sigma(), and ss.

Referenced by opdet::LEDCalibrationAna::analyze(), pmtana::PMTAna::analyze(), and opdet::RunHitFinder().

47  {
48  if(_reco_algo_v.empty() && !_ped_algo)
49 
50  throw OpticalRecoException("No Pulse/Pedestal reconstruction to run!");
51 
52  bool ped_status = true;
53 
54  if(_ped_algo)
55 
56  ped_status = _ped_algo->Evaluate(wf);
57 
58  bool pulse_reco_status = ped_status;
59 
60  for(auto& algo_pair : _reco_algo_v) {
61 
62  auto& pulse_algo = algo_pair.first;
63  auto& ped_algo = algo_pair.second;
64 
65  if(ped_algo) {
66 
67  ped_status = ped_status && ped_algo->Evaluate(wf);
68 
69  pulse_reco_status = ( ped_status &&
70  pulse_reco_status &&
71  pulse_algo->Reconstruct( wf, ped_algo->Mean(), ped_algo->Sigma() )
72  );
73 
74  } else {
75 
76  if( !_ped_algo ) {
77  std::stringstream ss;
78  ss << "No pedestal algorithm available for pulse algo " << pulse_algo->Name();
79  throw OpticalRecoException(ss.str());
80  }
81 
82  pulse_reco_status = ( pulse_reco_status &&
83  pulse_algo->Reconstruct( wf, _ped_algo->Mean(), _ped_algo->Sigma() )
84  );
85  }
86  }
87 
88  return pulse_reco_status;
89 
90  }
double Mean(size_t i) const
Getter of the pedestal mean value.
Float_t ss
Definition: plot.C:23
bool Evaluate(const pmtana::Waveform_t &wf)
Method to compute a pedestal.
double Sigma(size_t i) const
Getter of the pedestal standard deviation.
PMTPedestalBase * _ped_algo
ped_estimator object
std::vector< std::pair< pmtana::PMTPulseRecoBase *, pmtana::PMTPedestalBase * > > _reco_algo_v
pulse reconstruction algorithm pointer
void pmtana::PulseRecoManager::SetDefaultPedAlgo ( pmtana::PMTPedestalBase algo)

A method to set a choice of pedestal estimation method.

Definition at line 37 of file PulseRecoManager.cxx.

References _ped_algo.

Referenced by opdet::LEDCalibrationAna::LEDCalibrationAna(), opdet::OpHitFinder::OpHitFinder(), and pmtana::PMTAna::PMTAna().

39  {
40  if(!algo) throw OpticalRecoException("Invalid Pedestal algorithm!");
41  _ped_algo = algo;
42  }
PMTPedestalBase * _ped_algo
ped_estimator object

Member Data Documentation

PMTPedestalBase* pmtana::PulseRecoManager::_ped_algo
private

ped_estimator object

Definition at line 57 of file PulseRecoManager.h.

Referenced by Reconstruct(), and SetDefaultPedAlgo().

std::vector<std::pair<pmtana::PMTPulseRecoBase*,pmtana::PMTPedestalBase*> > pmtana::PulseRecoManager::_reco_algo_v
private

pulse reconstruction algorithm pointer

Definition at line 54 of file PulseRecoManager.h.

Referenced by AddRecoAlgo(), PulseRecoManager(), and Reconstruct().


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