]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDdataArray.h
Updated error definitions.
[u/mrichter/AliRoot.git] / TRD / AliTRDdataArray.h
index 81069cec371e347dc04c6de11a0bfe7b006b5707..5d30bbf23a2f7bffacf2118f463ad8c7f38f8b79 100644 (file)
@@ -6,8 +6,6 @@
 
 /* $Id$ */
  
-#include   "AliTRDarrayI.h"
-#include   "AliTRDarrayF.h"
 #include   "AliTRDsegmentID.h"
 
 /////////////////////////////////////////////////////////////
 //  Adapted from AliDigits, origin M.Ivanov                //
 /////////////////////////////////////////////////////////////
 
+class AliTRDarrayI;
+
 class AliTRDdataArray : public AliTRDsegmentID {
 
  public:
 
   AliTRDdataArray();
   AliTRDdataArray(Int_t nrow, Int_t ncol,Int_t ntime);
-  AliTRDdataArray(AliTRDdataArray &d);
+  AliTRDdataArray(const AliTRDdataArray &d);
   virtual ~AliTRDdataArray();
+  AliTRDdataArray &operator=(const AliTRDdataArray &d);
 
-  virtual void   Copy(AliTRDdataArray &d);
+  virtual void   Copy(TObject &d) const;
   virtual void   Allocate(Int_t nrow, Int_t ncol,Int_t ntime);
   virtual void   Reset();
 
-  virtual Int_t  GetNRow()                     { return fNrow;       };
-  virtual Int_t  GetNCol()                     { return fNcol;       };
-  virtual Int_t  GetNtime()                    { return fNtime;      };
+  virtual Int_t  GetNrow() const               { return fNrow;          };
+  virtual Int_t  GetNcol() const               { return fNcol;          };
+  virtual Int_t  GetNtime() const              { return fNtime;         };
+          Int_t  GetIndex(Int_t row, Int_t col, Int_t time) const;
+          Int_t  GetIndexUnchecked(Int_t row, Int_t col, Int_t time) const
+                                              { return time * fNrow*fNcol 
+                                                      + GetIdx1Unchecked(row,col); };
+          Int_t  GetBufType() const            { return fBufType;       };
+  virtual Int_t  GetNelems() const             { return fNelems;        };
 
-          Int_t  GetIndex(Int_t row, Int_t col, Int_t time);
-  inline  AliTRDdataArray &operator=(AliTRDdataArray &d);
+  virtual Bool_t HasData() const               { return fNtime ? 1 : 0; };
 
  protected:
 
-          Int_t  GetIdx1(Int_t row, Int_t col);
-  inline  Bool_t CheckBounds(const char *where, Int_t idx1, Int_t idx2);
-  inline  Bool_t OutOfBoundsError(const char *where, Int_t idx1, Int_t idx2);
+          Int_t  GetIdx1(Int_t row, Int_t col) const;
+          Int_t  GetIdx1Unchecked(Int_t row, Int_t col) const
+                                               { return row + col * fNrow; };
+  inline  Bool_t CheckBounds(Int_t idx1, Int_t idx2);
+  inline  Bool_t OutOfBoundsError(Int_t idx1, Int_t idx2);
  
   Int_t          fNrow;            // Number of rows of the detector segement
   Int_t          fNcol;            // Number of columns of the detector segment
@@ -59,49 +67,5 @@ class AliTRDdataArray : public AliTRDsegmentID {
 
 };
  
-//_____________________________________________________________________________
-Bool_t AliTRDdataArray::CheckBounds(const char *where, Int_t idx1, Int_t idx2) 
-{
-  //
-  // Does the boundary checking
-  //
-
-  if ((idx2 >= fNdim2) || (idx2 < 0)) 
-    return OutOfBoundsError(where,idx1,idx2);
-
-  Int_t index = (*fIndex).At(idx2) + idx1;
-  if ((index < 0) || (index > fNelems)) 
-    return OutOfBoundsError(where,idx1,idx2);
-
-  return kTRUE;  
-
-}
-
-//_____________________________________________________________________________
-Bool_t AliTRDdataArray::OutOfBoundsError(const char *where, Int_t idx1, Int_t idx2) 
-{
-  //
-  // Generate an out-of-bounds error. Always returns false.
-  //
-
-  TObject::Error(where, "idx1 %d  idx2 %d out of bounds (size: %d x %d, this: 0x%08x)"
-          ,idx1,idx2,fNdim1,fNdim2,this);
-
-  return kFALSE;
-
-}
-
-//_____________________________________________________________________________
-AliTRDdataArray &AliTRDdataArray::operator=(AliTRDdataArray &d)
-{
-  //
-  // Assignment operator
-  //
-
-  if (this != &d) d.Copy(*this);
-  return *this;
-
-}
-
 #endif