12 #include "art/Framework/Core/EDAnalyzer.h"
13 #include "art/Framework/Core/ModuleMacros.h"
14 #include "art/Framework/Principal/Event.h"
15 #include "art/Framework/Principal/Handle.h"
16 #include "art/Framework/Principal/Run.h"
17 #include "art/Framework/Principal/SubRun.h"
19 #include "canvas/Utilities/InputTag.h"
21 #include "art/Utilities/InputTag.h"
23 #include "fhiclcpp/ParameterSet.h"
25 #include "artdaq-core/Data/PackageBuildInfo.hh"
38 void analyze(art::Event
const & )
override {
42 virtual void beginRun(art::Run
const& r);
46 std::string buildinfo_module_label_;
47 std::string buildinfo_instance_label_;
52 artdaq::PrintBuildInfo::PrintBuildInfo(fhicl::ParameterSet
const & pset)
55 buildinfo_module_label_(pset.get<std::string>(
"buildinfo_module_label")),
56 buildinfo_instance_label_(pset.get<std::string>(
"buildinfo_instance_label"))
59 artdaq::PrintBuildInfo::~PrintBuildInfo()
65 void artdaq::PrintBuildInfo::beginRun(art::Run
const& run)
68 art::Handle<std::vector<artdaq::PackageBuildInfo> > raw;
70 run.getByLabel(buildinfo_module_label_, buildinfo_instance_label_, raw);
74 std::cout <<
"--------------------------------------------------------------" << std::endl;
76 std::cout << std::left <<
"Package" <<
"|";
78 std::cout << std::left <<
"Version" <<
"|";
80 std::cout << std::left <<
"Timestamp" << std::endl;
82 for (
auto pkg : *raw ) {
84 std::cout << std::left << pkg.getPackageName() <<
"|";
86 std::cout << std::left << pkg.getPackageVersion() <<
"|";
88 std::cout << std::left << pkg.getBuildTimestamp() << std::endl;
91 std::cout <<
"--------------------------------------------------------------" << std::endl;
95 std::cerr <<
"\n" << std::endl;
96 std::cerr <<
"Warning in artdaq::PrintBuildInfo module: Run " << run.run() <<
97 " appears not to have found product instance \"" << buildinfo_instance_label_ <<
98 "\" of module \"" << buildinfo_module_label_ <<
"\"" << std::endl;
99 std::cerr <<
"\n" << std::endl;