CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/Alignment/MillePedeAlignmentAlgorithm/macros/GFUtils/GFHistArray.h

Go to the documentation of this file.
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