5 #include <FairLogger.h>
6 #include <FairRootManager.h>
9 #include <TClonesArray.h>
17 : fRawEvent(new
AtRawEvent()), fUnpacker(std::move(unpacker)), fOutputEventArray(TClonesArray(
"AtRawEvent", 1))
23 if (FairRootManager::Instance() ==
nullptr) {
24 LOG(fatal) <<
"Cannot find RootManager!";
30 FairRootManager::Instance()->Register(fOuputBranchName.data(),
"AtTpc", &fOutputEventArray, fIsPersistent);
39 fOutputEventArray.Clear(
"C");
40 auto rawEvent =
dynamic_cast<AtRawEvent *
>(fOutputEventArray.ConstructedAt(0));
42 LOG(debug) <<
"Unpacking event: " << fUnpacker->GetNextEventID();
46 if (!fFinishedUnpacking) {
47 fUnpacker->FillRawEvent(*rawEvent);
49 LOG(warn) <<
"Hit last event at: " << fUnpacker->GetNextEventID();
54 fFinishedUnpacking = fUnpacker->IsLastEvent();
62 if (fUnpacker->IsLastEvent()) {
63 LOG(info) <<
"Unpacked last event. Terminating run.";
64 FairRootManager::Instance()->SetFinishRun();