KaliVeda  1.12/06
Heavy-Ion Analysis Toolkit
KVExpDB.h
Go to the documentation of this file.
1 
4 #ifndef __KVEXPDB_H
5 #define __KVEXPDB_H
6 
7 #include "KVDataBase.h"
8 #include "KVDBRun.h"
9 
10 class KVDBSystem;
11 
18 class KVExpDB : public KVDataBase {
19 
20 protected:
24 
28 
29  Bool_t OpenCalibFile(const Char_t* type, std::ifstream& fs) const;
30  virtual void ReadSystemList();
31  virtual void ReadComments();
32  void init();
33 
34 public:
35  KVExpDB();
36  KVExpDB(const Char_t* name);
37  KVExpDB(const Char_t* name, const Char_t* title);
38 
39  Bool_t FindCalibFile(const Char_t* type, TString& fullpath) const;
40  void SetDataSet(const TString& s)
41  {
42  fDataSet = s;
43  }
45  {
46  return fDBType;
47  }
48  void SetDBType(const TString& s)
49  {
50  fDBType = s;
51  }
52 
53  virtual ~KVExpDB();
54 
55  virtual void LinkListToRunRanges(TList* list, UInt_t rr_number,
56  UInt_t run_ranges[][2]);
57  virtual void LinkRecordToRunRanges(KVDBRecord* rec, UInt_t rr_number,
58  UInt_t run_ranges[][2]);
59  virtual void LinkRecordToRunRange(KVDBRecord* rec, UInt_t first_run,
60  UInt_t last_run);
61  virtual void LinkListToRunRange(TList* list, const KVNumberList& nl);
62  virtual void LinkRecordToRunRange(KVDBRecord* rec, const KVNumberList& nl);
63  virtual void LinkRecordToRun(KVDBRecord* rec, Int_t run);
64 
65  void AddRun(KVDBRun* r)
66  {
67  fRuns->AddRecord(r);
68  fListOfRuns.Add(r->GetNumber());
69  }
70  virtual KVSeqCollection* GetRuns() const
71  {
72  return fRuns->GetRecords();
73  }
74  KVDBRun* GetDBRun(Int_t number) const
75  {
76  return (KVDBRun*)fRuns->GetRecord(number);
77  }
78  const KVNumberList& GetRunList() const
79  {
81  return fListOfRuns;
82  }
83  virtual KVDBSystem* GetSystem(const Char_t* system) const
84  {
85  return (KVDBSystem*) fSystems->GetRecord(system);
86  }
87  virtual KVSeqCollection* GetSystems() const
88  {
89  return fSystems->GetRecords();
90  }
91 
93  {
95  }
97  {
99  }
100 
101  void WriteSystemsFile() const;
102  void WriteRunListFile() const;
103 
104  virtual void Save(const Char_t*);
105 
106  virtual TString GetDBEnv(const Char_t*) const;
107  TString GetCalibFileName(const Char_t* type) const
108  {
109  return GetDBEnv(type);
110  }
111 
112  virtual void WriteObjects(TFile*)
113  {
119  }
120 
121  virtual void ReadObjects(TFile*)
122  {
128  }
129 
130  virtual void PrintRuns(KVNumberList&) const;
131 
132  virtual void cd();
133 
134  const Char_t* GetDataSetDir() const
135  {
136  return fDataSetDir;
137  }
138  void SetDataSetDir(const Char_t* d)
139  {
140  fDataSetDir = d;
141  }
142  virtual void Build()
143  {
144  AbstractMethod("Build");
145  }
146 
147  static KVExpDB* MakeDataBase(const Char_t* name, const Char_t* datasetdir);
148 
149  ULong64_t GetTotalEvents(int first_run, int last_run = -1) const;
150  ULong64_t GetTotalEvents(const KVString& system) const;
151 
152  ClassDef(KVExpDB, 2) //base class to describe database of an experiment
153 };
154 
157 
158 #endif
int Int_t
unsigned int UInt_t
#define R__EXTERN
R__EXTERN KVExpDB * gExpDB
........ global variable
Definition: KVExpDB.h:156
ROOT::R::TRInterface & r
#define d(i)
char Char_t
bool Bool_t
#define ClassDef(name, id)
int type
Record folder for the database.
Definition: KVDBRecord.h:42
Description of an experimental run in database ,.
Definition: KVDBRun.h:35
Database class used to store information on different colliding systems studied during an experiment.
Definition: KVDBSystem.h:51
Table in a database.
Definition: KVDBTable.h:33
virtual Bool_t AddRecord(KVDBRecord *add)
Definition: KVDBTable.cpp:74
virtual void RemoveRecord(KVDBRecord *add)
Remove a KVDBRecord from the list of available records.
Definition: KVDBTable.cpp:93
virtual KVDBRecord * GetRecord(const Char_t *rec_name) const
Definition: KVDBTable.h:57
virtual KVSeqCollection * GetRecords() const
Definition: KVDBTable.h:62
Simple cross-referenced database structure.
Definition: KVDataBase.h:136
Base class to describe database of an experiment ,.
Definition: KVExpDB.h:18
KVNumberList fListOfRuns
list of all run numbers
Definition: KVExpDB.h:25
void AddSystem(KVDBSystem *r)
Definition: KVExpDB.h:92
Bool_t FindCalibFile(const Char_t *type, TString &fullpath) const
Definition: KVExpDB.cpp:476
virtual void Build()
Definition: KVExpDB.h:142
virtual ~KVExpDB()
Destructor.
Definition: KVExpDB.cpp:72
virtual KVDBSystem * GetSystem(const Char_t *system) const
Definition: KVExpDB.h:83
virtual void ReadComments()
Definition: KVExpDB.cpp:676
virtual void ReadSystemList()
Definition: KVExpDB.cpp:248
virtual void cd()
Definition: KVExpDB.cpp:547
void AddRun(KVDBRun *r)
Definition: KVExpDB.h:65
KVDBTable * fRuns
table of runs
Definition: KVExpDB.h:26
void SetDBType(const TString &s)
Definition: KVExpDB.h:48
virtual void LinkRecordToRun(KVDBRecord *rec, Int_t run)
Definition: KVExpDB.cpp:124
KVDBRun * GetDBRun(Int_t number) const
Definition: KVExpDB.h:74
virtual KVSeqCollection * GetRuns() const
Definition: KVExpDB.h:70
void RemoveSystem(KVDBSystem *s)
Definition: KVExpDB.h:96
TString GetCalibFileName(const Char_t *type) const
Definition: KVExpDB.h:107
TString GetDBType() const
Definition: KVExpDB.h:44
virtual void LinkListToRunRanges(TList *list, UInt_t rr_number, UInt_t run_ranges[][2])
Link the records contained in the list to the set of runs (see LinkRecordToRunRanges).
Definition: KVExpDB.cpp:163
KVDBTable * fSystems
table of systems
Definition: KVExpDB.h:27
const KVNumberList & GetRunList() const
Definition: KVExpDB.h:78
virtual void PrintRuns(KVNumberList &) const
Definition: KVExpDB.cpp:517
ULong64_t GetTotalEvents(int first_run, int last_run=-1) const
Definition: KVExpDB.cpp:603
virtual KVSeqCollection * GetSystems() const
Definition: KVExpDB.h:87
virtual void Save(const Char_t *)
Definition: KVExpDB.cpp:361
TString fDBType
used by GetDBEnv
Definition: KVExpDB.h:23
virtual void LinkRecordToRunRanges(KVDBRecord *rec, UInt_t rr_number, UInt_t run_ranges[][2])
Definition: KVExpDB.cpp:143
virtual void LinkListToRunRange(TList *list, const KVNumberList &nl)
Link the records contained in the list to the set of runs (see LinkRecordToRunRanges).
Definition: KVExpDB.cpp:199
void WriteSystemsFile() const
Definition: KVExpDB.cpp:328
KVExpDB()
Default constructor.
Definition: KVExpDB.cpp:34
const Char_t * GetDataSetDir() const
Definition: KVExpDB.h:134
void init()
default initialisations
Definition: KVExpDB.cpp:20
virtual void WriteObjects(TFile *)
Definition: KVExpDB.h:112
virtual void LinkRecordToRunRange(KVDBRecord *rec, UInt_t first_run, UInt_t last_run)
Definition: KVExpDB.cpp:86
virtual void ReadObjects(TFile *)
Definition: KVExpDB.h:121
TString fDataSetDir
the directory containing the dataset files
Definition: KVExpDB.h:22
void SetDataSet(const TString &s)
Definition: KVExpDB.h:40
void SetDataSetDir(const Char_t *d)
Definition: KVExpDB.h:138
static KVExpDB * MakeDataBase(const Char_t *name, const Char_t *datasetdir)
Definition: KVExpDB.cpp:569
void WriteRunListFile() const
Definition: KVExpDB.cpp:381
virtual TString GetDBEnv(const Char_t *) const
Definition: KVExpDB.cpp:650
Bool_t OpenCalibFile(const Char_t *type, std::ifstream &fs) const
Definition: KVExpDB.cpp:432
TString fDataSet
the name of the dataset to which this database is associated
Definition: KVExpDB.h:21
Strings used to represent a set of ranges of values.
Definition: KVNumberList.h:83
void Add(Int_t)
Add value 'n' to the list.
KaliVeda extensions to ROOT collection classes.
Extension of ROOT TString class which allows backwards compatibility with ROOT v3....
Definition: KVString.h:72
void AbstractMethod(const char *method) const
unsigned long long ULong64_t
const long double s
Definition: KVUnits.h:94