ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtMCFitterTask.cxx
Go to the documentation of this file.
1 #include "AtMCFitterTask.h"
2 
3 #include "AtMCFitter.h"
4 #include "AtPatternEvent.h"
5 
6 #include <FairLogger.h> // for LOG, Logger
7 #include <FairRootManager.h> // for FairRootManager
8 
9 #include <TClonesArray.h> // for TClonesArray
10 #include <TObject.h>
11 
12 #include <utility>
13 
14 AtMCFitterTask::AtMCFitterTask(std::shared_ptr<MCFitter::AtMCFitter> fitter)
15  : fFitter(std::move(fitter)), fResultArray("MCFitter::AtMCResult"), fSimEventArray("AtEvent"),
16  fSimRawEventArray("AtRawEvent")
17 {
18 }
19 
21 {
22  LOG(debug) << "Initialing fitter";
23  fFitter->Init();
24 
25  FairRootManager *ioman = FairRootManager::Instance();
26  ioman->Register("SimEvent", "cbmsim", &fSimEventArray, fSaveEvent);
27  ioman->Register("SimRawEvent", "cbmsim", &fSimRawEventArray, fSaveRawEvent);
28  ioman->Register("AtMCResult", "cbmsim", &fResultArray, fSaveResult);
29 
30  fPatternArray = dynamic_cast<TClonesArray *>(ioman->GetObject(fPatternBranchName));
31  if (fPatternArray == nullptr)
32  LOG(fatal) << "Failed to load branch " << fPatternBranchName;
33 
34  LOG(debug) << "Done with sim init";
35  return kSUCCESS;
36 }
37 
38 void AtMCFitterTask::Exec(Option_t *)
39 {
40  LOG(debug) << "Exec";
41  auto patEvent = dynamic_cast<AtPatternEvent *>(fPatternArray->At(0));
42  if (!patEvent->IsGood())
43  return;
44 
45  fFitter->Exec(*patEvent);
46  fResultArray.Delete();
47  fSimEventArray.Delete();
48  fSimRawEventArray.Delete();
49 
50  fFitter->FillResultArrays(fResultArray, fSimEventArray, fSimRawEventArray);
51 }
AtPatternEvent
Definition: AtPatternEvent.h:19
AtMCFitter.h
AtMCFitterTask.h
AtMCFitterTask::Exec
void Exec(Option_t *option="") override
Definition: AtMCFitterTask.cxx:38
AtPatternEvent.h
AtMCFitterTask::AtMCFitterTask
AtMCFitterTask(std::shared_ptr< MCFitter::AtMCFitter > fitter)
Definition: AtMCFitterTask.cxx:14
AtMCFitterTask::Init
InitStatus Init() override
Definition: AtMCFitterTask.cxx:20