8 #include "art/Framework/Core/EDAnalyzer.h"
9 #include "art/Framework/Core/ModuleMacros.h"
10 #include "art/Framework/Principal/Event.h"
11 #include "art/Framework/Principal/Handle.h"
12 #include "canvas/Utilities/Exception.h"
14 #include "artdaq-core/Data/ContainerFragment.hh"
15 #include "artdaq-core/Data/Fragment.hh"
45 explicit EventDump(fhicl::ParameterSet
const& pset);
59 void analyze(art::Event
const& e)
override;
62 std::string raw_data_label_;
68 , raw_data_label_(pset.get<std::string>(
"raw_data_label",
"daq"))
69 , verbosity_(pset.get<int>(
"verbosity", 0)) {}
75 std::cout <<
"***** Start of EventDump for event " << e.event() <<
" *****" << std::endl;
77 std::vector<art::Handle<std::vector<artdaq::Fragment> > > fragmentHandles;
78 e.getManyByType(fragmentHandles);
80 for (
auto const& handle : fragmentHandles)
82 if (handle->size() > 0)
84 std::string instance_name = handle.provenance()->productInstanceName();
85 std::cout << instance_name <<
" fragments: " << std::endl;
88 for (
auto const& frag : *handle)
90 std::cout <<
" " << jdx <<
") fragment ID " << frag.fragmentID() <<
" has type "
91 << (int)frag.type() <<
", timestamp " << frag.timestamp()
92 <<
", has metadata " << std::boolalpha << frag.hasMetadata()
93 <<
", and sizeBytes " << frag.sizeBytes()
94 <<
" (hdr=" << frag.headerSizeBytes()
95 <<
", data=" << frag.dataSizeBytes()
96 <<
", meta (calculated)=" << (frag.sizeBytes() - frag.headerSizeBytes() - frag.dataSizeBytes())
99 if (instance_name.compare(0, 9,
"Container") == 0)
101 artdaq::ContainerFragment cf(frag);
102 std::cout <<
" (contents: type = " << (int)cf.fragment_type() <<
", count = "
103 << cf.block_count() <<
", missing data = " << cf.missing_data()
108 for (
size_t idx = 0; idx < cf.block_count(); ++idx)
110 auto thisFrag = cf.at(idx);
111 std::cout <<
" " << (idx + 1) <<
") fragment type " << (
int)thisFrag->type()
112 <<
", timestamp " << thisFrag->timestamp()
113 <<
", has metadata " << std::boolalpha << thisFrag->hasMetadata()
114 <<
", and sizeBytes " << thisFrag->sizeBytes()
115 <<
" (hdr=" << thisFrag->headerSizeBytes()
116 <<
", data=" << thisFrag->dataSizeBytes()
117 <<
", meta (calculated)=" << (thisFrag->sizeBytes() - thisFrag->headerSizeBytes() - thisFrag->dataSizeBytes())
124 std::cout << std::endl;
131 std::cout <<
"***** End of EventDump for event " << e.event() <<
" *****" << std::endl;
void analyze(art::Event const &e) override
This method is called for each art::Event in a file or run.
EventDump(fhicl::ParameterSet const &pset)
EventDump Constructor.
Write Event information to the console.
virtual ~EventDump()=default
Default virtual Destructor.