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(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(char* fname) const;
38 Int_t InitFromFile(char* fname, 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, char* def = "") const;
44 TObject* GetObjectByIndex(Int_t run) const;
45 TObject* GetDefaultObject(char* key)
46 {return(fDefaultList->FindObject(key));}
50 virtual Bool_t IsFolder() const { return kTRUE; }
51 void Browse(TBrowser *b);
54 Int_t HasOverlap(Int_t lower, Int_t upper) const;
55 Int_t GetIndexForRun(Int_t run) const;
57 TObjArray* fArray; // Array with objects corresponding to run ranges
58 TList* fDefaultList; // List with default arrays
59 TArrayI fLowerLimits; // lower limit of run range
60 TArrayI fUpperLimits; // upper limit of run range
61 Int_t fEntries; // Number of entries
62 // TString fRelPath; // Relative path to object
64 ClassDef(AliOADBContainer, 1);