artdaq_demo_hdf5  v1_00_00
ToyFragmentNtuple.hh
1 #ifndef artdaq_demo_hdf5_ArtModules_detail_ToyFragmentNtuple
2 #define artdaq_demo_hdf5_ArtModules_detail_ToyFragmentNtuple 1
3 
4 #include "artdaq-demo-hdf5/HDF5/FragmentDataset.hh"
5 #include "artdaq-demo-hdf5/HDF5/hep-hpc/FragmentNtuple.hh"
6 
7 #include "artdaq-core-demo/Overlays/FragmentType.hh"
8 #include "artdaq-core-demo/Overlays/ToyFragment.hh"
9 
10 namespace artdaq {
11 namespace hdf5 {
16 {
17 public:
27  ToyFragmentNtuple(fhicl::ParameterSet const& ps);
28 
32  virtual ~ToyFragmentNtuple();
33 
40  void insertOne(artdaq::Fragment const& f) override;
41 
48  void insertHeader(artdaq::detail::RawEventHeader const& evtHdr) override;
49 
56  std::unordered_map<artdaq::Fragment::type_t, std::unique_ptr<artdaq::Fragments>> readNextEvent() override
57  {
58  TLOG(TLVL_ERROR) << "ToyFragmentNtuple is not capable of reading!";
59  return std::unordered_map<artdaq::Fragment::type_t, std::unique_ptr<artdaq::Fragments>>();
60  }
61 
68  std::unique_ptr<artdaq::detail::RawEventHeader> getEventHeader(artdaq::Fragment::sequence_id_t const&) override
69  {
70  TLOG(TLVL_ERROR) << "ToyFragmentNtuple is not capable of reading!";
71  return nullptr;
72  }
73 
74 private:
75  size_t nWordsPerRow_;
76  hep_hpc::hdf5::Ntuple<uint64Column, uint16Column, uint64Column, uint8Column, uint16Column, uint8Column, uint32Column, uint8Column, uint32Column, uint32Column, uint16Column> output_;
77  FragmentNtuple fragments_;
78 };
79 } // namespace hdf5
80 } // namespace artdaq
81 #endif //artdaq_demo_hdf5_ArtModules_detail_ToyFragmentNtuple
std::unordered_map< artdaq::Fragment::type_t, std::unique_ptr< artdaq::Fragments > > readNextEvent() override
Read the next event from the Dataset (HDF5 file)
void insertOne(artdaq::Fragment const &f) override
Insert a Fragment into the Fragment Ntuple Dataset (write it to the HDF5 file)
ToyFragmentNtuple(fhicl::ParameterSet const &ps)
ToyFragmentNtuple Constructor.
An implementation of FragmentDataset for ToyFragment. Uses a FragmentNtuple dataset plugin for any Fr...
Implemementation of FragmentDataset using hep_hpc Ntuples.
std::unique_ptr< artdaq::detail::RawEventHeader > getEventHeader(artdaq::Fragment::sequence_id_t const &) override
Read a RawEventHeader from the Dataset (HDF5 file)
void insertHeader(artdaq::detail::RawEventHeader const &evtHdr) override
Insert a RawEventHeader into the Event Header Ntuple Dataset (write it to the HDF5 file) ...
Base class that defines methods for reading and writing to HDF5 files via various implementation plug...
virtual ~ToyFragmentNtuple()
ToyFragmentNtuple Destructor.