LDMX Software
RunHeader.h
1#ifndef FRAMEWORK_EVENT_RUNHEADER_H_
2#define FRAMEWORK_EVENT_RUNHEADER_H_
3
4/*~~~~~~~~~~*/
5/* ROOT */
6/*~~~~~~~~~~*/
7
8/*~~~~~~~~~~~~~~~~*/
9/* C++ StdLib */
10/*~~~~~~~~~~~~~~~~*/
11#include <Rtypes.h> // For ClassDef
12
13#include <map>
14#include <string>
15
16/*~~~~~~~~~~~~~~~*/
17/* Framework */
18/*~~~~~~~~~~~~~~~*/
19#include "Framework/Version.h"
20
21namespace ldmx {
22
68class RunHeader {
69 public:
76 static constexpr int VERSION_WITH_COMPLETED{7};
77
83 RunHeader(int runNumber);
84
90 RunHeader() = default;
91
93 virtual ~RunHeader() {}
94
96 int getRunNumber() const { return run_number_; }
97
99 const std::string& getDetectorName() const { return detector_name_; }
100
102 void setDetectorName(const std::string& det) { detector_name_ = det; }
103
108 const std::string& getSoftwareTag() const { return software_tag_; }
109
113 const std::string& getLdmxswVersion() const { return ldmxsw_version_; }
114
116 const std::string& getDescription() const { return description_; }
117
119 void setDescription(const std::string& des) { description_ = des; }
120
127 int getRunStart() const { return run_start_; }
128
134 void setRunStart(const int runStart) { run_start_ = runStart; }
135
141 int getRunEnd() const { return run_end_; }
142
148 void setRunEnd(const int runEnd) { run_end_ = runEnd; }
149
156 int getNumTries() const { return num_tries_; }
157
168 void setNumTries(const int numTries) { num_tries_ = numTries; }
169
178 bool isCompleted() const { return completed_; }
179
188 void setCompleted(const bool completed) { completed_ = completed; }
189
196 int getIntParameter(const std::string& name) const {
197 return int_parameters_.at(name);
198 }
199
201 const std::map<std::string, int>& getIntParameters() const {
202 return int_parameters_;
203 }
204
211 void setIntParameter(const std::string& name, int value) {
212 int_parameters_[name] = value;
213 }
214
221 float getFloatParameter(const std::string& name) const {
222 return float_parameters_.at(name);
223 }
224
226 const std::map<std::string, float>& getFloatParameters() const {
227 return float_parameters_;
228 }
229
236 void setFloatParameter(const std::string& name, float value) {
237 float_parameters_[name] = value;
238 }
239
246 std::string getStringParameter(const std::string& name) const {
247 return string_parameters_.at(name);
248 }
249
251 const std::map<std::string, std::string>& getStringParameters() const {
252 return string_parameters_;
253 }
254
261 void setStringParameter(const std::string& name, std::string value) {
262 string_parameters_[name] = value;
263 }
264
272 void stream(std::ostream& s) const;
273
275 void print() const;
276
288 friend std::ostream& operator<<(std::ostream& s, const ldmx::RunHeader& h) {
289 h.stream(s);
290 return s;
291 }
292
293 private:
296
298 std::string detector_name_{""};
299
301 std::string description_{""};
302
305
307 int run_end_{0};
308
324
326 bool completed_{false};
327
332 std::string software_tag_{GIT_SHA1};
333
337 std::string ldmxsw_version_{LDMXSW_VERSION};
338
340 std::map<std::string, int> int_parameters_;
341
343 std::map<std::string, float> float_parameters_;
344
346 std::map<std::string, std::string> string_parameters_;
347
348 ClassDef(RunHeader, 7);
349
350}; // RunHeader
351
352} // namespace ldmx
353
354#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:68
int getIntParameter(const std::string &name) const
Get an int parameter value.
Definition RunHeader.h:196
void setFloatParameter(const std::string &name, float value)
Set a float parameter value.
Definition RunHeader.h:236
std::string getStringParameter(const std::string &name) const
Get a string parameter value.
Definition RunHeader.h:246
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:221
std::map< std::string, int > int_parameters_
Map of int parameters.
Definition RunHeader.h:340
std::map< std::string, std::string > string_parameters_
Map of string parameters.
Definition RunHeader.h:346
int run_number_
Run number.
Definition RunHeader.h:295
void setRunEnd(const int runEnd)
Set the end time of the run in seconds since epoch.
Definition RunHeader.h:148
const std::map< std::string, int > & getIntParameters() const
Get a const reference to all int parameters.
Definition RunHeader.h:201
void setDetectorName(const std::string &det)
Set the name of the detector that was used in this run.
Definition RunHeader.h:102
int num_tries_
Total number of events that were begun during the production of this run.
Definition RunHeader.h:323
void setStringParameter(const std::string &name, std::string value)
Set a string parameter value.
Definition RunHeader.h:261
virtual ~RunHeader()
Destructor.
Definition RunHeader.h:93
std::string description_
Run description.
Definition RunHeader.h:301
const std::string & getSoftwareTag() const
Definition RunHeader.h:108
std::map< std::string, float > float_parameters_
Map of float parameters.
Definition RunHeader.h:343
static constexpr int VERSION_WITH_COMPLETED
The first class version that writes completed_.
Definition RunHeader.h:76
int getNumTries() const
Get the total number of tries that were done during the production of this run.
Definition RunHeader.h:156
const std::string & getLdmxswVersion() const
Definition RunHeader.h:113
void setRunStart(const int runStart)
Set the run start time in seconds since epoch.
Definition RunHeader.h:134
const std::string & getDescription() const
Definition RunHeader.h:116
int getRunStart() const
Get the start time of the run in seconds since epoch.
Definition RunHeader.h:127
int run_end_
Run end in seconds since epoch.
Definition RunHeader.h:307
void setCompleted(const bool completed)
Mark whether this run was completed.
Definition RunHeader.h:188
bool completed_
True only once the run finished and the file was closed cleanly.
Definition RunHeader.h:326
const std::string & getDetectorName() const
Definition RunHeader.h:99
int getRunEnd() const
Get the end time of the run in seconds since epoch.
Definition RunHeader.h:141
friend std::ostream & operator<<(std::ostream &s, const ldmx::RunHeader &h)
Stream this object to an output stream.
Definition RunHeader.h:288
void setDescription(const std::string &des)
Set the description of this run.
Definition RunHeader.h:119
bool isCompleted() const
Check whether the file holding this run was closed cleanly.
Definition RunHeader.h:178
int run_start_
Run start in seconds since epoch.
Definition RunHeader.h:304
const std::map< std::string, float > & getFloatParameters() const
Get a const reference to all float parameters.
Definition RunHeader.h:226
void setNumTries(const int numTries)
Set the total number of tries that were done during the production of this run.
Definition RunHeader.h:168
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:337
const std::map< std::string, std::string > & getStringParameters() const
Get a const reference to all string parameters.
Definition RunHeader.h:251
std::string detector_name_
Detector name.
Definition RunHeader.h:298
void setIntParameter(const std::string &name, int value)
Set an int parameter value.
Definition RunHeader.h:211
std::string software_tag_
git SHA-1 hash associated with the software tag used to generate this file.
Definition RunHeader.h:332
int getRunNumber() const
Definition RunHeader.h:96