Belle II Software  release-06-00-14
FileMetaData.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 
9 #pragma once
10 
11 #include <TObject.h>
12 
13 #include <iosfwd>
14 #include <vector>
15 #include <string>
16 #include <map>
17 
18 namespace Belle2 {
29  class FileMetaData : public TObject {
30  public:
33  FileMetaData();
34 
37  const std::string& getLfn() const {return m_lfn;}
38 
41  unsigned int getNEvents() const {return m_nEvents;}
42 
45  int getExperimentLow() const {return m_experimentLow;}
46 
49  int getRunLow() const {return m_runLow;}
50 
53  unsigned int getEventLow() const {return m_eventLow;}
54 
57  int getExperimentHigh() const {return m_experimentHigh;}
58 
61  int getRunHigh() const {return m_runHigh;}
62 
65  unsigned int getEventHigh() const {return m_eventHigh;}
66 
77  bool containsEvent(int experiment, int run, unsigned int event) const;
78 
81  int getNParents() const {return m_parentLfns.size();}
82 
88  const std::string& getParent(int iParent) const {return m_parentLfns[iParent];}
89 
91  const std::string& getDate() const {return m_date;}
92 
95  const std::string& getSite() const {return m_site;}
96 
99  const std::string& getUser() const {return m_user;}
100 
103  const std::string& getRandomSeed() const {return m_randomSeed;}
104 
107  const std::string& getRelease() const {return m_release;}
108 
111  const std::string& getSteering() const {return m_steering;}
112 
115  bool isMC() const {return m_isMC;}
116 
119  unsigned int getMcEvents() const {return m_mcEvents;}
120 
126  const std::string& getDatabaseGlobalTag() const { return m_databaseGlobalTag; }
127 
129  const std::map<std::string, std::string>& getDataDescription() const { return m_dataDescription; }
130 
135  void setLfn(const std::string& lfn) {m_lfn = lfn;}
136 
141  void setNEvents(unsigned int nEvents) {m_nEvents = nEvents;}
142 
149  void setLow(int experiment, int run, unsigned int event) {m_experimentLow = experiment; m_runLow = run; m_eventLow = event;}
150 
157  void setHigh(int experiment, int run, unsigned int event) {m_experimentHigh = experiment; m_runHigh = run; m_eventHigh = event;}
158 
163  void setParents(const std::vector<std::string>& parents) {m_parentLfns = parents;}
164 
172  void setCreationData(const std::string& date, const std::string& site, const std::string& user, const std::string& release)
173  {m_date = date; m_site = site; m_user = user; m_release = release;}
174 
179  void setRandomSeed(const std::string& seed) {m_randomSeed = seed;}
180 
185  void setSteering(const std::string& steering) {m_steering = steering;}
186 
191  void setMcEvents(unsigned int nEvents) {m_mcEvents = nEvents;}
192 
198  void setDatabaseGlobalTag(const std::string& globalTag) { m_databaseGlobalTag = globalTag; }
199 
204  void setDataDescription(const std::string& key, const std::string& value) { m_dataDescription[key] = value; }
205 
207  void removeDataDescription(const std::string& key) { m_dataDescription.erase(key); }
208 
212  static void exposePythonAPI();
213 
218  virtual void Print(Option_t* option = "") const override;
219 
226  bool read(std::istream& input, std::string& physicalFileName);
227 
234  bool write(std::ostream& output, const std::string& physicalFileName) const;
235 
238  std::string getJsonStr() const;
239 
240  private:
241 
242  std::string m_lfn;
244  unsigned int m_nEvents;
248  int m_runLow;
250  unsigned int m_eventLow;
254  int m_runHigh;
256  unsigned int m_eventHigh;
258  std::vector<std::string> m_parentLfns;
260  std::string m_date;
262  std::string m_site;
264  std::string m_user;
266  std::string m_randomSeed;
268  std::string m_release;
270  std::string m_steering;
272  bool m_isMC;
274  unsigned int m_mcEvents;
276  std::string m_databaseGlobalTag;
278  std::map<std::string, std::string> m_dataDescription;
282  void declareRealData() {m_isMC = false;}
283 
284  friend class SeqRootInputModule;
285  friend class RootInputModule;
286  friend class RootOutputModule;
287  friend class B2BIIMdstInputModule;
288  friend class BeamBkgHitRateMonitorModule;
289 
292  }; //class
293 
295 } // namespace Belle2
Module reads Belle MDST files and converts Belle_event record to Belle II EventMetaData StoreObjectPo...
A module to monitor detector hit rates of beam background Output is to a flat ntuple.
Metadata information about a file.
Definition: FileMetaData.h:29
void removeDataDescription(const std::string &key)
remove an existing data description
Definition: FileMetaData.h:207
virtual void Print(Option_t *option="") const override
Print the content of the meta data object.
Definition: FileMetaData.cc:76
std::string m_steering
The steering file content.
Definition: FileMetaData.h:270
unsigned int getEventHigh() const
Highest event number in highest run getter.
Definition: FileMetaData.h:65
void setLow(int experiment, int run, unsigned int event)
Lowest experiment, run and event number setter.
Definition: FileMetaData.h:149
unsigned int m_eventHigh
Highest event number in highest run.
Definition: FileMetaData.h:256
const std::string & getRandomSeed() const
Random seed getter.
Definition: FileMetaData.h:103
void setHigh(int experiment, int run, unsigned int event)
Highest experiment, run and event number setter.
Definition: FileMetaData.h:157
const std::string & getUser() const
User who created the file getter.
Definition: FileMetaData.h:99
int getRunHigh() const
Highest run number getter.
Definition: FileMetaData.h:61
int getNParents() const
Get number of parent files.
Definition: FileMetaData.h:81
std::string m_randomSeed
The random seed used when producing the file.
Definition: FileMetaData.h:266
std::string m_databaseGlobalTag
Global tag in the database used for production of this file.
Definition: FileMetaData.h:276
unsigned int m_nEvents
Number of events.
Definition: FileMetaData.h:244
void setRandomSeed(const std::string &seed)
Random seed setter.
Definition: FileMetaData.h:179
int getRunLow() const
Lowest run number getter.
Definition: FileMetaData.h:49
const std::string & getSteering() const
Steering file content getter.
Definition: FileMetaData.h:111
bool containsEvent(int experiment, int run, unsigned int event) const
Check whether the given event is in the covered range of events.
Definition: FileMetaData.cc:33
void setSteering(const std::string &steering)
Steering file content setter.
Definition: FileMetaData.h:185
void declareRealData()
Declare that this is not generated, but real data.
Definition: FileMetaData.h:282
bool isMC() const
Is it generated data?.
Definition: FileMetaData.h:115
unsigned int getNEvents() const
Number of events getter.
Definition: FileMetaData.h:41
const std::map< std::string, std::string > & getDataDescription() const
get data description.
Definition: FileMetaData.h:129
const std::string & getDate() const
File creation date and time getter (UTC)
Definition: FileMetaData.h:91
bool m_isMC
Is it generated or real data?.
Definition: FileMetaData.h:272
unsigned int m_mcEvents
Number of generated events, 0 for real data.
Definition: FileMetaData.h:274
FileMetaData()
Constructor.
Definition: FileMetaData.cc:26
unsigned int getEventLow() const
Lowest event number in lowest run getter.
Definition: FileMetaData.h:53
std::string m_lfn
Logical file name.
Definition: FileMetaData.h:242
std::map< std::string, std::string > m_dataDescription
key-value store to describe the data.
Definition: FileMetaData.h:278
int m_runLow
Lowest run number.
Definition: FileMetaData.h:248
const std::string & getDatabaseGlobalTag() const
Get the database global tag used when creating this file.
Definition: FileMetaData.h:126
std::string m_release
Software release version.
Definition: FileMetaData.h:268
std::string getJsonStr() const
Get a json representation.
std::string m_date
File creation date and time (UTC).
Definition: FileMetaData.h:260
int getExperimentLow() const
Lowest experiment number getter.
Definition: FileMetaData.h:45
ClassDefOverride(FileMetaData, 10)
Metadata information about a file.
static void exposePythonAPI()
Exposes methods of the FileMetaData class to Python.
Definition: FileMetaData.cc:48
bool write(std::ostream &output, const std::string &physicalFileName) const
Write file meta data in xml format to the output stream.
void setCreationData(const std::string &date, const std::string &site, const std::string &user, const std::string &release)
Creation data setter.
Definition: FileMetaData.h:172
const std::string & getLfn() const
Logical file name getter.
Definition: FileMetaData.h:37
const std::string & getRelease() const
Software release version getter.
Definition: FileMetaData.h:107
void setDatabaseGlobalTag(const std::string &globalTag)
Set the database global tag used when creating this file.
Definition: FileMetaData.h:198
void setLfn(const std::string &lfn)
Setter for LFN.
Definition: FileMetaData.h:135
unsigned int m_eventLow
Lowest event number in lowest run.
Definition: FileMetaData.h:250
int m_experimentLow
Lowest experiment number.
Definition: FileMetaData.h:246
std::string m_user
User who created the file.
Definition: FileMetaData.h:264
std::string m_site
Site where the file was created.
Definition: FileMetaData.h:262
void setDataDescription(const std::string &key, const std::string &value)
describe the data, if the key exists contents will be overwritten.
Definition: FileMetaData.h:204
void setNEvents(unsigned int nEvents)
Number of events setter.
Definition: FileMetaData.h:141
int getExperimentHigh() const
Highest experiment number getter.
Definition: FileMetaData.h:57
unsigned int getMcEvents() const
Number of generated events getter.
Definition: FileMetaData.h:119
void setMcEvents(unsigned int nEvents)
Number of generated events setter.
Definition: FileMetaData.h:191
int m_experimentHigh
Highest experiment number.
Definition: FileMetaData.h:252
std::vector< std::string > m_parentLfns
LFNs of parent files.
Definition: FileMetaData.h:258
const std::string & getParent(int iParent) const
Get LFN of parent file.
Definition: FileMetaData.h:88
const std::string & getSite() const
Site where the file was created getter.
Definition: FileMetaData.h:95
void setParents(const std::vector< std::string > &parents)
Parents setter.
Definition: FileMetaData.h:163
int m_runHigh
Highest run number.
Definition: FileMetaData.h:254
bool read(std::istream &input, std::string &physicalFileName)
Read file meta data in xml format from the input stream.
Module to read TTree data from file into the data store.
Write objects from DataStore into a ROOT file.
Module to read files produced by SeqRootOutputModule.
Abstract base class for different kinds of events.