![]() |
![]() |
00001 #ifndef __GFHISTARRAY_H 00002 #define __GFHISTARRAY_H 00003 00004 // ROOT includes 00005 #include <TObjArray.h> 00006 #include <TH1.h> 00007 00008 class TObject; 00009 00010 class GFHistArray : public TObjArray{ 00011 // FIXME: friends needed? 00012 friend class TObjArrayIter; 00013 friend class TClonesArray; 00014 00015 public: 00016 explicit GFHistArray(Int_t s = TCollection::kInitCapacity, Int_t lowerBound = 0); 00017 virtual ~GFHistArray(); 00018 00019 // TObject **GetObjectRef(TObject *obj) const; 00020 // void Add(TObject *obj) { AddLast(hist); } 00021 virtual void AddFirst(TObject *obj); 00022 virtual void AddLast(TObject *obj); 00023 virtual void AddAll(const TCollection *collection); 00024 virtual void AddAll(const GFHistArray *hists); 00025 virtual void AddAt(TObject *obj, Int_t idx); 00026 virtual void AddAtAndExpand(TObject *obj, Int_t idx); 00027 virtual Int_t AddAtFree(TObject *obj); 00028 virtual void AddAfter(const TObject *after, TObject *obj); 00029 virtual void AddBefore(const TObject *before, TObject *obj); 00030 virtual TH1 *RemoveAt(Int_t idx); 00031 virtual TH1 *Remove(TObject *obj); 00032 00033 TH1 *At(Int_t idx) const; 00034 TH1 *UncheckedAt(Int_t i) const; 00035 TH1 *Before(const TObject *obj) const; 00036 TH1 *After(const TObject *obj) const; 00037 TH1 *First() const; 00038 TH1 *Last() const; 00039 virtual TH1* operator[](Int_t i) const; 00040 // virtual TH1*&operator[](Int_t i); ??? warum nicht? 00041 00042 protected: 00043 Bool_t CheckObjOK (TObject * histObj); 00044 private: 00045 virtual TObject*& operator[](Int_t i); // invalidate const version, since cannot be overwritten 00046 00047 ClassDef(GFHistArray,1) // type safe array of histograms 00048 }; 00049 #endif // __GFHISTARRAY_H