Iguana LATEST
Implementation Guardian of Analysis Algorithms
Loading...
Searching...
No Matches
RCDBReader.h
1#pragma once
2
3#include "Object.h"
4#include <mutex>
5
6#ifdef USE_RCDB
7// workaround ODR violations from header-only RCDB:
8// - forward declare RCDB classes here
9// - include directives go in the .cc file
10namespace rcdb {
11 class Connection;
12}
13#endif
14
15namespace iguana {
16
31 class RCDBReader : public Object
32 {
33
34 public:
35
38 RCDBReader(std::string_view name = "rcdb", Logger::Level lev = Logger::DEFAULT_LEVEL);
39
42
45 double GetBeamEnergy(int const runnum);
46
49 void SetBeamEnergyOverride(double const beam_energy);
50
51 protected:
52
54 std::string const m_default_url = "mysql://rcdb@clasdb.jlab.org/rcdb";
55
56 private:
57
58 std::string m_url;
59 std::once_flag m_error_once;
60
62 double m_beam_energy_override{-1};
63
64#ifdef USE_RCDB
65 std::unique_ptr<rcdb::Connection> m_rcdb_connection;
66#endif
67 };
68}
static Level const DEFAULT_LEVEL
The default log level.
Definition Logger.h:43
Object(std::string_view name="", Logger::Level lev=Logger::DEFAULT_LEVEL)
double GetBeamEnergy(int const runnum)
std::string const m_default_url
default RCDB URL, used as a last resort
Definition RCDBReader.h:54
~RCDBReader()
destructor
RCDBReader(std::string_view name="rcdb", Logger::Level lev=Logger::DEFAULT_LEVEL)
void SetBeamEnergyOverride(double const beam_energy)
set the beam energy to a fixed value; GetBeamEnergy will return this energy