]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDdataArrayF.h
QinvResVsQinv, Phi and Theta pair open angle resolutions functions added
[u/mrichter/AliRoot.git] / TRD / AliTRDdataArrayF.h
index a2a4f13044ea2a56ec12908571bc36ad4be11236..6ccbabc1afc2c747f9eca711e31a7fd2ede1e806 100644 (file)
@@ -1,12 +1,14 @@
-#ifndef TRDdataArrayF_H
-#define TRDdataArrayF_H
+#ifndef ALITRDDATAARRAYF_H
+#define ALITRDDATAARRAYF_H
 
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
 /* $Id: AliTRDdataArrayF.h,v */
+
+#include <TMath.h>
  
-#include   "AliTRDdataArray.h"
+#include "AliTRDdataArray.h"
 
 /////////////////////////////////////////////////////////////
 //                                                         //
 //                                                         //
 /////////////////////////////////////////////////////////////
 
+class AliTRDarrayF;
+
 class AliTRDdataArrayF : public AliTRDdataArray {
 
  public:
 
   AliTRDdataArrayF();
   AliTRDdataArrayF(Int_t nrow, Int_t ncol,Int_t ntime);
-  ~AliTRDdataArrayF();
+  AliTRDdataArrayF(const AliTRDdataArrayF &a);
+  virtual ~AliTRDdataArrayF();
+  AliTRDdataArrayF &operator=(const AliTRDdataArrayF &a);
 
   virtual void    Allocate(Int_t nrow, Int_t ncol,Int_t ntime);
+  virtual void    Copy(TObject &a);
   virtual void    Compress(Int_t bufferType, Float_t threshold);
   virtual void    Compress(Int_t bufferType); 
   virtual void    Expand();
@@ -32,22 +39,28 @@ class AliTRDdataArrayF : public AliTRDdataArray {
   virtual Bool_t  Next(); 
   virtual void    Reset();
 
-  inline  void    SetData(Int_t row, Int_t col, Int_t time, Float_t value);
+          void    SetData(Int_t row, Int_t col, Int_t time, Float_t value);
+          void    SetDataUnchecked(Int_t row, Int_t col, Int_t time, Float_t value)
+                                  { SetDataFast(GetIdx1Unchecked(row,col),time,value); };
+
   virtual void    SetThreshold(Float_t threshold) { fThreshold = threshold; };
 
-  virtual Float_t GetData(Int_t row, Int_t col, Int_t time);
-  virtual Float_t GetThreshold()                  { return fThreshold;  };
+  virtual Float_t GetData(Int_t row, Int_t col, Int_t time) const;
+          Float_t GetDataUnchecked(Int_t row, Int_t col, Int_t time) const
+                                  { return GetDataFast(GetIdx1Unchecked(row,col),time); };
+                                                  
+  virtual Float_t GetThreshold() const            { return fThreshold;  };
 
-  virtual Int_t   GetSize();
-  virtual Int_t   GetDataSize(); 
+  virtual Int_t   GetSize() const;
+  virtual Int_t   GetDataSize() const
   virtual Int_t   GetOverThreshold(Float_t threshold);  
 
  protected:
 
-  inline  void    SetDataFast(Int_t idx1, Int_t idx2, Float_t value); 
-  inline  Float_t GetDataFast(Int_t idx1, Int_t idx2); 
+  void    SetDataFast(Int_t idx1, Int_t idx2, Float_t v);  
+  Float_t GetDataFast(Int_t idx1, Int_t idx2) const;
 
-  Float_t         GetData1(Int_t idx1, Int_t idx2); 
+  Float_t         GetData1(Int_t idx1, Int_t idx2) const
   void            Expand1(); 
   void            Compress1(); 
   void            Expand2();
@@ -64,60 +77,5 @@ class AliTRDdataArrayF : public AliTRDdataArray {
 
 };
  
-
-//_____________________________________________________________________________
-inline Float_t AliTRDdataArrayF::GetDataFast(Int_t idx1, Int_t idx2)
-{
-  //
-  // Returns the value at a given position in the array
-  //
-
-  return fElements->At(fIndex->At(idx2) + idx1); 
-
-}
-
-//_____________________________________________________________________________
-inline void AliTRDdataArrayF::SetData(Int_t row, Int_t col, Int_t time
-                                                          , Float_t value)
-{
-  //
-  // Sets the data value at a given position of the array
-  // Includes boundary checking
-  //
-
-  if ((row >= 0) && (col >= 0) && (time >= 0)) {
-    Int_t idx1 = GetIdx1(row,col);
-    if ((idx1 >= 0) && (time < fNdim2)) {
-      SetDataFast(idx1,time,value);
-    }
-    else {
-      if (idx1 >= 0) {
-        TObject::Error("SetData"
-                      ,"time %d out of bounds (size: %d, this: 0x%08x)"
-                      ,time,fNdim2,this);
-      }
-    }
-  }
-
-}
-
-//_____________________________________________________________________________
-inline void  AliTRDdataArrayF::SetDataFast(Int_t idx1, Int_t idx2, Float_t value)
-{
-  //
-  // Set the value at a given position in the array
-  //
-
-  if ((idx1 < 0) || (idx1 >= fNdim1) || 
-      (idx2 < 0) || (idx2 >= fNdim2)) { 
-    TObject::Error("SetDataFast"
-                  ,"idx1 %d  idx2 %d out of bounds (size: %d x %d, this: 0x%08x)"
-                  ,idx1,idx2,fNdim1,fNdim2,this);
-  }
-
-  (*fElements)[fIndex->fArray[idx2] + idx1] = value; 
-
-}
-
 #endif