5ec8e1013bda8b573c4b6dd9b0f5354d5fbb5967
[u/mrichter/AliRoot.git] / STEER / AliMetaData.h
1 #ifndef ALIMETADATA_H
2 #define ALIMETADATA_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 /// meta data of run dependent objects
10 ///
11
12 #include <TObject.h>
13 #include <TString.h>
14
15
16 class AliMetaData: public TObject {
17 public:
18   AliMetaData();
19   AliMetaData(const char* name, 
20               Int_t firstRun = -1, Int_t lastRun = -1, Int_t version = -1);
21   virtual ~AliMetaData() {};
22
23   AliMetaData(const AliMetaData& entry);
24   AliMetaData& operator = (const AliMetaData& entry);
25
26   void                 SetName(const char* name) {fName = name;}
27   void                 SetRunRange(Int_t firstRun = -1, Int_t lastRun = 1) 
28     {fFirstRun = firstRun; fLastRun = lastRun;}
29   void                 SetVersion(Int_t version = -1) {fVersion = version;}
30
31   virtual const char*  GetName() const;
32   Int_t                GetFirstRun() const {return fFirstRun;}
33   Int_t                GetLastRun() const {return fLastRun;}
34   Int_t                GetVersion() const {return fVersion;}
35
36   Bool_t               IsValid(Int_t runNumber, 
37                                AliMetaData* metaData = NULL) const;
38   virtual Int_t        Compare(const TObject* object) const;
39   Bool_t               Matches(const char* name, Int_t runNumber) const;
40
41 private:
42   TString              fName;           // name of the entry
43   Int_t                fFirstRun;       // index of first valid run
44   Int_t                fLastRun;        // index of last valid run
45   Int_t                fVersion;        // version of the entry
46
47   ClassDef(AliMetaData, 1)   // container for a data base entry object
48 };
49
50 extern Bool_t operator == (const AliMetaData& entry1, 
51                            const AliMetaData& entry2);
52
53 #endif