18 #include "art_root_io/RootDB/SQLite3Wrapper.h" 30 lar::providerFrom<geo::Geometry>(),
32 lar::providerFrom<detinfo::LArPropertiesService>(),
33 std::set<std::string>({
"InheritNumberTimeSamples"})}
74 if (filename.empty()) {
return; }
76 std::unique_ptr<TFile>
file{TFile::Open(filename.c_str(),
"READ")};
77 if (!
file) {
return; }
79 if (
file->IsZombie() || !
file->IsOpen()) {
return; }
83 art::SQLite3Wrapper sqliteDB(
file.get(),
"RootFileDB");
87 unsigned int iNumberTimeSamples = 0;
88 unsigned int nNumberTimeSamples = 0;
90 sqlite3_stmt* stmt =
nullptr;
91 sqlite3_prepare_v2(sqliteDB,
"SELECT PSetBlob from ParameterSets;", -1, &stmt,
nullptr);
92 while (sqlite3_step(stmt) == SQLITE_ROW) {
97 auto const newNumberTimeSamples = ps.get<
unsigned int>(
"NumberTimeSamples");
98 if (newNumberTimeSamples ==
fPS.
get<
unsigned int>(
"NumberTimeSamples")) {
continue; }
100 if (nNumberTimeSamples != 0 and newNumberTimeSamples != iNumberTimeSamples) {
101 sqlite3_finalize(stmt);
103 <<
"Historical values of NumberTimeSamples do not agree: " << iNumberTimeSamples <<
" " 104 << newNumberTimeSamples <<
"\n";
107 iNumberTimeSamples = newNumberTimeSamples;
108 ++nNumberTimeSamples;
110 sqlite3_finalize(stmt);
117 <<
"Overriding configuration parameter NumberTimeSamples using " 118 "historical value.\n" 120 <<
" Historical (used) value: " << iNumberTimeSamples <<
"\n";
135 return (ps.
get<std::string>(
"service_type",
"") ==
"DetectorPropertiesService") &&
136 (ps.
get<std::string>(
"service_provider",
"") ==
"DetectorPropertiesServiceStandard");
Utilities to manage ProviderPack objects with art.
unsigned int NumberTimeSamples() const override
static ParameterSet make(intermediate_table const &tbl)
MaybeLogger_< ELseverityLevel::ELsev_info, false > LogInfo
void SetNumberTimeSamples(unsigned int nsamp)
DetectorPropertiesServiceStandard(fhicl::ParameterSet const &pset, art::ActivityRegistry ®)
T get(std::string const &key) const
DetectorPropertiesStandard fProp
fhicl::ParameterSet fPS
Original parameter set.
General LArSoft Utilities.
bool isDetectorPropertiesServiceStandard(const fhicl::ParameterSet &ps) const
bool fInheritNumberTimeSamples
Flag saying whether to inherit NumberTimeSamples.
void postOpenFile(const std::string &filename)
art framework interface to geometry description
cet::coded_exception< error, detail::translate > exception