LDMX Software
RunHeader.h
1#ifndef FRAMEWORK_EVENT_RUNHEADER_H_
2#define FRAMEWORK_EVENT_RUNHEADER_H_
3
4/*~~~~~~~~~~*/
5/* ROOT */
6/*~~~~~~~~~~*/
7#include "TObject.h"
8
9/*~~~~~~~~~~~~~~~~*/
10/* C++ StdLib */
11/*~~~~~~~~~~~~~~~~*/
12#include <map>
13#include <string>
14
15/*~~~~~~~~~~~~~~~*/
16/* Framework */
17/*~~~~~~~~~~~~~~~*/
18#include "Framework/Version.h"
19
20namespace ldmx {
21
67class RunHeader {
68 public:
75 static constexpr int VERSION_WITH_COMPLETED{7};
76
82 RunHeader(int runNumber);
83
89 RunHeader() = default;
90
92 virtual ~RunHeader() {}
93
95 int getRunNumber() const { return run_number_; }
96
98 const std::string& getDetectorName() const { return detector_name_; }
99
101 void setDetectorName(const std::string& det) { detector_name_ = det; }
102
107 const std::string& getSoftwareTag() const { return software_tag_; }
108
112 const std::string& getLdmxswVersion() const { return ldmxsw_version_; }
113
115 const std::string& getDescription() const { return description_; }
116
118 void setDescription(const std::string& des) { description_ = des; }
119
126 int getRunStart() const { return run_start_; }
127
133 void setRunStart(const int runStart) { run_start_ = runStart; }
134
140 int getRunEnd() const { return run_end_; }
141
147 void setRunEnd(const int runEnd) { run_end_ = runEnd; }
148
155 int getNumTries() const { return num_tries_; }
156
167 void setNumTries(const int numTries) { num_tries_ = numTries; }
168
177 bool isCompleted() const { return completed_; }
178
187 void setCompleted(const bool completed) { completed_ = completed; }
188
195 int getIntParameter(const std::string& name) const {
196 return int_parameters_.at(name);
197 }
198
200 const std::map<std::string, int>& getIntParameters() const {
201 return int_parameters_;
202 }
203
210 void setIntParameter(const std::string& name, int value) {
211 int_parameters_[name] = value;
212 }
213
220 float getFloatParameter(const std::string& name) const {
221 return float_parameters_.at(name);
222 }
223
225 const std::map<std::string, float>& getFloatParameters() const {
226 return float_parameters_;
227 }
228
235 void setFloatParameter(const std::string& name, float value) {
236 float_parameters_[name] = value;
237 }
238
245 std::string getStringParameter(const std::string& name) const {
246 return string_parameters_.at(name);
247 }
248
250 const std::map<std::string, std::string>& getStringParameters() const {
251 return string_parameters_;
252 }
253
260 void setStringParameter(const std::string& name, std::string value) {
261 string_parameters_[name] = value;
262 }
263
271 void stream(std::ostream& s) const;
272
274 void print() const;
275
287 friend std::ostream& operator<<(std::ostream& s, const ldmx::RunHeader& h) {
288 h.stream(s);
289 return s;
290 }
291
292 private:
295
297 std::string detector_name_{""};
298
300 std::string description_{""};
301
304
306 int run_end_{0};
307
323
325 bool completed_{false};
326
331 std::string software_tag_{GIT_SHA1};
332
336 std::string ldmxsw_version_{LDMXSW_VERSION};
337
339 std::map<std::string, int> int_parameters_;
340
342 std::map<std::string, float> float_parameters_;
343
345 std::map<std::string, std::string> string_parameters_;
346
347 ClassDef(RunHeader, 7);
348
349}; // RunHeader
350
351} // namespace ldmx
352
353#endif // _FRAMEWORK_EVENT_RUN_HEADER_H_
Run-specific configuration and data stored in its own output TTree alongside the event TTree in the o...
Definition RunHeader.h:67
int getIntParameter(const std::string &name) const
Get an int parameter value.
Definition RunHeader.h:195
void setFloatParameter(const std::string &name, float value)
Set a float parameter value.
Definition RunHeader.h:235
std::string getStringParameter(const std::string &name) const
Get a string parameter value.
Definition RunHeader.h:245
RunHeader()=default
Default constructor.
void stream(std::ostream &s) const
Stream this object into the input ostream.
Definition RunHeader.cxx:15
float getFloatParameter(const std::string &name) const
Get a float parameter value.
Definition RunHeader.h:220
std::map< std::string, int > int_parameters_
Map of int parameters.
Definition RunHeader.h:339
std::map< std::string, std::string > string_parameters_
Map of string parameters.
Definition RunHeader.h:345
int run_number_
Run number.
Definition RunHeader.h:294
void setRunEnd(const int runEnd)
Set the end time of the run in seconds since epoch.
Definition RunHeader.h:147
const std::map< std::string, int > & getIntParameters() const
Get a const reference to all int parameters.
Definition RunHeader.h:200
void setDetectorName(const std::string &det)
Set the name of the detector that was used in this run.
Definition RunHeader.h:101
int num_tries_
Total number of events that were begun during the production of this run.
Definition RunHeader.h:322
void setStringParameter(const std::string &name, std::string value)
Set a string parameter value.
Definition RunHeader.h:260
virtual ~RunHeader()
Destructor.
Definition RunHeader.h:92
std::string description_
Run description.
Definition RunHeader.h:300
const std::string & getSoftwareTag() const
Definition RunHeader.h:107
std::map< std::string, float > float_parameters_
Map of float parameters.
Definition RunHeader.h:342
static constexpr int VERSION_WITH_COMPLETED
The first class version that writes completed_.
Definition RunHeader.h:75
int getNumTries() const
Get the total number of tries that were done during the production of this run.
Definition RunHeader.h:155
const std::string & getLdmxswVersion() const
Definition RunHeader.h:112
void setRunStart(const int runStart)
Set the run start time in seconds since epoch.
Definition RunHeader.h:133
const std::string & getDescription() const
Definition RunHeader.h:115
int getRunStart() const
Get the start time of the run in seconds since epoch.
Definition RunHeader.h:126
int run_end_
Run end in seconds since epoch.
Definition RunHeader.h:306
void setCompleted(const bool completed)
Mark whether this run was completed.
Definition RunHeader.h:187
bool completed_
True only once the run finished and the file was closed cleanly.
Definition RunHeader.h:325
const std::string & getDetectorName() const
Definition RunHeader.h:98
int getRunEnd() const
Get the end time of the run in seconds since epoch.
Definition RunHeader.h:140
friend std::ostream & operator<<(std::ostream &s, const ldmx::RunHeader &h)
Stream this object to an output stream.
Definition RunHeader.h:287
void setDescription(const std::string &des)
Set the description of this run.
Definition RunHeader.h:118
bool isCompleted() const
Check whether the file holding this run was closed cleanly.
Definition RunHeader.h:177
int run_start_
Run start in seconds since epoch.
Definition RunHeader.h:303
const std::map< std::string, float > & getFloatParameters() const
Get a const reference to all float parameters.
Definition RunHeader.h:225
void setNumTries(const int numTries)
Set the total number of tries that were done during the production of this run.
Definition RunHeader.h:167
void print() const
Print a string desciption of this object.
Definition RunHeader.cxx:32
std::string ldmxsw_version_
ldmx-sw software version
Definition RunHeader.h:336
const std::map< std::string, std::string > & getStringParameters() const
Get a const reference to all string parameters.
Definition RunHeader.h:250
std::string detector_name_
Detector name.
Definition RunHeader.h:297
void setIntParameter(const std::string &name, int value)
Set an int parameter value.
Definition RunHeader.h:210
std::string software_tag_
git SHA-1 hash associated with the software tag used to generate this file.
Definition RunHeader.h:331
int getRunNumber() const
Definition RunHeader.h:95