GenericFragmentSimulator creates simulated Generic events, with data distributed according to a "histogram" provided in the configuration data. More...
#include <artdaq/DAQdata/GenericFragmentSimulator.hh>
Classes | |
struct | Config |
Public Types | |
enum | content_selector_t { EMPTY = 0, FRAG_ID = 1, RANDOM = 2, DEAD_BEEF } |
What type of content should the GenericFragmentSimulator put in Fragment objects? More... | |
Public Member Functions | |
GenericFragmentSimulator (fhicl::ParameterSet const &ps) | |
GenericFragmentSimulator Constructor. | |
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. | |
bool | getNext (FragmentPtrs &output) override |
Get the next Fragment from the generator. | |
std::vector < Fragment::fragment_id_t > | fragmentIDs () override |
Get the Fragment IDs generated by this instance. |
GenericFragmentSimulator creates simulated Generic events, with data distributed according to a "histogram" provided in the configuration data.
With this implementation, a single call to getNext(frags) will return a complete event (event ids are incremented automatically); fragment ids are sequential. Event size and content are both configurable; see the implementation for details.
Definition at line 27 of file GenericFragmentSimulator.hh.
What type of content should the GenericFragmentSimulator put in Fragment objects?
EMPTY |
Nothing (Default-initialized Fragment). |
FRAG_ID |
Fill the payload with the Fragment ID. |
RANDOM |
Use a random distribution to fill the payload. |
DEAD_BEEF |
Fill the payload with 0xDEADBEEFDEADBEEF. |
Definition at line 67 of file GenericFragmentSimulator.hh.
artdaq::GenericFragmentSimulator::GenericFragmentSimulator | ( | fhicl::ParameterSet const & | ps | ) | [explicit] |
GenericFragmentSimulator Constructor.
ps | ParameterSet used to configure the GenericFragmentSimulator |
* GenericFragmentSimulator accepts the following Parameters: * "content_selection" (Default: 0): What type of data to fill in generated Fragment payloads * 0: Use uninitialized memory * 1: Use the Fragment ID * 2: Use random data * 3: Use the word 0xDEADBEEFDEADBEEF * "payload_size" (Default: 10240): The size (in words) of the Fragment payload * "want_random_payload_size" (Default: false): Whether payload size should be sampled from a random distribution * "random_seed" (Default: 314159): Random seed for random number distributions * "fragments_per_event" (Default: 5): The number of Fragment objects to generate for each sequence ID * "starting_fragment_id" (Default: 0): The first Fragment ID handled by this GenericFragmentSimulator. * Fragment IDs will be starting_fragment_id to starting_fragment_id + fragments_per_event. *
Definition at line 10 of file GenericFragmentSimulator_generator.cc.
std::vector<Fragment::fragment_id_t> artdaq::GenericFragmentSimulator::fragmentIDs | ( | ) | [inline, override] |
Get the Fragment IDs generated by this instance.
Definition at line 103 of file GenericFragmentSimulator.hh.
bool artdaq::GenericFragmentSimulator::getNext | ( | FragmentPtrs & | output | ) | [inline, override] |
Get the next Fragment from the generator.
[out] | output | List of FragmentPtr objects to add the new Fragment to |
Definition at line 94 of file GenericFragmentSimulator.hh.
bool artdaq::GenericFragmentSimulator::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.
sequence_id | Sequence ID of generated Fragment | |
fragment_id | Fragment ID of generated Fragment | |
[out] | frag_ptr | Generated Fragment |
Definition at line 45 of file GenericFragmentSimulator_generator.cc.