00001 #ifndef ROOT_TEcnaNArrayD
00002 #define ROOT_TEcnaNArrayD
00003
00004 #include "TObject.h"
00005 #include "CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/interface/TEcnaObject.h"
00006
00021
00022 class TEcnaNArrayD : public TObject {
00023
00024 protected:
00025
00026 Int_t fNd;
00027 Int_t fN1;
00028 Int_t fN2;
00029 Int_t fN3;
00030 Int_t fN4;
00031 Int_t fN5;
00032 Int_t fN6;
00033 Int_t fNL;
00034 Double_t *fA;
00035
00036 void Init();
00037 inline Int_t OneDim(Int_t) const;
00038 inline Int_t OneDim(Int_t,Int_t) const;
00039 inline Int_t OneDim(Int_t,Int_t,Int_t) const;
00040 inline Int_t OneDim(Int_t,Int_t,Int_t,Int_t) const;
00041 inline Int_t OneDim(Int_t,Int_t,Int_t,Int_t,Int_t) const;
00042 inline Int_t OneDim(Int_t,Int_t,Int_t,Int_t,Int_t,Int_t) const;
00043
00044 public:
00045
00046 TEcnaNArrayD();
00047 TEcnaNArrayD(const TEcnaNArrayD&);
00048
00049 TEcnaNArrayD(TEcnaObject*, Int_t);
00050 TEcnaNArrayD(TEcnaObject*, Int_t,Int_t);
00051 TEcnaNArrayD(TEcnaObject*, Int_t,Int_t,Int_t);
00052 TEcnaNArrayD(TEcnaObject*, Int_t,Int_t,Int_t,Int_t);
00053 TEcnaNArrayD(TEcnaObject*, Int_t,Int_t,Int_t,Int_t,Int_t);
00054 TEcnaNArrayD(TEcnaObject*, Int_t,Int_t,Int_t,Int_t,Int_t,Int_t);
00055 virtual ~TEcnaNArrayD();
00056 void Clean();
00057 Double_t GetOverFlow() const { return fA[fNL-1]; }
00058 void ReSet(Int_t);
00059 void ReSet(Int_t,Int_t);
00060 void ReSet(Int_t,Int_t,Int_t);
00061 void ReSet(Int_t,Int_t,Int_t,Int_t);
00062 void ReSet(Int_t,Int_t,Int_t,Int_t,Int_t);
00063 void ReSet(Int_t,Int_t,Int_t,Int_t,Int_t,Int_t);
00064 const Double_t &operator()(Int_t i1) const;
00065 const Double_t &operator()(Int_t i1,Int_t i2) const;
00066 const Double_t &operator()(Int_t i1,Int_t i2,Int_t i3) const;
00067 const Double_t &operator()(Int_t i1,Int_t i2,Int_t i3,Int_t i4) const;
00068 const Double_t &operator()(Int_t i1,Int_t i2,Int_t i3,Int_t i4,Int_t i5) const;
00069 const Double_t &operator()(Int_t i1,Int_t i2,Int_t i3,Int_t i4,Int_t i5,Int_t i6) const;
00070 Double_t &operator()(Int_t i1);
00071 Double_t &operator()(Int_t i1,Int_t i2);
00072 Double_t &operator()(Int_t i1,Int_t i2,Int_t i3);
00073 Double_t &operator()(Int_t i1,Int_t i2,Int_t i3,Int_t i4);
00074 Double_t &operator()(Int_t i1,Int_t i2,Int_t i3,Int_t i4,Int_t i5);
00075 Double_t &operator()(Int_t i1,Int_t i2,Int_t i3,Int_t i4,Int_t i5,Int_t i6);
00076 ClassDef(TEcnaNArrayD,1)
00077 };
00078 #endif