1 #ifndef AliOADBContainer_H
2 #define AliOADBContainer_H
3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
8 //-------------------------------------------------------------------------
9 // Offline Analysis Database Container and Service Class
10 // Author: Andreas Morsch, CERN
11 //-------------------------------------------------------------------------
16 #include <TObjArray.h>
21 class AliOADBContainer : public TNamed {
25 AliOADBContainer(const char* name);
26 virtual ~AliOADBContainer();
27 AliOADBContainer(const AliOADBContainer& cont);
28 AliOADBContainer& operator=(const AliOADBContainer& cont);
29 // Object adding and removal
30 void AppendObject(TObject* obj, Int_t lower, Int_t upper);
31 void UpdateObject(Int_t index, TObject* obj, Int_t lower, Int_t upper);
32 void RemoveObject(Int_t index);
33 void AddDefaultObject(TObject* obj);
34 void CleanDefaultList();
35 TList* GetDefaultList() const {return fDefaultList;}
37 void WriteToFile(const char* fname) const;
38 Int_t InitFromFile(const char* fname, const char* key);
40 Int_t GetNumberOfEntries() const {return fEntries;}
41 Int_t LowerLimit(Int_t idx) const {return fLowerLimits[idx];}
42 Int_t UpperLimit(Int_t idx) const {return fUpperLimits[idx];}
43 TObject* GetObject(Int_t run, const char* def = "") const;
44 TObject* GetObjectByIndex(Int_t run) const;
45 TObject* GetDefaultObject(const char* key)
46 {return(fDefaultList->FindObject(key));}
50 virtual Bool_t IsFolder() const { return kTRUE; }
51 void Browse(TBrowser *b);
52 Int_t GetIndexForRun(Int_t run) const;
54 static const char* GetOADBPath();
56 Int_t HasOverlap(Int_t lower, Int_t upper) const;
58 TObjArray* fArray; // Array with objects corresponding to run ranges
59 TList* fDefaultList; // List with default arrays
60 TArrayI fLowerLimits; // lower limit of run range
61 TArrayI fUpperLimits; // upper limit of run range
62 Int_t fEntries; // Number of entries
63 // TString fRelPath; // Relative path to object
65 ClassDef(AliOADBContainer, 1);