![]() |
KaliVeda
Toolkit for HIC analysis
|
Handles lists of available runs for different datasets and types of data.
For each type of data associated with each dataset (type="raw", "recon", "ident" or "root") we maintain runlist files which contain the run numbers of datafiles which are physically present/available, along with the date/time of last modification of each file, and the filename.
These files are kept in the dataset's KVFiles subdirectory, i.e. in $KVROOT/KVFiles/[name of dataset]
The name of each file has the following format:
Definition at line 53 of file KVAvailableRunsFile.h.
#include <KVAvailableRunsFile.h>
Public Member Functions | |
KVAvailableRunsFile ()=default | |
KVAvailableRunsFile (const Char_t *type) | |
KVAvailableRunsFile (const Char_t *type, const KVDataSet *parent) | |
virtual void | Add (const run_index_t &run, const KVString &filename) |
Bool_t | CheckAvailable (const run_index_t &run) |
std::forward_list< run_index_t > | CheckMultiRunfiles () |
Returns a list with all run/indexes for which more than one file is in the available runs db. More... | |
Int_t | Count (const run_index_t &run) |
Bool_t | ExtractDateFromFileName (const Char_t *name, KVDatime &date) |
Bool_t | FileExists () const |
const KVDataSet * | GetDataSet () const |
const Char_t * | GetDataType () const |
TString | GetFileName (const run_index_t &run) |
std::unique_ptr< TList > | GetListOfAvailableSystems (const KVDBSystem *systol=0) |
Bool_t | GetRunInfo (const run_index_t &run, TDatime &modtime, TString &filename) |
void | GetRunInfos (const run_index_t &run, KVList *dates, KVList *names) |
run_index_list | GetRunList (const KVDBSystem *system=0) |
Bool_t | InfosNeedUpdate (const run_index_t &run, const KVString &filename) |
std::optional< run_index_t > | IsRunFileName (const Char_t *filename) |
virtual void | Remove (const run_index_t &run, const KVString &filename="") |
Remove from the db ALL entries corresponding to the given run/index (and filename if given) More... | |
void | RemoveDuplicateLines (KVNumberList lines_to_be_removed) |
void | SetDataSet (const KVDataSet *d) |
virtual void | Update (const std::unique_ptr< KVSQLite::database > &db_handle={}) |
void | UpdateInfos (const run_index_t &run, const KVString &filename, const KVString &kvversion, const KVString &username) |
![]() | |
KVBase () | |
Default constructor. More... | |
KVBase (const Char_t *name, const Char_t *title="") | |
Ctor for object with given name and type. More... | |
KVBase (const KVBase &) | |
copy ctor More... | |
void | Clear (Option_t *opt="") override |
Clear object properties : name, type/title, number, label. More... | |
void | Copy (TObject &) const override |
Make a copy of this object. More... | |
const Char_t * | GetLabel () const |
UInt_t | GetNumber () const |
virtual TObject * | GetObject () const |
virtual const Char_t * | GetType () const |
Bool_t | HasLabel () const |
virtual Bool_t | IsCalled (const Char_t *name) const |
Bool_t | IsLabelled (const Char_t *l) const |
virtual Bool_t | IsType (const Char_t *typ) const |
virtual void | List () |
KVBase & | operator= (const KVBase &) |
copy assignment operator More... | |
void | Print (Option_t *option="") const override |
Double_t | ProtectedGetX (const TF1 *func, Double_t val, int &status, Double_t xmin=0.0, Double_t xmax=0.0) const |
void | SetLabel (const Char_t *lab) |
virtual void | SetNumber (UInt_t num) |
virtual void | SetType (const Char_t *str) |
![]() | |
TNamed () | |
TNamed (const char *name, const char *title) | |
TNamed (const TNamed &named) | |
TNamed (const TString &name, const TString &title) | |
virtual | ~TNamed () |
TObject * | Clone (const char *newname="") const override |
Int_t | Compare (const TObject *obj) 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) |
![]() | |
TObject () | |
TObject (const TObject &object) | |
virtual | ~TObject () |
void | AbstractMethod (const char *method) const |
virtual void | AppendPad (Option_t *option="") |
virtual void | Browse (TBrowser *b) |
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 TObject * | FindObject (const char *name) const |
virtual TObject * | FindObject (const TObject *obj) 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 |
virtual Bool_t | IsFolder () 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) |
virtual void | RecursiveRemove (TObject *obj) |
void | ResetBit (UInt_t f) |
virtual void | SaveAs (const char *filename="", Option_t *option="") const |
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 Bool_t | ExtractDateFromFileName (const TString &fmt, const Char_t *name, KVDatime &date) |
static std::optional< run_index_t > | IsRunFileName (const KVString &fmt, const KVString &filename, const KVString &separators=".") |
![]() | |
static Bool_t | AreEqual (Double_t x, Double_t y, Long64_t maxdif=1) |
Comparison between two 64-bit floating-point values. More... | |
static void | BackupFileWithDate (const Char_t *path) |
static void | CombineFiles (const Char_t *file1, const Char_t *file2, const Char_t *newfilename, Bool_t keep=kTRUE) |
static void | Deprecated (const char *method, const char *advice) |
static Bool_t | FindClassSourceFiles (const KVString &class_name, KVString &imp_file, KVString &dec_file, const KVString &dir_name=".") |
static Bool_t | FindExecutable (TString &exec, const Char_t *path="$(PATH)") |
static const Char_t * | FindFile (const Char_t *search, TString &wfil) |
static const Char_t * | GetBINDIRFilePath (const Char_t *namefile="") |
static const Char_t * | GetDATABASEFilePath () |
static const Char_t * | GetDATADIRFilePath (const Char_t *namefile="") |
static KVString | GetDataSetEnv (const KVString &dataset, const KVString &type, const char *defval) |
template<typename ValType > | |
static ValType | GetDataSetEnv (const KVString &dataset, const KVString &type, const ValType &defval) |
static const Char_t * | GetETCDIRFilePath (const Char_t *namefile="") |
static const Char_t * | GetExampleFilePath (const Char_t *library, const Char_t *namefile) |
Return full path to example file for given library (="KVMultiDet", "BackTrack", etc.) More... | |
static const Char_t * | GetINCDIRFilePath (const Char_t *namefile="") |
static const Char_t * | GetKVBuildDate () |
Returns KaliVeda build date. More... | |
static const Char_t * | GetKVBuildDir () |
Returns top-level directory used for build. More... | |
static const Char_t * | GetKVBuildTime () |
Returns KaliVeda build time. More... | |
static const Char_t * | GetKVBuildType () |
Returns KaliVeda build type (cmake build: Release, Debug, RelWithDebInfo, ...) More... | |
static const Char_t * | GetKVBuildUser () |
Returns username of person who performed build. More... | |
static int | GetKVMajorVersion () |
static int | GetKVMinorVersion () |
static const Char_t * | GetKVSourceDir () |
Returns top-level directory of source tree used for build. More... | |
static const Char_t * | GetKVVersion () |
Returns KaliVeda version string. More... | |
static const Char_t * | GetLIBDIRFilePath (const Char_t *namefile="") |
static const Char_t * | GetListOfPlugins (const Char_t *base) |
static const Char_t * | GetListOfPluginURIs (const Char_t *base) |
static const Char_t * | GetPluginURI (const Char_t *base, const Char_t *plugin) |
static void | GetTempFileName (TString &base) |
static const Char_t * | GetTEMPLATEDIRFilePath (const Char_t *namefile="") |
static const Char_t * | GetWORKDIRFilePath (const Char_t *namefile="") |
static const Char_t * | gitBranch () |
Returns git branch of sources. More... | |
static const Char_t * | gitCommit () |
Returns last git commit of sources. More... | |
static void | InitEnvironment () |
static bool | is_gnuinstall () |
static Bool_t | IsEnvInit () |
static Bool_t | IsThisAPlugin (const TString &uri, TString &base) |
static TPluginHandler * | LoadPlugin (const Char_t *base, const Char_t *uri="0") |
static Bool_t | OpenContextMenu (const char *method, TObject *obj, const char *alt_method_name="") |
static void | OpenTempFile (TString &base, std::ofstream &fp) |
static void | PrintSplashScreen () |
Prints welcome message and infos on version etc. More... | |
static Bool_t | SearchAndOpenKVFile (const Char_t *name, KVSQLite::database &dbfile, const Char_t *kvsubdir="") |
static Bool_t | SearchAndOpenKVFile (const Char_t *name, std::ifstream &file, const Char_t *kvsubdir="", KVLockfile *locks=0) |
static Bool_t | SearchAndOpenKVFile (const Char_t *name, std::ofstream &file, const Char_t *kvsubdir="", KVLockfile *locks=0) |
static Bool_t | SearchKVFile (const Char_t *name, TString &fullpath, const Char_t *kvsubdir="") |
static const Char_t * | WorkingDirectory () |
![]() | |
static TClass * | Class () |
static const char * | Class_Name () |
static constexpr Version_t | Class_Version () |
static const char * | DeclFileName () |
![]() | |
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 | |
Bool_t | CheckDirectoryForAvailableRunsFile () |
virtual bool | get_file_modification_date (KVDataRepository *repository, const KVBase *objs, KVDatime &modt) |
KVString | GetFileName () const |
KVString | GetFilePath () const |
KVString | GetFullPathToAvailableRunsFile () const |
bool | insert_runfile_into_database (KVDataRepository *repository, const KVBase *objs, KVSQLite::database *RunListTable, const run_index_t &run_num, KVDBRun *run, bool with_version_and_username=false) |
void | insert_runfile_into_database (KVDataRepository *repository, const KVString &filename, const KVDatime &modt, KVSQLite::database *RunListTable, const run_index_t &run_num, KVDBRun *run, bool with_version_and_username=false) |
virtual std::unique_ptr< KVSQLite::database > | OpenAvailableRunsFile (bool called_by_update=false) |
TString | SelectFileName (const KVString &filename) |
TString | SelectRunAndOrIndex (const run_index_t &run) |
dataset to which this file belongs More... | |
Private Attributes | |
const KVDataSet * | fDataSet = nullptr |
bool | making_new_db = false |
Static Private Attributes | |
static KVString | date_read_from_filename = "" |
Additional Inherited Members | |
![]() | |
enum | EKaliVedaBits { kIsKaliVedaObject = BIT(23) } |
![]() | |
enum | EDeprecatedStatusBits |
enum | EStatusBits |
![]() | |
kBitMask | |
kCanDelete | |
kCannotPick | |
kHasUUID | |
kInconsistent | |
kInvalidObject | |
kIsOnHeap | |
kIsReferenced | |
kMustCleanup | |
kNoContextMenu | |
kNotDeleted | |
kObjInCanvas | |
kOverwrite | |
kSingleKey | |
kWriteDelete | |
kZombie | |
![]() | |
virtual void | DoError (int level, const char *location, const char *fmt, va_list va) const |
void | MakeZombie () |
![]() | |
TString | fName |
TString | fTitle |
![]() | |
kOnlyPrepStep | |
|
default |
|
inline |
Constructor with name of datatype Dataset must be set straight away with SetDataSet(KVDataSet*)
Definition at line 92 of file KVAvailableRunsFile.h.
Constructor with name of datatype and pointer to dataset to which this file belongs
Definition at line 97 of file KVAvailableRunsFile.h.
|
virtual |
Add to the file an entry corresponding to this run, assumed to be present in the repository with the given filename.
Definition at line 672 of file KVAvailableRunsFile.cpp.
|
inline |
Look for a given run/index number in the db If run not found, returns kFALSE
If available runs db does not exist, it will be created
Definition at line 125 of file KVAvailableRunsFile.h.
|
private |
Check that the directory given by GetFilePath() exists and is writable If it does not exist, it will be created if possible If it exists but is not writable, or cannot be created, returns kFALSE.
Definition at line 862 of file KVAvailableRunsFile.cpp.
std::forward_list< run_index_t > KVAvailableRunsFile::CheckMultiRunfiles | ( | ) |
Returns a list with all run/indexes for which more than one file is in the available runs db.
Definition at line 687 of file KVAvailableRunsFile.cpp.
|
inline |
Count the number of files for a given run/index in the db
If available runs db does not exist, it will be created
Definition at line 136 of file KVAvailableRunsFile.h.
We assume that 'name' is the name of a run of the type of this available runs file (see KVAvailableRunsFile::IsRunFileName for accepted formats for runfile names with dates). We attempt several methods to try to extract a date from 'name'. If successful, we return kTRUE and 'date' contains the result.
Definition at line 113 of file KVAvailableRunsFile.h.
|
static |
We assume that 'name' is the name of a runfile according to given format 'fmt'. (see KVAvailableRunsFile::IsRunFileName for accepted formats for runfile names with dates). We attempt several methods to try to extract a date from 'name'. If successful, we return kTRUE and 'date' contains the result.
Definition at line 224 of file KVAvailableRunsFile.cpp.
|
inline |
Definition at line 102 of file KVAvailableRunsFile.h.
|
privatevirtual |
Reimplemented in DMSAvailableRunsFile.
Definition at line 263 of file KVAvailableRunsFile.cpp.
|
inline |
Dataset to which this file belongs
Definition at line 166 of file KVAvailableRunsFile.h.
|
inline |
Definition at line 107 of file KVAvailableRunsFile.h.
|
private |
Filename of file containing information on available runs i.e. [repository].available_runs.[dataset subdir].[dattype subdir].sqlite
If [dataset subdir] contains "/" (i.e. if data is grouped into subdirectories) we replace them by "_"
Definition at line 760 of file KVAvailableRunsFile.cpp.
|
inline |
Get name of file for given run/index if one exists. Empty string if no file in db.
Definition at line 149 of file KVAvailableRunsFile.h.
|
private |
Returns the full path to the directory where the available runs file is stored. This is by default the same directory where the dataset files are stored. However, if KaliVeda was installed using a GNU-style directory layout (possibly in the system directories, e.g. Ubuntu packages) then the path will be the user's working directory + dataset name
Alternatively, by setting the config variable KVAvailableRunsFile.RunFileDirectory: /some/path
files will be stored/looked for in /some/path/[dataset]
You can use environment variables - - in the path
Definition at line 799 of file KVAvailableRunsFile.cpp.
|
private |
Return the full path on the local machine to the file used to store information on available runs
Definition at line 845 of file KVAvailableRunsFile.cpp.
std::unique_ptr< TList > KVAvailableRunsFile::GetListOfAvailableSystems | ( | const KVDBSystem * | systol = 0 | ) |
Create and fill a sorted list of available systems based on the runs in the available runs db. If systol!=0 then create and fill a list of available files (KVRunFile objects) for the given system.
For each system in the list we set the number of available runs : this number can be retrieved with KVDBSystem::GetNumberRuns()
Note that 'bad' runfiles are excluded
Definition at line 548 of file KVAvailableRunsFile.cpp.
Bool_t KVAvailableRunsFile::GetRunInfo | ( | const run_index_t & | run, |
TDatime & | modtime, | ||
TString & | filename | ||
) |
Look for a given run/index number in the file, and read the file's modification date/time and filename If run not found, returns kFALSE If available runs file does not exist, Update() is called to create it. If there are multiple versions of the same run (abnormal situation), we print a warning and give info on the most recent file.
Definition at line 456 of file KVAvailableRunsFile.cpp.
void KVAvailableRunsFile::GetRunInfos | ( | const run_index_t & | run, |
KVList * | dates, | ||
KVList * | files | ||
) |
Look for a given run/index in the database, and store the file's modification date/time and filename in the two KVList as TObjString objects (these objects belong to the lists and will be deleted by them).
We do not stop at the first run found, but add informations for every occurence of the run in the database (however, we do ignore any spurious duplicate entries if they exist)
If available runs db does not exist, it will be created
Definition at line 508 of file KVAvailableRunsFile.cpp.
run_index_list KVAvailableRunsFile::GetRunList | ( | const KVDBSystem * | sys = 0 | ) |
Returns list of available run/indexes for this data type.
If 'sys' gives the address of a valid database reaction system, only files corresponding to the system will be included.
Note that runfiles which are considered to be 'bad' are excluded
Definition at line 716 of file KVAvailableRunsFile.cpp.
Bool_t KVAvailableRunsFile::InfosNeedUpdate | ( | const run_index_t & | run, |
const KVString & | filename | ||
) |
return kTRUE if the given file for this runfile is lacking some information e.g. the KV version and username
N.B.: if no file is known for this run, we return kFALSE
Definition at line 941 of file KVAvailableRunsFile.cpp.
|
private |
Definition at line 278 of file KVAvailableRunsFile.cpp.
|
private |
Definition at line 298 of file KVAvailableRunsFile.cpp.
std::optional< run_index_t > KVAvailableRunsFile::IsRunFileName | ( | const Char_t * | filename | ) |
This method tests the string given as 'filename' to see if it could be the name of a runfile of the datatype of this available runs file (GetDataType()), for its parent dataset, fDataSet. Any protocol and/or path information in the filename is first removed.
The format for a given dataset is defined by variable
[dataset].DataSet.RunFileName.[datatype]: [format]
Definition at line 33 of file KVAvailableRunsFile.cpp.
|
static |
This method tests the string given as 'filename' to see if it could be the name of a runfile. Any protocol and/or path information in the filename is first removed. The decision as to whether the filename is valid or not is based on whether it corresponds to the given format string, e.g. run_%04d.dat
If good, we return the run number & eventual index as a std::optional<run_index_t> (if no index is defined for the file i.e. if I does not appear in the format, this part of the run_index_t has no value).
If not, the std::optional has no value. This can be tested as:
KNOWN CASES:
The filename will be broken up according to the separators (default: ".") Then the different parts will be analysed according to the given format string
Definition at line 100 of file KVAvailableRunsFile.cpp.
|
privatevirtual |
Definition at line 887 of file KVAvailableRunsFile.cpp.
|
virtual |
Remove from the db ALL entries corresponding to the given run/index (and filename if given)
Definition at line 653 of file KVAvailableRunsFile.cpp.
void KVAvailableRunsFile::RemoveDuplicateLines | ( | KVNumberList | lines_to_be_removed | ) |
Definition at line 65 of file KVAvailableRunsFile.h.
|
inlineprivate |
dataset to which this file belongs
Definition at line 58 of file KVAvailableRunsFile.h.
Set dataset to which this file belongs
Definition at line 172 of file KVAvailableRunsFile.h.
|
virtual |
Examine the contents of the repository directory corresponding to this datatype for parent dataset fDataSet.
For each file found which was not already in the list of available runs and we add an entry to the available runlist database file.
This may be called by OpenAvailableRunsFile() in order to initially create the new db file: in this case db_handle contains the pointer to the (already open) db.
Definition at line 346 of file KVAvailableRunsFile.cpp.
void KVAvailableRunsFile::UpdateInfos | ( | const run_index_t & | run, |
const KVString & | filename, | ||
const KVString & | kvversion, | ||
const KVString & | username | ||
) |
Call this method to update informations on the file "filename" corresponding to run, by adding/replacing the KV version and username read from the file itself (not necessarily corresponding to current KV version and username)
Definition at line 633 of file KVAvailableRunsFile.cpp.
|
staticprivate |
Definition at line 55 of file KVAvailableRunsFile.h.
|
private |
Definition at line 56 of file KVAvailableRunsFile.h.
|
private |
Definition at line 87 of file KVAvailableRunsFile.h.