Belle II Software  release-05-02-19
FileMetaData.h
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2010-2015 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Thomas Kuhr, Martin Ritter *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 
11 #pragma once
12 
13 #include <TObject.h>
14 
15 #include <iosfwd>
16 #include <vector>
17 #include <string>
18 #include <map>
19 
20 namespace Belle2 {
31  class FileMetaData : public TObject {
32  public:
35  FileMetaData();
36 
39  const std::string& getLfn() const {return m_lfn;}
40 
43  unsigned int getNEvents() const {return m_nEvents;}
44 
47  int getExperimentLow() const {return m_experimentLow;}
48 
51  int getRunLow() const {return m_runLow;}
52 
55  unsigned int getEventLow() const {return m_eventLow;}
56 
59  int getExperimentHigh() const {return m_experimentHigh;}
60 
63  int getRunHigh() const {return m_runHigh;}
64 
67  unsigned int getEventHigh() const {return m_eventHigh;}
68 
79  bool containsEvent(int experiment, int run, unsigned int event) const;
80 
83  int getNParents() const {return m_parentLfns.size();}
84 
90  const std::string& getParent(int iParent) const {return m_parentLfns[iParent];}
91 
93  const std::string& getDate() const {return m_date;}
94 
97  const std::string& getSite() const {return m_site;}
98 
101  const std::string& getUser() const {return m_user;}
102 
105  const std::string& getRandomSeed() const {return m_randomSeed;}
106 
109  const std::string& getRelease() const {return m_release;}
110 
113  const std::string& getSteering() const {return m_steering;}
114 
117  bool isMC() const {return m_isMC;}
118 
121  unsigned int getMcEvents() const {return m_mcEvents;}
122 
128  const std::string& getDatabaseGlobalTag() const { return m_databaseGlobalTag; }
129 
131  const std::map<std::string, std::string>& getDataDescription() const { return m_dataDescription; }
132 
137  void setLfn(const std::string& lfn) {m_lfn = lfn;}
138 
143  void setNEvents(unsigned int nEvents) {m_nEvents = nEvents;}
144 
151  void setLow(int experiment, int run, unsigned int event) {m_experimentLow = experiment; m_runLow = run; m_eventLow = event;}
152 
159  void setHigh(int experiment, int run, unsigned int event) {m_experimentHigh = experiment; m_runHigh = run; m_eventHigh = event;}
160 
165  void setParents(const std::vector<std::string>& parents) {m_parentLfns = parents;}
166 
174  void setCreationData(const std::string& date, const std::string& site, const std::string& user, const std::string& release)
175  {m_date = date; m_site = site; m_user = user; m_release = release;}
176 
181  void setRandomSeed(const std::string& seed) {m_randomSeed = seed;}
182 
187  void setSteering(const std::string& steering) {m_steering = steering;}
188 
193  void setMcEvents(unsigned int nEvents) {m_mcEvents = nEvents;}
194 
200  void setDatabaseGlobalTag(const std::string& globalTag) { m_databaseGlobalTag = globalTag; }
201 
206  void setDataDescription(const std::string& key, const std::string& value) { m_dataDescription[key] = value; }
207 
209  void removeDataDescription(const std::string& key) { m_dataDescription.erase(key); }
210 
214  static void exposePythonAPI();
215 
220  virtual void Print(Option_t* option = "") const override;
221 
228  bool read(std::istream& input, std::string& physicalFileName);
229 
236  bool write(std::ostream& output, const std::string& physicalFileName) const;
237 
240  std::string getJsonStr() const;
241 
242  private:
243 
244  std::string m_lfn;
246  unsigned int m_nEvents;
248  int m_experimentLow;
250  int m_runLow;
252  unsigned int m_eventLow;
256  int m_runHigh;
258  unsigned int m_eventHigh;
260  std::vector<std::string> m_parentLfns;
262  std::string m_date;
264  std::string m_site;
266  std::string m_user;
268  std::string m_randomSeed;
270  std::string m_release;
272  std::string m_steering;
274  bool m_isMC;
276  unsigned int m_mcEvents;
278  std::string m_databaseGlobalTag;
280  std::map<std::string, std::string> m_dataDescription;
284  void declareRealData() {m_isMC = false;}
285 
286  friend class SeqRootInputModule;
287  friend class RootInputModule;
288  friend class RootOutputModule;
289  friend class B2BIIMdstInputModule;
290  friend class BeamBkgHitRateMonitorModule;
291 
294  }; //class
295 
297 } // namespace Belle2
Belle2::FileMetaData::m_randomSeed
std::string m_randomSeed
The random seed used when producing the file.
Definition: FileMetaData.h:276
Belle2::FileMetaData::m_runLow
int m_runLow
Lowest run number.
Definition: FileMetaData.h:258
Belle2::FileMetaData::m_experimentLow
int m_experimentLow
Lowest experiment number.
Definition: FileMetaData.h:256
Belle2::FileMetaData::write
bool write(std::ostream &output, const std::string &physicalFileName) const
Write file meta data in xml format to the output stream.
Definition: FileMetaData.cc:157
Belle2::FileMetaData::setRandomSeed
void setRandomSeed(const std::string &seed)
Random seed setter.
Definition: FileMetaData.h:189
Belle2::FileMetaData::m_eventLow
unsigned int m_eventLow
Lowest event number in lowest run.
Definition: FileMetaData.h:260
Belle2::FileMetaData::getSite
const std::string & getSite() const
Site where the file was created getter.
Definition: FileMetaData.h:105
Belle2::FileMetaData::setCreationData
void setCreationData(const std::string &date, const std::string &site, const std::string &user, const std::string &release)
Creation data setter.
Definition: FileMetaData.h:182
Belle2::RootOutputModule
Write objects from DataStore into a ROOT file.
Definition: RootOutputModule.h:47
Belle2::FileMetaData::getMcEvents
unsigned int getMcEvents() const
Number of generated events getter.
Definition: FileMetaData.h:129
Belle2::FileMetaData::isMC
bool isMC() const
Is it generated data?.
Definition: FileMetaData.h:125
Belle2::FileMetaData::declareRealData
void declareRealData()
Declare that this is not generated, but real data.
Definition: FileMetaData.h:292
Belle2::FileMetaData::m_mcEvents
unsigned int m_mcEvents
Number of generated events, 0 for real data.
Definition: FileMetaData.h:284
Belle2::FileMetaData::read
bool read(std::istream &input, std::string &physicalFileName)
Read file meta data in xml format from the input stream.
Definition: FileMetaData.cc:109
Belle2::B2BIIMdstInputModule
Module reads Belle MDST files and converts Belle_event record to Belle II EventMetaData StoreObjectPo...
Definition: B2BIIMdstInputModule.h:35
Belle2::FileMetaData::setSteering
void setSteering(const std::string &steering)
Steering file content setter.
Definition: FileMetaData.h:195
Belle2::FileMetaData::getDatabaseGlobalTag
const std::string & getDatabaseGlobalTag() const
Get the database global tag used when creating this file.
Definition: FileMetaData.h:136
Belle2::FileMetaData::getExperimentLow
int getExperimentLow() const
Lowest experiment number getter.
Definition: FileMetaData.h:55
Belle2::FileMetaData::m_runHigh
int m_runHigh
Highest run number.
Definition: FileMetaData.h:264
Belle2::FileMetaData::containsEvent
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:35
Belle2::FileMetaData::getJsonStr
std::string getJsonStr() const
Get a json representation.
Definition: FileMetaData.cc:182
Belle2::FileMetaData::getRandomSeed
const std::string & getRandomSeed() const
Random seed getter.
Definition: FileMetaData.h:113
Belle2::FileMetaData::ClassDefOverride
ClassDefOverride(FileMetaData, 10)
Metadata information about a file.
Belle2::FileMetaData::removeDataDescription
void removeDataDescription(const std::string &key)
remove an existing data description
Definition: FileMetaData.h:217
Belle2::FileMetaData::setParents
void setParents(const std::vector< std::string > &parents)
Parents setter.
Definition: FileMetaData.h:173
Belle2::FileMetaData::m_steering
std::string m_steering
The steering file content.
Definition: FileMetaData.h:280
Belle2::FileMetaData::getEventHigh
unsigned int getEventHigh() const
Highest event number in highest run getter.
Definition: FileMetaData.h:75
Belle2::FileMetaData::getParent
const std::string & getParent(int iParent) const
Get LFN of parent file.
Definition: FileMetaData.h:98
Belle2::FileMetaData
Metadata information about a file.
Definition: FileMetaData.h:39
Belle2::FileMetaData::m_dataDescription
std::map< std::string, std::string > m_dataDescription
key-value store to describe the data.
Definition: FileMetaData.h:288
Belle2::FileMetaData::m_databaseGlobalTag
std::string m_databaseGlobalTag
Global tag in the database used for production of this file.
Definition: FileMetaData.h:286
Belle2::FileMetaData::getRunHigh
int getRunHigh() const
Highest run number getter.
Definition: FileMetaData.h:71
Belle2::FileMetaData::getExperimentHigh
int getExperimentHigh() const
Highest experiment number getter.
Definition: FileMetaData.h:67
Belle2::FileMetaData::setLfn
void setLfn(const std::string &lfn)
Setter for LFN.
Definition: FileMetaData.h:145
Belle2::FileMetaData::getRunLow
int getRunLow() const
Lowest run number getter.
Definition: FileMetaData.h:59
Belle2::RootInputModule
Module to read TTree data from file into the data store.
Definition: RootInputModule.h:52
Belle2::SeqRootInputModule
Module to read files produced by SeqRootOutputModule.
Definition: SeqRootInputModule.h:22
Belle2::FileMetaData::getNEvents
unsigned int getNEvents() const
Number of events getter.
Definition: FileMetaData.h:51
Belle2::FileMetaData::m_nEvents
unsigned int m_nEvents
Number of events.
Definition: FileMetaData.h:254
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::FileMetaData::setDatabaseGlobalTag
void setDatabaseGlobalTag(const std::string &globalTag)
Set the database global tag used when creating this file.
Definition: FileMetaData.h:208
Belle2::FileMetaData::setMcEvents
void setMcEvents(unsigned int nEvents)
Number of generated events setter.
Definition: FileMetaData.h:201
Belle2::FileMetaData::m_date
std::string m_date
File creation date and time (UTC).
Definition: FileMetaData.h:270
Belle2::FileMetaData::getEventLow
unsigned int getEventLow() const
Lowest event number in lowest run getter.
Definition: FileMetaData.h:63
Belle2::BeamBkgHitRateMonitorModule
A module to monitor detector hit rates of beam background Output is to a flat ntuple.
Definition: BeamBkgHitRateMonitorModule.h:45
Belle2::FileMetaData::setLow
void setLow(int experiment, int run, unsigned int event)
Lowest experiment, run and event number setter.
Definition: FileMetaData.h:159
Belle2::FileMetaData::getDataDescription
const std::map< std::string, std::string > & getDataDescription() const
get data description.
Definition: FileMetaData.h:139
Belle2::FileMetaData::getNParents
int getNParents() const
Get number of parent files.
Definition: FileMetaData.h:91
Belle2::FileMetaData::m_lfn
std::string m_lfn
Logical file name.
Definition: FileMetaData.h:252
Belle2::FileMetaData::FileMetaData
FileMetaData()
Constructor.
Definition: FileMetaData.cc:28
Belle2::FileMetaData::Print
virtual void Print(Option_t *option="") const override
Print the content of the meta data object.
Definition: FileMetaData.cc:78
Belle2::FileMetaData::setHigh
void setHigh(int experiment, int run, unsigned int event)
Highest experiment, run and event number setter.
Definition: FileMetaData.h:167
Belle2::FileMetaData::m_experimentHigh
int m_experimentHigh
Highest experiment number.
Definition: FileMetaData.h:262
Belle2::FileMetaData::m_eventHigh
unsigned int m_eventHigh
Highest event number in highest run.
Definition: FileMetaData.h:266
Belle2::FileMetaData::m_parentLfns
std::vector< std::string > m_parentLfns
LFNs of parent files.
Definition: FileMetaData.h:268
Belle2::FileMetaData::getDate
const std::string & getDate() const
File creation date and time getter (UTC)
Definition: FileMetaData.h:101
Belle2::FileMetaData::m_site
std::string m_site
Site where the file was created.
Definition: FileMetaData.h:272
Belle2::FileMetaData::m_release
std::string m_release
Software release version.
Definition: FileMetaData.h:278
Belle2::FileMetaData::m_isMC
bool m_isMC
Is it generated or real data?.
Definition: FileMetaData.h:282
Belle2::FileMetaData::getSteering
const std::string & getSteering() const
Steering file content getter.
Definition: FileMetaData.h:121
Belle2::FileMetaData::setDataDescription
void setDataDescription(const std::string &key, const std::string &value)
describe the data, if the key exists contents will be overwritten.
Definition: FileMetaData.h:214
Belle2::FileMetaData::exposePythonAPI
static void exposePythonAPI()
Exposes methods of the FileMetaData class to Python.
Definition: FileMetaData.cc:50
Belle2::FileMetaData::getRelease
const std::string & getRelease() const
Software release version getter.
Definition: FileMetaData.h:117
Belle2::FileMetaData::getLfn
const std::string & getLfn() const
Logical file name getter.
Definition: FileMetaData.h:47
Belle2::FileMetaData::m_user
std::string m_user
User who created the file.
Definition: FileMetaData.h:274
Belle2::FileMetaData::getUser
const std::string & getUser() const
User who created the file getter.
Definition: FileMetaData.h:109
Belle2::FileMetaData::setNEvents
void setNEvents(unsigned int nEvents)
Number of events setter.
Definition: FileMetaData.h:151