KaliVeda
Toolkit for HIC analysis
KVAvailableRunsFile Class Reference

Detailed Description

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:

[repository].available_runs.[dataset subdir].[type of data]
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void data
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type

Definition at line 53 of file KVAvailableRunsFile.h.

#include <KVAvailableRunsFile.h>

Inheritance diagram for KVAvailableRunsFile:

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_tCheckMultiRunfiles ()
 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 KVDataSetGetDataSet () const
 
const Char_tGetDataType () const
 
TString GetFileName (const run_index_t &run)
 
std::unique_ptr< TListGetListOfAvailableSystems (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_tIsRunFileName (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)
 
- Public Member Functions inherited from KVBase
 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_tGetLabel () const
 
UInt_t GetNumber () const
 
virtual TObjectGetObject () const
 
virtual const Char_tGetType () 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 ()
 
KVBaseoperator= (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)
 
- 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 ()
 
TObjectClone (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
 
TClassIsA () const override
 
Bool_t IsSortable () const override
 
void ls (Option_t *option="") const override
 
TNamedoperator= (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="")
 
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 TObjectDrawClone (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 TObjectFindObject (const char *name) const
 
virtual TObjectFindObject (const TObject *obj) const
 
virtual Option_tGetDrawOption () const
 
virtual const char * GetIconName () const
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 
virtual Option_tGetOption () 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)
 
voidoperator new (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz)
 
voidoperator new[] (size_t sz, void *vp)
 
TObjectoperator= (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_tIsRunFileName (const KVString &fmt, const KVString &filename, const KVString &separators=".")
 
- Static Public Member Functions inherited from KVBase
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_tFindFile (const Char_t *search, TString &wfil)
 
static const Char_tGetBINDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetDATABASEFilePath ()
 
static const Char_tGetDATADIRFilePath (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_tGetETCDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetExampleFilePath (const Char_t *library, const Char_t *namefile)
 Return full path to example file for given library (="KVMultiDet", "BackTrack", etc.) More...
 
static const Char_tGetINCDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetKVBuildDate ()
 Returns KaliVeda build date. More...
 
static const Char_tGetKVBuildDir ()
 Returns top-level directory used for build. More...
 
static const Char_tGetKVBuildTime ()
 Returns KaliVeda build time. More...
 
static const Char_tGetKVBuildType ()
 Returns KaliVeda build type (cmake build: Release, Debug, RelWithDebInfo, ...) More...
 
static const Char_tGetKVBuildUser ()
 Returns username of person who performed build. More...
 
static int GetKVMajorVersion ()
 
static int GetKVMinorVersion ()
 
static const Char_tGetKVSourceDir ()
 Returns top-level directory of source tree used for build. More...
 
static const Char_tGetKVVersion ()
 Returns KaliVeda version string. More...
 
static const Char_tGetLIBDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetListOfPlugins (const Char_t *base)
 
static const Char_tGetListOfPluginURIs (const Char_t *base)
 
static const Char_tGetPluginURI (const Char_t *base, const Char_t *plugin)
 
static void GetTempFileName (TString &base)
 
static const Char_tGetTEMPLATEDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetWORKDIRFilePath (const Char_t *namefile="")
 
static const Char_tgitBranch ()
 Returns git branch of sources. More...
 
static const Char_tgitCommit ()
 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 TPluginHandlerLoadPlugin (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_tWorkingDirectory ()
 
- Static Public Member Functions inherited from TNamed
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
- Static Public Member Functions inherited from TObject
static TClassClass ()
 
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::databaseOpenAvailableRunsFile (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 KVDataSetfDataSet = nullptr
 
bool making_new_db = false
 

Static Private Attributes

static KVString date_read_from_filename = ""
 

Additional Inherited Members

- Public Types inherited from KVBase
enum  EKaliVedaBits { kIsKaliVedaObject = BIT(23) }
 
- 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 TNamed
TString fName
 
TString fTitle
 
- Protected Attributes inherited from TObject
 kOnlyPrepStep
 

Constructor & Destructor Documentation

◆ KVAvailableRunsFile() [1/3]

KVAvailableRunsFile::KVAvailableRunsFile ( )
default

◆ KVAvailableRunsFile() [2/3]

KVAvailableRunsFile::KVAvailableRunsFile ( const Char_t type)
inline

Constructor with name of datatype Dataset must be set straight away with SetDataSet(KVDataSet*)

Definition at line 92 of file KVAvailableRunsFile.h.

◆ KVAvailableRunsFile() [3/3]

KVAvailableRunsFile::KVAvailableRunsFile ( const Char_t type,
const KVDataSet parent 
)
inline

Constructor with name of datatype and pointer to dataset to which this file belongs

Definition at line 97 of file KVAvailableRunsFile.h.

Member Function Documentation

◆ Add()

void KVAvailableRunsFile::Add ( const run_index_t run,
const KVString filename 
)
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.

◆ CheckAvailable()

Bool_t KVAvailableRunsFile::CheckAvailable ( const run_index_t run)
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.

◆ CheckDirectoryForAvailableRunsFile()

Bool_t KVAvailableRunsFile::CheckDirectoryForAvailableRunsFile ( )
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.

◆ CheckMultiRunfiles()

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.

◆ Count()

Int_t KVAvailableRunsFile::Count ( const run_index_t run)
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.

◆ ExtractDateFromFileName() [1/2]

Bool_t KVAvailableRunsFile::ExtractDateFromFileName ( const Char_t name,
KVDatime date 
)
inline

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.

◆ ExtractDateFromFileName() [2/2]

Bool_t KVAvailableRunsFile::ExtractDateFromFileName ( const TString fmt,
const Char_t name,
KVDatime date 
)
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.

◆ FileExists()

Bool_t KVAvailableRunsFile::FileExists ( ) const
inline

Definition at line 102 of file KVAvailableRunsFile.h.

◆ get_file_modification_date()

bool KVAvailableRunsFile::get_file_modification_date ( KVDataRepository repository,
const KVBase objs,
KVDatime modt 
)
privatevirtual

Reimplemented in DMSAvailableRunsFile.

Definition at line 263 of file KVAvailableRunsFile.cpp.

◆ GetDataSet()

const KVDataSet* KVAvailableRunsFile::GetDataSet ( ) const
inline

Dataset to which this file belongs

Definition at line 166 of file KVAvailableRunsFile.h.

◆ GetDataType()

const Char_t* KVAvailableRunsFile::GetDataType ( ) const
inline

Definition at line 107 of file KVAvailableRunsFile.h.

◆ GetFileName() [1/2]

KVString KVAvailableRunsFile::GetFileName ( ) const
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.

◆ GetFileName() [2/2]

TString KVAvailableRunsFile::GetFileName ( const run_index_t run)
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.

◆ GetFilePath()

KVString KVAvailableRunsFile::GetFilePath ( ) const
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.

◆ GetFullPathToAvailableRunsFile()

KVString KVAvailableRunsFile::GetFullPathToAvailableRunsFile ( ) const
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.

◆ GetListOfAvailableSystems()

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.

◆ GetRunInfo()

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.

◆ GetRunInfos()

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.

◆ GetRunList()

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.

◆ InfosNeedUpdate()

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.

◆ insert_runfile_into_database() [1/2]

bool KVAvailableRunsFile::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 
)
private

Definition at line 278 of file KVAvailableRunsFile.cpp.

◆ insert_runfile_into_database() [2/2]

void KVAvailableRunsFile::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 
)
private

Definition at line 298 of file KVAvailableRunsFile.cpp.

◆ IsRunFileName() [1/2]

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.

◆ IsRunFileName() [2/2]

std::optional< run_index_t > KVAvailableRunsFile::IsRunFileName ( const KVString fmt,
const KVString filename,
const KVString separators = "." 
)
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:

if(toto.IsRunFileName(...))
{
...ok, filename is good & run number was retrieved
}
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char filename

KNOWN CASES:

======= ================ =====================
INDRA_camp1 run127.raw run%R.raw
INDRA_camp2 run127.raw run%R.raw
INDRA_camp4 run127.raw run%R.raw
INDRA_camp5 run127.raw run%R.raw
INDRA_e416a Run356_06-Oct-05_12_44_12.dat Run%R_%D.dat
INDRA_e475s run_0085.dat.13-Mar-06.12:46:24 run_%R.dat.%D1.%D2
INDRA_e494s run_0026.dat.04-May-07.20:33:00 run_%R.dat.%D1.%D2
INDRA_e503 run_0026.dat.04-May-07.20:33:00 run_%R.dat.%D1.%D2
INDRA_e613 run_0022.dat.08Sep11_00h54m47s run_%R.dat.%D
INDRAFAZIA.E789 run_0017.dat.04-04-19_08h25m57s.1 run_%R.dat.%D.%I
FAZIA* run000345 run%R
%R : run number
%D : date and time
%D1.%D2 : date and time separated by '.'
%I : file index number. WARNING: the first file has NO index, the
second file has index '1', etc. The index returned for the first
file is zero.
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t index
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t format
#define I(x, y, z)
WARNING
constexpr Double_t R()

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.

◆ OpenAvailableRunsFile()

std::unique_ptr< KVSQLite::database > KVAvailableRunsFile::OpenAvailableRunsFile ( bool  called_by_update = false)
privatevirtual

Definition at line 887 of file KVAvailableRunsFile.cpp.

◆ Remove()

void KVAvailableRunsFile::Remove ( const run_index_t run,
const KVString filename = "" 
)
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.

◆ RemoveDuplicateLines()

void KVAvailableRunsFile::RemoveDuplicateLines ( KVNumberList  lines_to_be_removed)

◆ SelectFileName()

TString KVAvailableRunsFile::SelectFileName ( const KVString filename)
inlineprivate

Definition at line 65 of file KVAvailableRunsFile.h.

◆ SelectRunAndOrIndex()

TString KVAvailableRunsFile::SelectRunAndOrIndex ( const run_index_t run)
inlineprivate

dataset to which this file belongs

Definition at line 58 of file KVAvailableRunsFile.h.

◆ SetDataSet()

void KVAvailableRunsFile::SetDataSet ( const KVDataSet d)
inline

Set dataset to which this file belongs

Definition at line 172 of file KVAvailableRunsFile.h.

◆ Update()

void KVAvailableRunsFile::Update ( const std::unique_ptr< KVSQLite::database > &  db_handle = {})
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.

◆ UpdateInfos()

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.

Member Data Documentation

◆ date_read_from_filename

KVString KVAvailableRunsFile::date_read_from_filename = ""
staticprivate

Definition at line 55 of file KVAvailableRunsFile.h.

◆ fDataSet

const KVDataSet* KVAvailableRunsFile::fDataSet = nullptr
private

Definition at line 56 of file KVAvailableRunsFile.h.

◆ making_new_db

bool KVAvailableRunsFile::making_new_db = false
private

Definition at line 87 of file KVAvailableRunsFile.h.