CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/CalibCalorimetry/EcalCorrelatedNoiseAnalysisAlgos/interface/TEcnaNArrayD.h

Go to the documentation of this file.
00001 
00003 //                                                                          //
00004 // TEcnaNArrayD  ROOT class for multidimensional arrays of Double_t         //
00005 //                                                                          //
00006 //                                                                          //
00008 #ifndef ROOT_TEcnaNArrayD
00009 #define ROOT_TEcnaNArrayD
00010 
00011 #include "TObject.h"
00012 
00013 class TEcnaNArrayD : public TObject {
00014 
00015 protected:
00016 
00017   Int_t     fNd;  //dimension of the array
00018   Int_t     fN1;  //number of elements in the 1st dimension
00019   Int_t     fN2;  //number of elements in the 2nd dimension
00020   Int_t     fN3;  //number of elements in the 3rf dimension
00021   Int_t     fN4;  //number of elements in the 4th dimension
00022   Int_t     fN5;  //number of elements in the 5th dimension
00023   Int_t     fN6;  //number of elements in the 6th dimension
00024   Int_t     fNL;  //length of the array = fN1*fN2*fN3*fN4*fN5*fN6 + 1
00025   Double_t *fA;   //[fNL] Array of Double_t of dimension fNd
00026 
00027   void         Init();
00028   inline Int_t OneDim(Int_t) const;
00029   inline Int_t OneDim(Int_t,Int_t) const;
00030   inline Int_t OneDim(Int_t,Int_t,Int_t) const;
00031   inline Int_t OneDim(Int_t,Int_t,Int_t,Int_t) const;
00032   inline Int_t OneDim(Int_t,Int_t,Int_t,Int_t,Int_t) const;
00033   inline Int_t OneDim(Int_t,Int_t,Int_t,Int_t,Int_t,Int_t) const;
00034 
00035 
00036 public:
00037 
00038   TEcnaNArrayD();
00039   TEcnaNArrayD(const TEcnaNArrayD&);
00040   TEcnaNArrayD(Int_t);
00041   TEcnaNArrayD(Int_t,Int_t);
00042   TEcnaNArrayD(Int_t,Int_t,Int_t);
00043   TEcnaNArrayD(Int_t,Int_t,Int_t,Int_t);
00044   TEcnaNArrayD(Int_t,Int_t,Int_t,Int_t,Int_t);
00045   TEcnaNArrayD(Int_t,Int_t,Int_t,Int_t,Int_t,Int_t);
00046   virtual ~TEcnaNArrayD();
00047   void     Clean();
00048   Double_t GetOverFlow() const { return fA[fNL-1]; }
00049   void     ReSet(Int_t);
00050   void     ReSet(Int_t,Int_t);
00051   void     ReSet(Int_t,Int_t,Int_t);
00052   void     ReSet(Int_t,Int_t,Int_t,Int_t);
00053   void     ReSet(Int_t,Int_t,Int_t,Int_t,Int_t);
00054   void     ReSet(Int_t,Int_t,Int_t,Int_t,Int_t,Int_t);
00055   const Double_t &operator()(Int_t i1) const;
00056   const Double_t &operator()(Int_t i1,Int_t i2) const;
00057   const Double_t &operator()(Int_t i1,Int_t i2,Int_t i3) const;
00058   const Double_t &operator()(Int_t i1,Int_t i2,Int_t i3,Int_t i4) const;
00059   const Double_t &operator()(Int_t i1,Int_t i2,Int_t i3,Int_t i4,Int_t i5) const;
00060   const Double_t &operator()(Int_t i1,Int_t i2,Int_t i3,Int_t i4,Int_t i5,Int_t i6) const;
00061   Double_t &operator()(Int_t i1);
00062   Double_t &operator()(Int_t i1,Int_t i2);
00063   Double_t &operator()(Int_t i1,Int_t i2,Int_t i3);
00064   Double_t &operator()(Int_t i1,Int_t i2,Int_t i3,Int_t i4);
00065   Double_t &operator()(Int_t i1,Int_t i2,Int_t i3,Int_t i4,Int_t i5);
00066   Double_t &operator()(Int_t i1,Int_t i2,Int_t i3,Int_t i4,Int_t i5,Int_t i6);
00067   ClassDef(TEcnaNArrayD,1) //ROOT class for multidimensional arrays of Double_t
00068 };
00069 #endif