PandaRoot
PndProcessHandler.h
Go to the documentation of this file.
1 #ifndef PNDPROCESSORHANDLER_HH
2 #define PNDPROCESSORHANDLER_HH
3 
4 #include <memory>
5 #include <string>
6 
7 #include "PndParameterRegister.h"
8 #include "PndContainerRegister.h"
9 #include "PndProcess.h"
10 
19  public:
20  PndProcessHandler(const std::string &t_detectorname = "") : fDetectorName(t_detectorname){};
21  virtual ~PndProcessHandler();
22 
27  void AddProcess(PndProcess * /*t_process*/);
28 
33  void CallProcesses();
34 
39  void SetupProcesses();
40 
41  const std::vector<PndProcess *> &GetProcesses() { return fProcesses; }
44  const std::string &GetDetectorName() const { return fDetectorName; }
45 
46  virtual void GetRequiredDataContainerInfo();
47  virtual void PassDataContainersToProcesses();
48 
49  protected:
50  virtual void SetupProcess(PndProcess *t_process);
51 
52  std::vector<PndProcess *> fProcesses{};
53  std::unique_ptr<PndParameterRegister> fParameterRegister{new PndParameterRegister};
54  std::unique_ptr<PndContainerRegister> fContainerRegister{new PndContainerRegister};
55  std::string fDetectorName{""};
56 };
57 
58 
59 #endif /*PNDPROCESSORHANDLER_HH*/
Base Process class.
Definition: PndProcess.h:24
void SetupProcesses()
Call for each PndProcess the SetupParameter.
PndProcessHandler(const std::string &t_detectorname="")
virtual void GetRequiredDataContainerInfo()
const std::string & GetDetectorName() const
void CallProcesses()
Call for all PndProcesses the PreProcess/Process/PosProcess functions.
const PndParameterRegister * GetParameterRegister() const
virtual void PassDataContainersToProcesses()
virtual ~PndProcessHandler()
const std::vector< PndProcess * > & GetProcesses()
std::unique_ptr< PndContainerRegister > fContainerRegister
PndParameterRegister * GetParameterRegister()
void AddProcess(PndProcess *)
Add a PndProcess of appropriate type to the list of PndProcesses to be managed.
Helper class to indirect the Parameter fetching via the FairRuntimeDb.
Base class for classes handling a set of PndProcesses.
std::unique_ptr< PndParameterRegister > fParameterRegister
virtual void SetupProcess(PndProcess *t_process)
std::string fDetectorName
std::vector< PndProcess * > fProcesses