PandaRoot
PndProcessHandler< DataStruct > Class Template Reference

Base class for classes handling a set of PndProcesses. More...

#include <PndProcessHandler.h>

Inheritance diagram for PndProcessHandler< DataStruct >:
PndProcessTask< DataStruct >

Public Member Functions

 PndProcessHandler (const std::string &t_detectorname="")
 
virtual ~PndProcessHandler ()
 
void AddProcess (PndProcess< DataStruct > *)
 Add a PndProcess of appropriate type to the list of PndProcesses to be managed. More...
 
void CallProcesses ()
 Call for all PndProcesses the PreProcess/Process/PosProcess functions. More...
 
void SetupProcesses ()
 Call for each PndProcess the SetData and SetupParameter. More...
 
const std::vector< PndProcess< DataStruct > * > & GetProcesses ()
 
const DataStruct * GetCopyOfData () const
 
DataStruct * GetPtrToData ()
 
PndParameterRegisterGetParameterRegister ()
 
const PndParameterRegisterGetParameterRegister () const
 
const std::string & GetDetectorName () const
 

Protected Member Functions

virtual void SetupProcess (PndProcess< DataStruct > *t_process)
 

Protected Attributes

std::vector< PndProcess< DataStruct > * > fProcesses {}
 
std::unique_ptr< DataStruct > fData {new DataStruct}
 
std::unique_ptr< PndParameterRegisterfParameterRegister {new PndParameterRegister}
 
std::string fDetectorName {""}
 

Detailed Description

template<class DataStruct>
class PndProcessHandler< DataStruct >

Base class for classes handling a set of PndProcesses.

Author
Ben Salisbury salis.nosp@m.bury.nosp@m.@hisk.nosp@m.p.un.nosp@m.i-bon.nosp@m.n.de, HISKP Bonn
Date
2021-02
Template Parameters
DataStruct

Definition at line 18 of file PndProcessHandler.h.

Constructor & Destructor Documentation

◆ PndProcessHandler()

template<class DataStruct>
PndProcessHandler< DataStruct >::PndProcessHandler ( const std::string &  t_detectorname = "")
inline

Definition at line 20 of file PndProcessHandler.h.

20 : fDetectorName(t_detectorname){};
std::string fDetectorName

◆ ~PndProcessHandler()

template<class DataStruct >
PndProcessHandler< DataStruct >::~PndProcessHandler ( )
virtual

Definition at line 58 of file PndProcessHandler.h.

Referenced by PndProcessHandler< BSEmcPlotData >::PndProcessHandler().

59 {
60  for (PndProcess<DataStruct> *process : this->fProcesses) {
61  delete process;
62  }
63  this->fProcesses.clear();
64 }
Base Process class.
Definition: PndProcess.h:24
std::vector< PndProcess< DataStruct > * > fProcesses

Member Function Documentation

◆ AddProcess()

template<class DataStruct>
void PndProcessHandler< DataStruct >::AddProcess ( PndProcess< DataStruct > *  t_process)

Add a PndProcess of appropriate type to the list of PndProcesses to be managed.

Definition at line 67 of file PndProcessHandler.h.

Referenced by PndProcessHandler< BSEmcPlotData >::PndProcessHandler().

68 {
69  t_process->SetDetectorName(fDetectorName);
70  fParameterRegister->AddRequestList(t_process->GetListOfRequiredParameters());
71  this->fProcesses.push_back(t_process);
72 }
std::unique_ptr< PndParameterRegister > fParameterRegister
virtual void SetDetectorName(const std::string &t_detectorname)
Set the Detector name. Important, as most EmcParameter need to know for which detector they need to b...
Definition: PndProcess.h:35
std::string fDetectorName
const std::vector< std::string > & GetListOfRequiredParameters() const
Get the List Of Required Parameters.
Definition: PndProcess.h:42
std::vector< PndProcess< DataStruct > * > fProcesses

◆ CallProcesses()

template<class DataStruct >
void PndProcessHandler< DataStruct >::CallProcesses ( )

Call for all PndProcesses the PreProcess/Process/PosProcess functions.

Definition at line 90 of file PndProcessHandler.h.

Referenced by PndProcessTask< BSEmcPlotData >::Exec(), and PndProcessHandler< BSEmcPlotData >::PndProcessHandler().

91 {
92  for (PndProcess<DataStruct> *process : this->fProcesses) {
93  process->PreProcess();
94  process->Process();
95  process->PostProcess();
96  }
97 }
Base Process class.
Definition: PndProcess.h:24
std::vector< PndProcess< DataStruct > * > fProcesses

◆ GetCopyOfData()

template<class DataStruct>
const DataStruct* PndProcessHandler< DataStruct >::GetCopyOfData ( ) const
inline

Definition at line 42 of file PndProcessHandler.h.

42 { return fData.get(); }
std::unique_ptr< DataStruct > fData

◆ GetDetectorName()

template<class DataStruct>
const std::string& PndProcessHandler< DataStruct >::GetDetectorName ( ) const
inline

Definition at line 46 of file PndProcessHandler.h.

46 { return fDetectorName; }
std::string fDetectorName

◆ GetParameterRegister() [1/2]

template<class DataStruct>
PndParameterRegister* PndProcessHandler< DataStruct >::GetParameterRegister ( )
inline

Definition at line 44 of file PndProcessHandler.h.

44 { return fParameterRegister.get(); }
std::unique_ptr< PndParameterRegister > fParameterRegister

◆ GetParameterRegister() [2/2]

template<class DataStruct>
const PndParameterRegister* PndProcessHandler< DataStruct >::GetParameterRegister ( ) const
inline

Definition at line 45 of file PndProcessHandler.h.

45 { return fParameterRegister.get(); }
std::unique_ptr< PndParameterRegister > fParameterRegister

◆ GetProcesses()

template<class DataStruct>
const std::vector<PndProcess<DataStruct> *>& PndProcessHandler< DataStruct >::GetProcesses ( )
inline

Definition at line 41 of file PndProcessHandler.h.

41 { return fProcesses; }
std::vector< PndProcess< DataStruct > * > fProcesses

◆ GetPtrToData()

template<class DataStruct>
DataStruct* PndProcessHandler< DataStruct >::GetPtrToData ( )
inline

Definition at line 43 of file PndProcessHandler.h.

43 { return fData.get(); }
std::unique_ptr< DataStruct > fData

◆ SetupProcess()

template<class DataStruct>
void PndProcessHandler< DataStruct >::SetupProcess ( PndProcess< DataStruct > *  t_process)
protectedvirtual

Reimplemented in BSEmcPlotTask.

Definition at line 84 of file PndProcessHandler.h.

Referenced by PndProcessHandler< BSEmcPlotData >::GetDetectorName(), and PndProcessHandler< BSEmcPlotData >::SetupProcesses().

85 {
86  t_process->SetupParameters(this->fParameterRegister.get());
87 }
std::unique_ptr< PndParameterRegister > fParameterRegister
virtual void SetupParameters(const PndParameterRegister *t_parameter)=0
Fetch all parameters from the PndParameterRegister.

◆ SetupProcesses()

template<class DataStruct >
void PndProcessHandler< DataStruct >::SetupProcesses ( )

Call for each PndProcess the SetData and SetupParameter.

Definition at line 75 of file PndProcessHandler.h.

Referenced by PndProcessTask< BSEmcPlotData >::Init(), and PndProcessHandler< BSEmcPlotData >::PndProcessHandler().

76 {
77  for (PndProcess<DataStruct> *process : this->fProcesses) {
78  process->SetData(fData.get());
79  this->SetupProcess(process);
80  }
81 }
Base Process class.
Definition: PndProcess.h:24
std::unique_ptr< DataStruct > fData
virtual void SetupProcess(PndProcess< DataStruct > *t_process)
std::vector< PndProcess< DataStruct > * > fProcesses

Member Data Documentation

◆ fData

template<class DataStruct>
std::unique_ptr<DataStruct> PndProcessHandler< DataStruct >::fData {new DataStruct}
protected

◆ fDetectorName

◆ fParameterRegister

◆ fProcesses


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