ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtSampleConsensusTask.cxx
Go to the documentation of this file.
2 
3 #include "AtEvent.h" // for AtEvent
4 #include "AtPatternEvent.h"
5 #include "AtSampleConsensus.h"
6 
7 #include <FairLogger.h> // for LOG, Logger
8 #include <FairRootManager.h> // for FairRootManager
9 
10 #include <TClonesArray.h> // for TClonesArray
11 #include <TObject.h> // for TObject
12 
13 #include <memory> // for allocator
14 #include <utility> // for move
15 
17 
18 AtSampleConsensusTask::AtSampleConsensusTask(std::unique_ptr<SampleConsensus::AtSampleConsensus> method)
19  : fInputBranchName("AtEventH"), fOutputBranchName("AtPatternEvent"), fPatternEventArray("AtPatternEvent", 1),
20  fSampleConsensus(std::move(method)), kIsPersistence(kFALSE)
21 {
22 }
23 
25 {
26  FairRootManager *ioMan = FairRootManager::Instance();
27  if (ioMan == nullptr) {
28  LOG(error) << "Cannot find RootManager!";
29  return kERROR;
30  }
31 
32  fEventArray = dynamic_cast<TClonesArray *>(ioMan->GetObject(fInputBranchName));
33  if (fEventArray == nullptr) {
34 
35  LOG(error) << "Cannot find AtEvent array!";
36  return kERROR;
37  }
38 
39  ioMan->Register(fOutputBranchName, "AtTPC", &fPatternEventArray, kIsPersistence);
40 
41  return kSUCCESS;
42 }
43 
44 void AtSampleConsensusTask::Exec(Option_t *opt)
45 {
46 
47  if (fEventArray->GetEntriesFast() == 0)
48  return;
49 
50  fEvent = dynamic_cast<AtEvent *>(fEventArray->At(0));
51 
52  LOG(debug) << "Running Sample Consensus with " << fEvent->GetNumHits() << " hits.";
53 
54  fPatternEventArray.Delete();
55  auto patternEvent = fSampleConsensus->Solve(fEvent);
56  new (fPatternEventArray[0]) AtPatternEvent(patternEvent);
57 }
AtEvent::GetNumHits
Int_t GetNumHits() const
Definition: AtEvent.h:108
AtPatternEvent
Definition: AtPatternEvent.h:19
AtEvent.h
AtSampleConsensusTask::AtSampleConsensusTask
AtSampleConsensusTask(std::unique_ptr< SampleConsensus::AtSampleConsensus > method)
Definition: AtSampleConsensusTask.cxx:18
AtSampleConsensusTask
Definition: AtSampleConsensusTask.h:19
AtEvent
Definition: AtEvent.h:22
AtSampleConsensusTask.h
AtSampleConsensus.h
AtPatternEvent.h
ClassImp
ClassImp(AtSampleConsensusTask)
AtSampleConsensusTask::Exec
virtual void Exec(Option_t *opt) override
Definition: AtSampleConsensusTask.cxx:44
AtSampleConsensusTask::Init
virtual InitStatus Init() override
Definition: AtSampleConsensusTask.cxx:24