1 #ifndef artdaq_DAQdata_GenericFragmentSimulator_hh
2 #define artdaq_DAQdata_GenericFragmentSimulator_hh
4 #include "artdaq-core/Data/Fragment.hh"
5 #include "artdaq-core/Generators/FragmentGenerator.hh"
6 #include "fhiclcpp/fwd.h"
12 class GenericFragmentSimulator;
62 using FragmentGenerator::getNext;
71 bool getNext(Fragment::sequence_id_t sequence_id,
72 Fragment::fragment_id_t fragment_id,
73 FragmentPtr& frag_ptr);
80 bool getNext(FragmentPtrs& output)
override
82 return getNext_(output);
91 return fragmentIDs_();
95 bool getNext_(FragmentPtrs& output);
97 std::vector<Fragment::fragment_id_t> fragmentIDs_();
99 std::size_t generateFragmentSize_();
103 std::size_t
const payload_size_spec_;
104 std::vector<Fragment::fragment_id_t> fragment_ids_;
106 bool const want_random_payload_size_;
109 std::size_t current_event_num_;
110 std::mt19937 engine_;
111 std::poisson_distribution<size_t> payload_size_generator_;
112 std::uniform_int_distribution<uint64_t> fragment_content_generator_;
bool getNext(FragmentPtrs &output) override
Get the next Fragment from the generator.
GenericFragmentSimulator(fhicl::ParameterSet const &ps)
GenericFragmentSimulator Constructor.
std::vector< Fragment::fragment_id_t > fragmentIDs() override
Get the Fragment IDs generated by this instance.
Fill the payload with the Fragment ID.
GenericFragmentSimulator creates simulated Generic events, with data distributed according to a "hist...
Nothing (Default-initialized Fragment)
content_selector_t
What type of content should the GenericFragmentSimulator put in Fragment objects? ...
Use a random distribution to fill the payload.
bool getNext(Fragment::sequence_id_t sequence_id, Fragment::fragment_id_t fragment_id, FragmentPtr &frag_ptr)
Generate a Fragment according to the value of the content_selectior_t enum.
Fill the payload with 0xDEADBEEFDEADBEEF.