1 #ifndef PNDPROCESSTASK_H 2 #define PNDPROCESSTASK_H 10 #include "TClonesArray.h" 13 #include "FairLogger.h" 15 #include "FairRuntimeDb.h" 27 template <
class DataStruct>
39 virtual InitStatus
Init()
final;
45 virtual void Exec(Option_t *t_opt =
nullptr) ;
82 template <
class DataStruct>
87 template <
class DataStruct>
92 template <
class DataStruct>
95 InitStatus result = kSUCCESS;
99 }
catch (
const std::exception &e) {
105 template <
class DataStruct>
113 template <
class DataStruct>
116 LOG(INFO) <<
"PndProcessTask: Finish - " << this->
fDetectorName;
122 template <
class DataStruct>
125 LOG(trace) <<
"PndProcessTask: PreProcessing - " << this->
fDetectorName;
128 template <
class DataStruct>
131 LOG(trace) <<
"PndProcessTask: PostProcessing - " << this->
fDetectorName;
134 template <
class DataStruct>
138 FairRun *run = FairRun::Instance();
139 if (run ==
nullptr) {
140 Fatal(
"SetParContainers",
"No analysis run");
142 FairRuntimeDb *db = run->GetRuntimeDb();
144 Fatal(
"SetParContainers",
"No runtime database");
147 LOG(DEBUG) <<
"PndProcessTask - " << this->
fDetectorName <<
" SetParContainers()";
149 LOG(DEBUG) << parameterName;
150 this->
fParameterRegister->SetParameter(parameterName, db->getContainer(parameterName.c_str()));
Task based version of a PndProcessHandler.
virtual void SetupDataArrays()=0
Define which data containers need to be fetched from the FairRootManager, pass the data container add...
virtual ~PndProcessTask()
PndProcessTask(const std::string &t_detectorName)
void SetParContainers() final
Fetch the FairRuntimeDb and populate the PndParameterRegister with all requested parameter. Has to be called before Init()
std::unique_ptr< PndParameterRegister > fParameterRegister
virtual void Finish()
End the task, call TearDown for all PndProcesses.
void SetupProcesses()
Call for each PndProcess the SetData and SetupParameter.
virtual void Exec(Option_t *t_opt=nullptr)
Prepare Task for processing of PndProcess (e.g. reset data arrays), process the PndProcesses and do c...
void CallProcesses()
Call for all PndProcesses the PreProcess/Process/PosProcess functions.
std::string fDetectorName
virtual void PostProcessing(Option_t *)
Do some task post clean up after PndProcesses are run once per event.
std::vector< PndProcess< DataStruct > * > fProcesses
Base class for classes handling a set of PndProcesses.
virtual InitStatus Init() final
Initialise this task. This must be called AFTER SetParContainers(), otherwise we will try to pass the...
virtual void PreProcessing(Option_t *)
Do some task preparation before PndProcesses are run once per event.