1 #define TRACE_NAME "FragmentSniffer"
3 #include "art/Framework/Core/EDAnalyzer.h"
4 #include "art/Framework/Core/ModuleMacros.h"
5 #include "art/Framework/Principal/Event.h"
6 #include "art/Framework/Principal/Handle.h"
7 #include "art/Framework/Principal/Run.h"
8 #include "art/Framework/Principal/SubRun.h"
9 #include "canvas/Persistency/Provenance/BranchType.h"
12 #include "artdaq-core/Data/Fragment.hh"
13 #include "artdaq/DAQdata/Globals.hh"
14 #include "fhiclcpp/ParameterSet.h"
48 void analyze(art::Event
const& e)
override;
56 std::string raw_label_;
57 std::string product_instance_name_;
58 std::size_t num_frags_per_event_;
59 std::size_t num_events_expected_;
60 std::size_t num_events_processed_;
65 , raw_label_(p.get<std::string>(
"raw_label",
"daq"))
66 , product_instance_name_(p.get<std::string>(
"product_instance_name"))
67 , num_frags_per_event_(p.get<size_t>(
"num_frags_per_event"))
68 , num_events_expected_(p.get<size_t>(
"num_events_expected", 0))
69 , num_events_processed_() {}
73 TLOG(TLVL_DEBUG) <<
"Analyze called for event " << e.event();
74 art::Handle<Fragments> handle;
75 e.getByLabel(raw_label_, product_instance_name_, handle);
76 assert(!handle->empty() &&
"getByLabel returned empty handle");
77 assert(handle->size() == num_frags_per_event_);
78 ++num_events_processed_;
79 TLOG(TLVL_DEBUG) <<
"End of FragmentSniffer::analyze";
84 TLOG(TLVL_INFO) <<
"events processed: "
85 << num_events_processed_
86 <<
"\nevents expected: "
87 << num_events_expected_;
88 if (num_events_expected_ > 0) assert(num_events_processed_ == num_events_expected_);
virtual ~FragmentSniffer()=default
Default destructor.
FragmentSniffer(fhicl::ParameterSet const &p)
FragmentSniffer Constructor.
This art::EDAnalyzer plugin tries to get Fragments from each event, asserting that the correct number...
void endJob() override
Called at the end of the job. Asserts that the number of events processed was equal to the expected n...
void analyze(art::Event const &e) override
Called for each event. Asserts that Fragment objects are present in the event and that the correct nu...