6 #include <FairLogger.h>
7 #include <FairRootManager.h>
9 #include <Math/Point3D.h>
10 #include <TClonesArray.h>
19 : fOutputFileName(std::move(fileName)), fInputBranchName(std::move(branchName))
26 FairRootManager *ioMan = FairRootManager::Instance();
27 if (ioMan ==
nullptr) {
28 LOG(ERROR) <<
"Cannot find RootManager!";
47 const auto &traceEv =
event->GetMesh();
49 hsize_t hitdim[] = {(hsize_t)nHits};
50 hsize_t tracedim[] = {(hsize_t)traceEv.size()};
51 H5::DataSpace hitSpace(1, hitdim);
52 H5::DataSpace traceSpace(1, tracedim);
61 for (Int_t iHit = 0; iHit < nHits; iHit++) {
62 const AtHit &hit =
event->GetHit(iHit);
65 hits[iHit].
x = hitPos.X();
66 hits[iHit].
y = hitPos.Y();
67 hits[iHit].
z = hitPos.Z();
74 auto eventGroup = std::make_unique<H5::Group>(
fFile->createGroup(TString::Format(
"/Event_[%d]", eventNum)));
75 H5::DataSet hitset =
fFile->createDataSet(TString::Format(
"/Event_[%d]/HitArray", eventNum), hdf5Type, hitSpace);
76 hitset.write(hits, hdf5Type);
78 H5::DataSet traceset =
79 fFile->createDataSet(TString::Format(
"/Event_[%d]/Trace", eventNum), H5::PredType::NATIVE_FLOAT, traceSpace);
80 traceset.write(traceEv.data(), H5::PredType::NATIVE_FLOAT);