]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/AliRunDataStorage.h
New calibration classes (A.Colla)
[u/mrichter/AliRoot.git] / STEER / AliRunDataStorage.h
CommitLineData
2c8628dd 1#ifndef ALIRUNDATASTORAGE_H
2#define ALIRUNDATASTORAGE_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id$ */
7
8///
9/// base class for data base access classes
10///
11
12#include <TObject.h>
13#include <TObjArray.h>
14
15class TFile;
f05209ee 16class AliSelectionMetaData;
17class AliObjectMetaData;
2c8628dd 18class AliRunData;
19
20
21class AliRunDataStorage: public TObject {
22public:
23 virtual ~AliRunDataStorage();
24
f05209ee 25 const TObject* Get(const char* name, Int_t runNumber); // Gets an object from the database
2c8628dd 26
27 Bool_t Put(const TObject* object,
f05209ee 28 const AliObjectMetaData& objMetaData); // Put an object into the database
2c8628dd 29
f05209ee 30 void Select(const AliSelectionMetaData& selMetaData); // Add a selection criterion
2c8628dd 31
f05209ee 32 Bool_t RecordToFile(const char* fileName = "DB.root"); // prepares to record the retrieved entries to a local file
33
34 const AliObjectMetaData& GetObjectMetaData(const char* name); // Gets the ObjectMetaData of the retrieved entry (name=entry's name)
35
36// virtual void TagForProduction(const AliSelectionMetaData& selMetaData, Uint_t prodVers);
2c8628dd 37
f05209ee 38 static AliRunDataStorage* Instance(); // Instance of the current AliRunDataStorage object (AliRunDataFile, AliRunDataOrganizedFile etc...)
2c8628dd 39
40protected:
41 AliRunDataStorage();
42
f05209ee 43 virtual AliRunData* GetEntry(AliSelectionMetaData& selMetaData, Int_t runNumber) = 0; // virtual, see the correspondent method of the derived classes
2c8628dd 44
f05209ee 45 virtual Bool_t PutEntry(AliRunData* entry); // virtual, see the correspondent method of the derived classes
2c8628dd 46
47 AliRunData* GetCurrentEntry(const char* name) const
48 {return (AliRunData*) fEntries.FindObject(name);}
49
50private:
51 AliRunDataStorage(const AliRunDataStorage& db);
52 AliRunDataStorage& operator = (const AliRunDataStorage& db);
53
54 TObjArray fSelection; //! meta data selection
55
56 TObjArray fEntries; //! array of current AliRunData objects
57 TFile* fRecordFile; //! file for recorded entries
58
59 static AliRunDataStorage* fgInstance; //! pointer to the DB instance
60
61 ClassDef(AliRunDataStorage, 0) // base class for data base access classes
62};
63
64#endif