ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtClusterizeTask.cxx
Go to the documentation of this file.
1 #include "AtClusterizeTask.h"
2 
3 #include "AtClusterize.h" // for AtClusterize
4 #include "AtDigiPar.h"
5 #include "AtSimulatedPoint.h" // IWYU pragma: keep
6 
7 #include <FairLogger.h>
8 #include <FairParSet.h>
9 #include <FairRootManager.h>
10 #include <FairRunAna.h>
11 #include <FairRuntimeDb.h>
12 #include <FairTask.h>
13 
14 #include <Math/Point3D.h> // for PositionVector3D
15 #include <Math/Point3Dfwd.h> // for XYZPoint
16 #include <Math/Vector3D.h> // for DisplacementVector3D
17 #include <Math/Vector3Dfwd.h> // for XYZVector
18 #include <TClonesArray.h>
19 #include <TObject.h>
20 
21 #include <memory>
22 #include <string> // for string
23 #include <utility>
24 
27 
28 constexpr auto cRED = "\033[1;31m";
29 constexpr auto cYELLOW = "\033[1;33m";
30 constexpr auto cNORMAL = "\033[0m";
31 constexpr auto cGREEN = "\033[1;32m";
32 constexpr auto cBLUE = "\033[1;34m";
33 
34 AtClusterizeTask::AtClusterizeTask(std::shared_ptr<AtClusterize> clusterize, const char *name)
35  : FairTask(name), fClusterize(std::move(clusterize))
36 {
37 }
38 
40 {
41  LOG(debug) << "Destructor of AtClusterizeTask";
42 }
43 
45 {
46  LOG(debug) << "SetParContainers of AtClusterizeTask";
47 
48  FairRunAna *ana = FairRunAna::Instance();
49  FairRuntimeDb *rtdb = ana->GetRuntimeDb();
50  fPar = dynamic_cast<AtDigiPar *>(rtdb->getContainer("AtDigiPar"));
51  if (fPar == nullptr)
52  LOG(fatal) << "Could not get the parameter container "
53  << "AtDigiPar";
54 }
56 {
57  LOG(INFO) << "Initilization of AtClusterizeTask";
58 
59  FairRootManager *ioman = FairRootManager::Instance();
60 
61  fMCPointArray = dynamic_cast<TClonesArray *>(ioman->GetObject("AtTpcPoint"));
62  if (fMCPointArray == nullptr) {
63  LOG(error) << "Cannot find fMCPointArray array!";
64  return kERROR;
65  }
66 
67  fSimulatedPointArray = std::make_unique<TClonesArray>(fClusterize->GetSavedClassName().c_str());
68  ioman->Register("AtSimulatedPoint", "cbmsim", fSimulatedPointArray.get(), fIsPersistent);
69 
70  fClusterize->GetParameters(fPar);
71  return kSUCCESS;
72 }
73 
74 void AtClusterizeTask::Exec(Option_t *option)
75 {
76  fSimulatedPointArray->Delete();
77 
78  auto points = fClusterize->ProcessEvent(*fMCPointArray);
79  fClusterize->FillTClonesArray(*fSimulatedPointArray, points);
80 }
81 
cGREEN
constexpr auto cGREEN
Definition: AtClusterizeTask.cxx:31
cNORMAL
constexpr auto cNORMAL
Definition: AtClusterizeTask.cxx:30
XYZVector
ROOT::Math::XYZVector XYZVector
Definition: AtFindVertex.h:20
AtClusterize.h
cBLUE
constexpr auto cBLUE
Definition: AtClusterizeTask.cxx:32
AtClusterizeTask::fMCPointArray
TClonesArray * fMCPointArray
Definition: AtClusterizeTask.h:32
AtClusterizeTask::Init
virtual InitStatus Init() override
Initiliazation of task at the beginning of a run.
Definition: AtClusterizeTask.cxx:55
AtClusterizeTask::Exec
virtual void Exec(Option_t *opt) override
Executed for each event.
Definition: AtClusterizeTask.cxx:74
AtClusterizeTask::fIsPersistent
Bool_t fIsPersistent
If true, save container.
Definition: AtClusterizeTask.h:35
cRED
constexpr auto cRED
Definition: AtClusterizeTask.cxx:28
AtClusterizeTask::fSimulatedPointArray
std::unique_ptr< TClonesArray > fSimulatedPointArray
Primary cluster array.
Definition: AtClusterizeTask.h:34
XYZPoint
ROOT::Math::XYZPoint XYZPoint
Definition: AtClusterizeTask.cxx:26
XYZPoint
ROOT::Math::XYZPoint XYZPoint
Definition: AtPatternCircle2D.h:18
AtClusterizeTask::fPar
AtDigiPar * fPar
Base parameter container.
Definition: AtClusterizeTask.h:28
AtSimulatedPoint.h
AtDigiPar.h
AtClusterizeTask::fClusterize
std::shared_ptr< AtClusterize > fClusterize
Definition: AtClusterizeTask.h:37
AtDigiPar
Definition: AtDigiPar.h:14
ClassImp
ClassImp(AtClusterizeTask)
AtClusterizeTask::~AtClusterizeTask
~AtClusterizeTask()
Definition: AtClusterizeTask.cxx:39
AtClusterizeTask::AtClusterizeTask
AtClusterizeTask(std::shared_ptr< AtClusterize > clusterize=std::make_shared< AtClusterize >(), const char *name="AtClusterizeTask")
Definition: AtClusterizeTask.cxx:34
AtClusterizeTask.h
XYZVector
ROOT::Math::XYZVector XYZVector
Definition: AtClusterizeTask.cxx:25
AtClusterizeTask
Definition: AtClusterizeTask.h:24
cYELLOW
constexpr auto cYELLOW
Definition: AtClusterizeTask.cxx:29
AtClusterizeTask::SetParContainers
virtual void SetParContainers() override
Load the parameter container from the runtime database.
Definition: AtClusterizeTask.cxx:44