KaliVeda  1.13/01
Heavy-Ion Analysis Toolkit
List of all members | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Private Attributes | List of all members
KVAvailableRunsFile Class Reference

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]
int type

Definition at line 46 of file KVAvailableRunsFile.h.

Public Member Functions

 KVAvailableRunsFile ()
 Default ctor. More...
 
 KVAvailableRunsFile (const Char_t *type)
 
 KVAvailableRunsFile (const Char_t *type, const KVDataSet *parent)
 Constructor with name of datatype and pointer to dataset to which this file belongs. More...
 
virtual ~ KVAvailableRunsFile ()
 
virtual void Add (Int_t run, const Char_t *filename)
 
virtual Bool_t CheckAvailable (Int_t run)
 
KVNumberList CheckMultiRunfiles ()
 Returns a list with all runs which occur more than once in the available runs file. More...
 
virtual Int_t Count (Int_t run)
 
Bool_t ExtractDateFromFileName (const Char_t *name, KVDatime &date)
 
Bool_t FileExists () const
 
const KVDataSetGetDataSet () const
 
const Char_tGetDataType () const
 
const Char_tGetFileName (Int_t run)
 
virtual TListGetListOfAvailableSystems (const KVDBSystem *systol=0)
 
virtual Bool_t GetRunInfo (Int_t run, TDatime &modtime, TString &filename)
 
virtual void GetRunInfos (Int_t run, KVList *dates, KVList *names)
 
virtual KVNumberList GetRunList (const KVDBSystem *system=0)
 
virtual Bool_t InfosNeedUpdate (Int_t run, const Char_t *filename)
 
Int_t IsRunFileName (const Char_t *filename)
 
virtual void Remove (Int_t run, const Char_t *filename="")
 
void RemoveDuplicateLines (KVNumberList lines_to_be_removed)
 
void SetDataSet (const KVDataSet *d)
 
virtual void Update (Bool_t no_existing_file=kFALSE)
 
virtual void UpdateInfos (Int_t run, const Char_t *filename, const Char_t *kvversion, const Char_t *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...
 
virtual ~ KVBase ()
 
virtual void Clear (Option_t *opt="")
 Clear object properties : name, type/title, number, label. More...
 
virtual void Copy (TObject &) const
 Make a copy of this object. More...
 
const Char_tGetLabel () const
 
UInt_t GetNumber () const
 
UInt_t GetNumberOfObjects () 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...
 
virtual void Print (Option_t *option="") const
 
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 ()
 
virtual TObjectClone (const char *newname="") const
 
virtual Int_t Compare (const TObject *obj) const
 
virtual void FillBuffer (char *&buffer)
 
virtual const char * GetName () const
 
virtual const char * GetTitle () const
 
virtual ULong_t Hash () const
 
virtual Bool_t IsSortable () const
 
virtual void ls (Option_t *option="") const
 
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
 
- 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=0)
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=0)
 
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)
 
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)
 
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)
 
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=0, Int_t option=0, Int_t bufsize=0)
 
virtual Int_t Write (const char *name=0, 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 Int_t IsRunFileName (const KVString &fmt, const Char_t *filename, Int_t index_multiplier=10, const Char_t *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 Char_t *class_name, KVString &imp_file, KVString &dec_file, const Char_t *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 Bool_t GetDataSetEnv (const Char_t *dataset, const Char_t *type, Bool_t defval)
 
static const Char_tGetDataSetEnv (const Char_t *dataset, const Char_t *type, const Char_t *defval)
 
static Double_t GetDataSetEnv (const Char_t *dataset, const Char_t *type, Double_t 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 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 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 TObject
static Longptr_t GetDtorOnly ()
 
static Bool_t GetObjectStat ()
 
static void SetDtorOnly (void *obj)
 
static void SetObjectStat (Bool_t stat)
 

Protected Member Functions

Bool_t CheckDirectoryForAvailableRunsFile ()
 
virtual void CloseAvailableRunsFile ()
 
const Char_tGetFileName () const
 
const Char_tGetFilePath () const
 
const Char_tGetFullPathToAvailableRunsFile () const
 
Bool_t IsFileOpen ()
 
virtual Bool_t OpenAvailableRunsFile ()
 
void ReadFile ()
 
KVNameValueListRunHasFileWithDateAndName (Int_t run, const Char_t *filename, TDatime modtime, Int_t &OccNum)
 
- 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

KVHashListfAvailableRuns
 temporary list used to store infos when updating More...
 
const KVDataSetfDataSet
 dataset to which this file belongs More...
 
std::ifstream fRunlist
 for reading runlist file More...
 
KVLockfile runlist_lock
 for locking runlist file More...
 
- Protected Attributes inherited from KVBase
TString fLabel
 label for the object More...
 
- Protected Attributes inherited from TNamed
TString fName
 
TString fTitle
 
- Protected Attributes inherited from TObject
 kOnlyPrepStep
 

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
 

#include <KVAvailableRunsFile.h>

Inheritance diagram for KVAvailableRunsFile:
Inheritance graph
[legend]

Constructor & Destructor Documentation

◆ KVAvailableRunsFile() [1/3]

KVAvailableRunsFile::KVAvailableRunsFile ( )

Default ctor.

Definition at line 70 of file KVAvailableRunsFile.cpp.

◆ KVAvailableRunsFile() [2/3]

KVAvailableRunsFile::KVAvailableRunsFile ( const Char_t type)

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

Definition at line 52 of file KVAvailableRunsFile.cpp.

◆ KVAvailableRunsFile() [3/3]

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

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

Definition at line 33 of file KVAvailableRunsFile.cpp.

◆ ~ KVAvailableRunsFile()

virtual KVAvailableRunsFile::~ KVAvailableRunsFile ( )
virtual

Member Function Documentation

◆ Add()

void KVAvailableRunsFile::Add ( Int_t  run,
const Char_t filename 
)
virtual

Add to the file an entry corresponding to this run, assumed to be present in the repository with the given filename. write in temporary runlist file '[run number]|[date of modification]|[name of file]|KaliVeda version|username does runlist exist ?

Reimplemented in KVRemoteAvailableRunsFile.

Definition at line 1153 of file KVAvailableRunsFile.cpp.

◆ CheckAvailable()

Bool_t KVAvailableRunsFile::CheckAvailable ( Int_t  run)
virtual

Look for a given run number in the file If run not found, returns kFALSE If available runs file does not exist, Update() is called to create it. does runlist exist ?

Definition at line 749 of file KVAvailableRunsFile.cpp.

◆ CheckDirectoryForAvailableRunsFile()

Bool_t KVAvailableRunsFile::CheckDirectoryForAvailableRunsFile ( )
protected

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 207 of file KVAvailableRunsFile.cpp.

◆ CheckMultiRunfiles()

KVNumberList KVAvailableRunsFile::CheckMultiRunfiles ( )

Returns a list with all runs which occur more than once in the available runs file.

Definition at line 1269 of file KVAvailableRunsFile.cpp.

◆ CloseAvailableRunsFile()

void KVAvailableRunsFile::CloseAvailableRunsFile ( )
protectedvirtual

Must be called after each operation which calls OpenAvailableRunsFile Not only do we close the file stream, we remove the file lock put in place by OpenAvailableRunsFile in order to allow others to read/write the file.

Reimplemented in KVRemoteAvailableRunsFile.

Definition at line 1253 of file KVAvailableRunsFile.cpp.

◆ Count()

Int_t KVAvailableRunsFile::Count ( Int_t  run)
virtual

Count the number of times a given run number appears in the file If available runs file does not exist, Update() is called to create it. //does runlist exist ? if (!OpenAvailableRunsFile()) { Error("Count", "Error opening available runs file"); return 0; } //loop over lines in runlist file //look for line beginning with 'run|' TString line; Int_t occurs = 0; line.ReadLine(fRunlist); while (fRunlist.good()) { if (line.BeginsWith(Form("%d|", run))) { occurs++; } line.ReadLine(fRunlist); } CloseAvailableRunsFile(); return occurs;

Definition at line 801 of file KVAvailableRunsFile.cpp.

◆ ExtractDateFromFileName() [1/2]

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

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. get format string for current dataset

Definition at line 428 of file KVAvailableRunsFile.cpp.

◆ 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 450 of file KVAvailableRunsFile.cpp.

◆ FileExists()

Bool_t KVAvailableRunsFile::FileExists ( ) const
inline

Definition at line 78 of file KVAvailableRunsFile.h.

◆ GetDataSet()

const KVDataSet* KVAvailableRunsFile::GetDataSet ( ) const
inline

Dataset to which this file belongs

Definition at line 105 of file KVAvailableRunsFile.h.

◆ GetDataType()

const Char_t* KVAvailableRunsFile::GetDataType ( ) const
inline

Definition at line 83 of file KVAvailableRunsFile.h.

◆ GetFileName() [1/2]

const Char_t * KVAvailableRunsFile::GetFileName ( ) const
protected

Filename of text file containing information on available runs i.e. [repository].available_runs.[dataset subdir].[dattype subdir]

If [dataset subdir] contains "/" (i.e. if data is grouped into subdirectories) we replace them by "_"

Definition at line 105 of file KVAvailableRunsFile.cpp.

◆ GetFileName() [2/2]

const Char_t * KVAvailableRunsFile::GetFileName ( Int_t  run)

Read from available runs list the name of the file used for this run If run is not available, filename will be empty

Definition at line 837 of file KVAvailableRunsFile.cpp.

◆ GetFilePath()

const Char_t * KVAvailableRunsFile::GetFilePath ( ) const
protected

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 144 of file KVAvailableRunsFile.cpp.

◆ GetFullPathToAvailableRunsFile()

const Char_t * KVAvailableRunsFile::GetFullPathToAvailableRunsFile ( ) const
protected

Return the full path on the local machine to the text file used to store information on available runs

Definition at line 190 of file KVAvailableRunsFile.cpp.

◆ GetListOfAvailableSystems()

TList * KVAvailableRunsFile::GetListOfAvailableSystems ( const KVDBSystem systol = 0)
virtual

Create and fill a sorted list of available systems based on the runs in the available runs file. If systol!=0 then create and fill a list of available runs (KVRunFile objects) for the given system. USER MUST DELETE THE LIST AFTER USE. N.B. in case of list of KVRunFile, the list is the owner of the objects and will destroy them when it is destroyed

For each system in the list we set the number of available runs : this number can be retrieved with KVDBSystem::GetNumberRuns()

If available runs file does not exist, Update() is called to create it.

Definition at line 867 of file KVAvailableRunsFile.cpp.

◆ GetRunInfo()

Bool_t KVAvailableRunsFile::GetRunInfo ( Int_t  run,
TDatime modtime,
TString filename 
)
virtual

Look for a given run 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 642 of file KVAvailableRunsFile.cpp.

◆ GetRunInfos()

void KVAvailableRunsFile::GetRunInfos ( Int_t  run,
KVList dates,
KVList files 
)
virtual

Look for a given run number in the file, and read the file's modification date/time and filename These informations are stored in the two TList 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 continue until the end of the file, adding informations for every occurence of the run in the file. If available runs file does not exist, Update() is called to create it. does runlist exist ?

Definition at line 694 of file KVAvailableRunsFile.cpp.

◆ GetRunList()

KVNumberList KVAvailableRunsFile::GetRunList ( const KVDBSystem sys = 0)
virtual

Returns list of available run numbers for this data type. If 'sys' gives the address of a valid database reaction system, only runs corresponding to the system will be included.

Definition at line 1293 of file KVAvailableRunsFile.cpp.

◆ InfosNeedUpdate()

Bool_t KVAvailableRunsFile::InfosNeedUpdate ( Int_t  run,
const Char_t filename 
)
virtual

return kTRUE if the given file for this run 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 1510 of file KVAvailableRunsFile.cpp.

◆ IsFileOpen()

Bool_t KVAvailableRunsFile::IsFileOpen ( )
inlineprotected

Definition at line 66 of file KVAvailableRunsFile.h.

◆ IsRunFileName() [1/2]

Int_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]

If this format contains an index ("%I" field) then you must also define the multiplier used to generate effective run numbers: run = run_number*multiplier+index:

[dataset].DataSet.RunFileIndexMultiplier.[datatype]: [integer]

Definition at line 245 of file KVAvailableRunsFile.cpp.

◆ IsRunFileName() [2/2]

Int_t KVAvailableRunsFile::IsRunFileName ( const KVString fmt,
const Char_t filename,
Int_t  index_multiplier = 10,
const Char_t 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 for the file (may be an effective run number in case of files with an index; see below) If not, we return 0.

KNOWN CASES:

dataset example filename format ======= ================ ===================== INDRA_camp1 run127.raw runR.raw INDRA_camp2 run127.raw runR.raw INDRA_camp4 run127.raw runR.raw INDRA_camp5 run127.raw runR.raw INDRA_e416a Run356_06-Oct-05_12_44_12.dat RunR_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 runR

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. In this case the index_multiplier will be used to generate (and return) an effective run number, given by index_multiplier*run + index

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 313 of file KVAvailableRunsFile.cpp.

◆ OpenAvailableRunsFile()

Bool_t KVAvailableRunsFile::OpenAvailableRunsFile ( )
protectedvirtual

Initialise fRunlist so that it can be used to read the available runs file, opens the file containing the list of available runs for the current dataset. If the file does not exist, call Update() to create it.

Returns kFALSE in case of problems.

Reimplemented in KVRemoteAvailableRunsFile.

Definition at line 1220 of file KVAvailableRunsFile.cpp.

◆ ReadFile()

void KVAvailableRunsFile::ReadFile ( )
protected

Read all infos in available runs file and store as KVNameValueList objects in fAvailableRuns. For each run in the file we add a KVNameValueList with the following fields:

Name = run number Occurs = number of times run appears in file Filename[0] = name of first file for run Filename[1] = ... Filename[Occurs-1] = name of last file for run Date[0] = date & time of generation of first file etc. KVVersion[0] = name of KaliVeda version used to generate first file etc. (if known) Username[0] = name of user who generated first file etc. (if known) does runlist exist ?

Definition at line 1363 of file KVAvailableRunsFile.cpp.

◆ Remove()

void KVAvailableRunsFile::Remove ( Int_t  run,
const Char_t filename = "" 
)
virtual

Remove from the file the entry corresponding to this run By default, the first occurrence of the run number in the file will be removed. If "filename" is given, we look for a line corresponding to both the run number and the filename (important if run appears more than once !!!) ;-) does runlist exist ?

Reimplemented in KVRemoteAvailableRunsFile.

Definition at line 1070 of file KVAvailableRunsFile.cpp.

◆ RemoveDuplicateLines()

void KVAvailableRunsFile::RemoveDuplicateLines ( KVNumberList  lines_to_be_removed)

Remove from available runs file all lines whose numbers are in the list does runlist exist ?

Definition at line 1537 of file KVAvailableRunsFile.cpp.

◆ RunHasFileWithDateAndName()

KVNameValueList * KVAvailableRunsFile::RunHasFileWithDateAndName ( Int_t  run,
const Char_t filename,
TDatime  modtime,
Int_t OccNum 
)
protected

look in previously read infos (see ReadFile) to see if, for a given run, there is a file with the given name and modification date/time if so, returns the address of the KVNameValueList for the run & sets OccNum to the index number of the corresponding entry (in case of several files for the run) if not, returns NULL

Definition at line 1484 of file KVAvailableRunsFile.cpp.

◆ SetDataSet()

void KVAvailableRunsFile::SetDataSet ( const KVDataSet d)
inline

Set dataset to which this file belongs

Definition at line 111 of file KVAvailableRunsFile.h.

◆ Update()

void KVAvailableRunsFile::Update ( Bool_t  no_existing_file = kFALSE)
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 which corresponds to a run in the database gDataBase, we add an entry to the available runlist file: [run number]|[date of modification]|[name of file] For "old" runs we keep the existing informations (including KV version & username)

When no_existing_file=kTRUE we are making an available runs file for the first time. There is no pre-existing file.

Reimplemented in KVRemoteAvailableRunsFile, and DMSAvailableRunsFile.

Definition at line 500 of file KVAvailableRunsFile.cpp.

◆ UpdateInfos()

void KVAvailableRunsFile::UpdateInfos ( Int_t  run,
const Char_t filename,
const Char_t kvversion,
const Char_t username 
)
virtual

Call this mehod 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) does runlist exist ?

Definition at line 996 of file KVAvailableRunsFile.cpp.

Member Data Documentation

◆ date_read_from_filename

KVString KVAvailableRunsFile::date_read_from_filename = ""
staticprivate

Definition at line 48 of file KVAvailableRunsFile.h.

◆ fAvailableRuns

KVHashList* KVAvailableRunsFile::fAvailableRuns
protected

temporary list used to store infos when updating

Definition at line 55 of file KVAvailableRunsFile.h.

◆ fDataSet

const KVDataSet* KVAvailableRunsFile::fDataSet
protected

dataset to which this file belongs

Definition at line 54 of file KVAvailableRunsFile.h.

◆ fRunlist

std::ifstream KVAvailableRunsFile::fRunlist
protected

for reading runlist file

Definition at line 51 of file KVAvailableRunsFile.h.

◆ runlist_lock

KVLockfile KVAvailableRunsFile::runlist_lock
protected

for locking runlist file

Definition at line 52 of file KVAvailableRunsFile.h.


The documentation for this class was generated from the following files: