![]() |
KaliVeda
Toolkit for HIC analysis
|
Base class to describe database of an experiment ,,.
Each dataset has an associated database which contains all available information concerning the experimental data (reaction systems, runs and corresponding runfiles) and its calibrations. This database is built from the informations stored in the files found in the dataset directory, $KVROOT/share/kaliveda/[dataset], notably from 2 files
which contain all informations on the files associated with each run (in runinfos.root), and all informations on the reaction systems studied in the experiment (in Systems.dat).
runinfos.root contains a KVNameValueList object describing each experimental run:
In this example, run 10 consists of 2 files, with indices given by the parameter IndexList, names of the files given by File.0 and File.1, time and date of the start and end of each file given by Start.0, etc. etc. The Size.* and Events.* are 64 bit values: see KVNameValueList::GetValue64bit().
#include <KVExpDB.h>

Public Member Functions | |
| KVExpDB () | |
| Default constructor. More... | |
| KVExpDB (const Char_t *name) | |
| Constructor inherited from KVDataBase. More... | |
| KVExpDB (const Char_t *name, const Char_t *title) | |
| Constructor inherited from KVDataBase. More... | |
| virtual | ~KVExpDB () |
| Destructor. More... | |
| void | AddRun (KVDBRun *r) |
| void | AddSystem (KVDBSystem *r) |
| virtual void | Build (bool=false) |
| virtual void | cd () |
| Bool_t | FindCalibFile (const Char_t *type, TString &fullpath, const TString &array_name="") const |
| TString | GetCalibFileName (const Char_t *type) const |
| const Char_t * | GetDataSetDir () const |
| virtual TString | GetDBEnv (const Char_t *) const |
| KVDBRun * | GetDBRun (Int_t number) const |
| KVDBRunFile & | GetDBRunFile (const run_index_t &r) |
| const KVDBRunFile & | GetDBRunFile (const run_index_t &r) const |
| TString | GetDBType () const |
| Int_t | GetIndexMultiplier () const |
| run_index_t | GetRunIndexFromGlobalRunFileNumber (int glob_runfile) const |
| const KVNumberList & | GetRunList () const |
| virtual KVSeqCollection * | GetRuns () const |
| virtual KVDBSystem * | GetSystem (const Char_t *system) const |
| virtual KVSeqCollection * | GetSystems () const |
| ULong64_t | GetTotalEvents (const KVString &system) const |
| Return total number of events for given system. More... | |
| ULong64_t | GetTotalEvents (int first_run, int last_run=-1) const |
| Bool_t | HasIndexMultiplier () const |
| Bool_t | HasRawFilesWithIndex () const |
| Bool_t | IsMinimal () const |
| virtual void | LinkListToRunRange (TList *list, const KVNumberList &nl) |
| Link the records contained in the list to the set of runs (see LinkRecordToRunRanges). More... | |
| 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). More... | |
| virtual void | LinkRecordToRun (KVDBRecord *rec, Int_t run) |
| virtual void | LinkRecordToRunRange (KVDBRecord *rec, const KVNumberList &nl) |
| virtual void | LinkRecordToRunRange (KVDBRecord *rec, UInt_t first_run, UInt_t last_run) |
| virtual void | LinkRecordToRunRanges (KVDBRecord *rec, UInt_t rr_number, UInt_t run_ranges[][2]) |
| virtual void | PrintRuns (KVNumberList &) const |
| virtual void | ReadObjects (TFile *) |
| void | RemoveSystem (KVDBSystem *s) |
| virtual void | Save (const Char_t *) |
| void | SetDataSet (const TString &s) |
| void | SetDataSetDir (const Char_t *d) |
| void | SetDBType (const TString &s) |
| run_index_list | SetRunIndexListFromString (const TString &) const |
| virtual void | WriteObjects (TFile *) |
| void | WriteRunListFile () const |
| void | WriteSystemsFile () const |
Public Member Functions inherited from KVDataBase | |
| KVDataBase () | |
| KVDataBase (const Char_t *name) | |
| KVDataBase (const Char_t *name, const Char_t *title) | |
| virtual | ~ KVDataBase () |
| virtual KVDBTable * | AddTable (const Char_t *name, const Char_t *title, Bool_t unique=kFALSE) |
| virtual Bool_t | AddTable (KVDBTable *table) |
| virtual KVDBRecord * | GetRecord (const Char_t *table_name, const Char_t *rec_name) const |
| virtual KVDBTable * | GetTable (const Char_t *table) const |
| virtual TList * | GetTables () const |
| void | Print (Option_t *option="") const override |
Public Member Functions inherited from TFolder | |
| TFolder () | |
| TFolder (const char *name, const char *title) | |
| virtual | ~TFolder () |
| virtual void | Add (TObject *obj) |
| TFolder * | AddFolder (const char *name, const char *title, TCollection *collection=nullptr) |
| void | Browse (TBrowser *b) override |
| void | Clear (Option_t *option="") override |
| void | Copy (TObject &) const override |
| virtual const char * | FindFullPathName (const char *name) const |
| virtual const char * | FindFullPathName (const TObject *obj) const |
| TObject * | FindObject (const char *name) const override |
| TObject * | FindObject (const TObject *obj) const override |
| virtual TObject * | FindObjectAny (const char *name) const |
| TCollection * | GetListOfFolders () const |
| TClass * | IsA () const override |
| Bool_t | IsFolder () const override |
| Bool_t | IsOwner () const |
| void | ls (Option_t *option="") const override |
| virtual Int_t | Occurence (const TObject *obj) const |
| void | RecursiveRemove (TObject *obj) override |
| virtual void | Remove (TObject *obj) |
| void | SaveAs (const char *filename="", Option_t *option="") const override |
| virtual void | SetOwner (Bool_t owner=kTRUE) |
| void | Streamer (TBuffer &) override |
| void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
Public Member Functions inherited from TNamed | |
| TNamed () | |
| TNamed (const char *name, const char *title) | |
| TNamed (const TNamed &named) | |
| TNamed (const TString &name, const TString &title) | |
| virtual | ~TNamed () |
| void | Clear (Option_t *option="") override |
| TObject * | Clone (const char *newname="") const override |
| Int_t | Compare (const TObject *obj) const override |
| void | Copy (TObject &named) const override |
| virtual void | FillBuffer (char *&buffer) |
| const char * | GetName () const override |
| const char * | GetTitle () const override |
| ULong_t | Hash () const override |
| TClass * | IsA () const override |
| Bool_t | IsSortable () const override |
| void | ls (Option_t *option="") const override |
| TNamed & | operator= (const TNamed &rhs) |
| virtual void | SetName (const char *name) |
| virtual void | SetNameTitle (const char *name, const char *title) |
| virtual void | SetTitle (const char *title="") |
| virtual Int_t | Sizeof () const |
| void | Streamer (TBuffer &) override |
| void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
Public Member Functions inherited from TObject | |
| TObject () | |
| TObject (const TObject &object) | |
| virtual | ~TObject () |
| void | AbstractMethod (const char *method) const |
| virtual void | AppendPad (Option_t *option="") |
| ULong_t | CheckedHash () |
| virtual const char * | ClassName () const |
| virtual void | Delete (Option_t *option="") |
| virtual Int_t | DistancetoPrimitive (Int_t px, Int_t py) |
| virtual void | Draw (Option_t *option="") |
| virtual void | DrawClass () const |
| virtual TObject * | DrawClone (Option_t *option="") const |
| virtual void | Dump () const |
| virtual void | Error (const char *method, const char *msgfmt,...) const |
| virtual void | Execute (const char *method, const char *params, Int_t *error=nullptr) |
| virtual void | Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr) |
| virtual void | ExecuteEvent (Int_t event, Int_t px, Int_t py) |
| virtual void | Fatal (const char *method, const char *msgfmt,...) const |
| virtual Option_t * | GetDrawOption () const |
| virtual const char * | GetIconName () const |
| virtual char * | GetObjectInfo (Int_t px, Int_t py) const |
| virtual Option_t * | GetOption () const |
| virtual UInt_t | GetUniqueID () const |
| virtual Bool_t | HandleTimer (TTimer *timer) |
| Bool_t | HasInconsistentHash () const |
| virtual void | Info (const char *method, const char *msgfmt,...) const |
| virtual Bool_t | InheritsFrom (const char *classname) const |
| virtual Bool_t | InheritsFrom (const TClass *cl) const |
| virtual void | Inspect () const |
| void | InvertBit (UInt_t f) |
| Bool_t | IsDestructed () const |
| virtual Bool_t | IsEqual (const TObject *obj) const |
| R__ALWAYS_INLINE Bool_t | IsOnHeap () const |
| R__ALWAYS_INLINE Bool_t | IsZombie () const |
| void | MayNotUse (const char *method) const |
| virtual Bool_t | Notify () |
| void | Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const |
| void | operator delete (void *ptr) |
| void | operator delete (void *ptr, void *vp) |
| void | operator delete[] (void *ptr) |
| void | operator delete[] (void *ptr, void *vp) |
| void * | operator new (size_t sz) |
| void * | operator new (size_t sz, void *vp) |
| void * | operator new[] (size_t sz) |
| void * | operator new[] (size_t sz, void *vp) |
| TObject & | operator= (const TObject &rhs) |
| virtual void | Paint (Option_t *option="") |
| virtual void | Pop () |
| virtual Int_t | Read (const char *name) |
| void | ResetBit (UInt_t f) |
| virtual void | SavePrimitive (std::ostream &out, Option_t *option="") |
| void | SetBit (UInt_t f) |
| void | SetBit (UInt_t f, Bool_t set) |
| virtual void | SetDrawOption (Option_t *option="") |
| virtual void | SetUniqueID (UInt_t uid) |
| void | StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b) |
| virtual void | SysError (const char *method, const char *msgfmt,...) const |
| R__ALWAYS_INLINE Bool_t | TestBit (UInt_t f) const |
| Int_t | TestBits (UInt_t f) const |
| virtual void | UseCurrentStyle () |
| virtual void | Warning (const char *method, const char *msgfmt,...) const |
| virtual Int_t | Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) |
| virtual Int_t | Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) const |
Static Public Member Functions | |
| static KVExpDB * | MakeDataBase (const Char_t *name, const Char_t *datasetdir, Bool_t minimal=false) |
Static Public Member Functions inherited from TFolder | |
| static TClass * | Class () |
| static const char * | Class_Name () |
| static constexpr Version_t | Class_Version () |
| static const char * | DeclFileName () |
Static Public Member Functions inherited from TNamed | |
| static TClass * | Class () |
| static const char * | Class_Name () |
| static constexpr Version_t | Class_Version () |
| static const char * | DeclFileName () |
Static Public Member Functions inherited from TObject | |
| static TClass * | Class () |
| static const char * | Class_Name () |
| static constexpr Version_t | Class_Version () |
| static const char * | DeclFileName () |
| static Longptr_t | GetDtorOnly () |
| static Bool_t | GetObjectStat () |
| static void | SetDtorOnly (void *obj) |
| static void | SetObjectStat (Bool_t stat) |
Private Member Functions | |
| void | init () |
| default initialisations More... | |
| Bool_t | OpenCalibFile (const Char_t *type, std::ifstream &fs) const |
| void | read_beams_targets_reactions () |
| virtual void | ReadComments () |
| virtual void | ReadSystemList () |
| void | refill_list_of_runs () |
Private Attributes | |
| TString | fDataSet |
| the name of the dataset to which this database is associated More... | |
| TString | fDataSetDir |
| the directory containing the dataset files More... | |
| TString | fDBType |
| used by GetDBEnv More... | |
| KVNumberList | fListOfRuns |
| list of all run numbers More... | |
| std::map< int, run_index_t > | fMapGlobRunFileNumberToRunIndex |
| cannot be saved, no streamer for run_index_t More... | |
| KVDBTable * | fRuns |
| table of runs More... | |
| KVDBTable * | fSystems |
| table of systems More... | |
| int | index_multiplier = 1 |
| bool | minimal_db = false |
| bool | raw_files_have_index = false |
| bool | with_index_multiplier = false |
Additional Inherited Members | |
Public Types inherited from TObject | |
| enum | EDeprecatedStatusBits |
| enum | EStatusBits |
Public Attributes inherited from TObject | |
| kBitMask | |
| kCanDelete | |
| kCannotPick | |
| kHasUUID | |
| kInconsistent | |
| kInvalidObject | |
| kIsOnHeap | |
| kIsReferenced | |
| kMustCleanup | |
| kNoContextMenu | |
| kNotDeleted | |
| kObjInCanvas | |
| kOverwrite | |
| kSingleKey | |
| kWriteDelete | |
| kZombie | |
Protected Member Functions inherited from TObject | |
| virtual void | DoError (int level, const char *location, const char *fmt, va_list va) const |
| void | MakeZombie () |
Protected Attributes inherited from TFolder | |
| TCollection * | fFolders |
| Bool_t | fIsOwner |
Protected Attributes inherited from TNamed | |
| TString | fName |
| TString | fTitle |
Protected Attributes inherited from TObject | |
| kOnlyPrepStep | |
| KVExpDB::KVExpDB | ( | ) |
Default constructor.
Definition at line 233 of file KVExpDB.cpp.
| KVExpDB::KVExpDB | ( | const Char_t * | name | ) |
Constructor inherited from KVDataBase.
Definition at line 245 of file KVExpDB.cpp.
Constructor inherited from KVDataBase.
Definition at line 258 of file KVExpDB.cpp.
|
virtual |
Destructor.
Definition at line 271 of file KVExpDB.cpp.
|
inline |
|
inlinevirtual |
Reimplemented in KVINDRADB_e613, KVINDRADB4, KVINDRADB2, KVINDRADB1, KVINDRADB, KVFAZIADB, and KVExpSetUpDB.
|
virtual |
Reimplemented in KVINDRADB, and KVFAZIADB.
Definition at line 757 of file KVExpDB.cpp.
| Bool_t KVExpDB::FindCalibFile | ( | const Char_t * | type, |
| TString & | fullpath, | ||
| const TString & | array_name = "" |
||
| ) | const |
Find calibration parameter file of given type. Return kTRUE if all OK. In this case fullpath contains the full path to the file.
Types are defined in $KVROOT/KVFiles/.kvrootrc by lines such as (use INDRA as example)
A file with the given name will be looked for in the dataset calibration file directory given by GetDataSetDir()
Filenames specific to a given dataset may also be defined:
where 'INDRA_camp5' is the name of the dataset in question.
If 'array_name' is given and no file is found with this filename, we try looking for a file called 'array_name.filename', i.e. if a filename
is defined, but no ChIoPressures.dat file exists for the dataset, if array_name="INDRA" then we look for a file called INDRA.ChIoPressures.dat
Definition at line 667 of file KVExpDB.cpp.
Will look for
then
if no dataset-specific value is found, then
if no database-specific value is found
Definition at line 1009 of file KVExpDB.cpp.
|
inline |
|
inline |
| run_index_t KVExpDB::GetRunIndexFromGlobalRunFileNumber | ( | int | glob_runfile | ) | const |
| [in] | glob_runfile | global runfile number of a runfile (given by KVDBRunFile::GetGlobalRunFileNumber()) |
Definition at line 857 of file KVExpDB.cpp.
|
inline |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
Return total number of events for given system.
Definition at line 833 of file KVExpDB.cpp.
| ULong64_t KVExpDB::GetTotalEvents | ( | int | first_run, |
| int | last_run = -1 |
||
| ) | const |
Return total number of events in range [first_run,last_run] (if last_run=-1, go to last known run)
Definition at line 811 of file KVExpDB.cpp.
default initialisations
Definition at line 23 of file KVExpDB.cpp.
|
inline |
|
virtual |
Link the records contained in the list to the set of runs (see LinkRecordToRunRanges).
Definition at line 394 of file KVExpDB.cpp.
|
virtual |
Link the records contained in the list to the set of runs (see LinkRecordToRunRanges).
Definition at line 368 of file KVExpDB.cpp.
|
virtual |
Definition at line 329 of file KVExpDB.cpp.
|
virtual |
If the KVDBRecord 'rec' (i.e. set of calibration parameters, reaction system, etc.) is associated to, or valid for, a range of runs, we use this method in order to link the record and the runs. The list of associated runs will be kept with the record, and each of the runs will have a link to the record.
Definition at line 309 of file KVExpDB.cpp.
|
virtual |
If the KVDBRecord 'rec' (i.e. set of calibration parameters, reaction system, etc.) is associated to, or valid for, a range of runs, we use this method in order to link the record and the runs. The list of associated runs will be kept with the record, and each of the runs will have a link to the record.
Definition at line 285 of file KVExpDB.cpp.
|
virtual |
Call LinkRecordToRunRange for a set of run ranges stored in the two-dimensional array in the following way: run_ranges[0][0] = first run of first run range run_ranges[0][1] = last run of first run range run_ranges[1][0] = first run of second run range etc. etc. rr_number is the number of run ranges in the array
Definition at line 348 of file KVExpDB.cpp.
|
static |
Static function which will create and 'Build' the database object corresponding to 'name' defined as 'Plugin' classes for KVExpDB:
The 'name' corresponds to the name of the dataset, it is the argument given to the constructor and stored in member variable fDataSet.
| [in] | minimal | if =true, only a minimal database with runs/systems infos will be built |
Definition at line 778 of file KVExpDB.cpp.
Find and open calibration parameter file of given type. Return kTRUE if all OK. types are defined in $KVROOT/KVFiles/.kvrootrc by lines such as (use INDRA as example)
Default name for file describing systems for each dataset. INDRADB.Systems: Systems.dat
A file with the given name will be looked for in the dataset calibration file directory given by GetDataSetDir()
Filenames specific to a given dataset may also be defined:
INDRA_camp5.INDRADB.Pedestals: Pedestals5.dat
where 'INDRA_camp5' is the name of the dataset in question.
Definition at line 613 of file KVExpDB.cpp.
|
virtual |
Print compact listing of runs in the number list like this:
root [9] gIndraDB->PrintRuns("8100-8120")
8100 129Xe + 58Ni 8 MeV/A M>=2 968673 8101 129Xe + 58Ni 8 MeV/A M>=2 969166 8102 129Xe + 58Ni 8 MeV/A M>=2 960772 8103 129Xe + 58Ni 8 MeV/A M>=2 970029 8104 129Xe + 58Ni 8 MeV/A M>=2 502992 disjonction ht chassis 1 8105 129Xe + 58Ni 8 MeV/A M>=2 957015 intensite augmentee a 200 pA
Definition at line 727 of file KVExpDB.cpp.
|
private |
Read infos on beams, targets, and reactions in files
(default filenames defined by config variables EXPDB.Beams, EXPDB.Targets, EXPDB.Reactions) and set up the corresponding KVTarget and KVDBSystem objects, adding to the database table Systems.
Format of file is
Format of file is
Format of file is
Definition at line 90 of file KVExpDB.cpp.
|
privatevirtual |
Looks for file with name given by one of the following variables:
[DBtype].Comments [dataset].[DBtype].Comments
and opens it to read and add comments on runs. Format of file is:
run=3830-3836 | really amazing data in these runs
Reimplemented in KVFAZIADB.
Definition at line 1046 of file KVExpDB.cpp.
Abstract method. Can be overridden in child classes. When the database is read from disk (by the currently active dataset, see KVDataSet::OpenDBFile) any associated objects (histograms, trees, etc.) stored in the file can be read using this method. The pointer to the file being read is passed as argument.
Reimplemented in KVINDRADB.
|
privatevirtual |
Set up all informations on the reactions studied during the experiment, store as KVDBSystem objects in the database table Systems.
For information on necessary input files and formats, see read_beams_targets_reactions()
Definition at line 423 of file KVExpDB.cpp.
|
inlineprivate |
|
inline |
Save (in the appropriate text file) the informations on: what = "Systems" : write Systems.dat file what = "Runlist" : write Runlist.csv
Definition at line 542 of file KVExpDB.cpp.
| run_index_list KVExpDB::SetRunIndexListFromString | ( | const TString & | rlist | ) | const |
| [in] | rlist | string containing run numbers, runfile identifiers (run+index), and ranges of both |
The string can contain individual run numbers, runfile (runindex) identifiers, either in sequences (separated by spaces and/or commas), or as part of a range, i.e. two values separated by '-'.
A number without a '.index' index suffix is interpreted as a run number, and corresponds to all runfiles of the given run. A number with '.index' suffix is interpreted as meaning the given individual runfile of the corresponding run.
A number with a '.0' (zero) index is interpreted as the first runfile of the given run (note that normally such a runfile is represented by the run number alone, without a suffix).
Examples:
Definition at line 913 of file KVExpDB.cpp.
Abstract method. Can be overridden in child classes. When the database is written to disk (by the currently active dataset, see KVDataSet::WriteDBFile) any associated objects (histograms, trees, etc.) can be written using this method. The pointer to the file being written is passed as argument.
Reimplemented in KVINDRADB.
| void KVExpDB::WriteRunListFile | ( | ) | const |
Write a file containing a line describing each run in the database. The delimiter symbol used in each line is '|' by default. The first line of the file will be a header description, given by calling KVDBRun::WriteRunListHeader() for the first run in the database. Then we call KVDBRun::WriteRunListLine() for each run. These are virtual methods redefined by child classes of KVDBRun.
Definition at line 562 of file KVExpDB.cpp.
| void KVExpDB::WriteSystemsFile | ( | ) | const |
Write the 'Systems.dat' file for this database. The actual name of the file is given by the value of the environment variable [dataset_name].INDRADB.Systems (if it exists), otherwise the value of INDRADB.Systems is used. The file is written in the $KVROOT/[dataset_directory] directory.
Definition at line 509 of file KVExpDB.cpp.
|
private |
|
private |
|
private |
|
mutableprivate |
cannot be saved, no streamer for run_index_t