X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=TRD%2FAliTRDdataArrayF.h;h=e8f34f71bd2a9993ab425c9291bcc110e9d38b88;hp=93740e7090ce985a174f926c8cab14b2b713fcef;hb=ff821236e693b25cfd76e662e194862668d06912;hpb=8230f242a54d81b01f5a6fe9c900cee395cdaf57;ds=inline diff --git a/TRD/AliTRDdataArrayF.h b/TRD/AliTRDdataArrayF.h index 93740e7090c..e8f34f71bd2 100644 --- a/TRD/AliTRDdataArrayF.h +++ b/TRD/AliTRDdataArrayF.h @@ -5,8 +5,10 @@ * See cxx source for full Copyright notice */ /* $Id: AliTRDdataArrayF.h,v */ + +#include -#include "AliTRDdataArray.h" +#include "AliTRDdataArray.h" ///////////////////////////////////////////////////////////// // // @@ -16,17 +18,20 @@ // // ///////////////////////////////////////////////////////////// +class AliTRDarrayF; + class AliTRDdataArrayF : public AliTRDdataArray { public: AliTRDdataArrayF(); AliTRDdataArrayF(Int_t nrow, Int_t ncol,Int_t ntime); - AliTRDdataArrayF(AliTRDdataArrayF &a); + 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(AliTRDdataArrayF &a); + virtual void Copy(TObject &a); virtual void Compress(Int_t bufferType, Float_t threshold); virtual void Compress(Int_t bufferType); virtual void Expand(); @@ -34,24 +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 GetOverThreshold(Float_t threshold); - inline AliTRDdataArrayF &operator=(AliTRDdataArrayF &a); - 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(); @@ -68,70 +77,5 @@ class AliTRDdataArrayF : public AliTRDdataArray { }; -//____________________________________________________________________________ -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); - -} - -//_____________________________________________________________________________ -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); - } - } - } - -} - -//_____________________________________________________________________________ -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; - -} - -//_____________________________________________________________________________ -AliTRDdataArrayF &AliTRDdataArrayF::operator=(AliTRDdataArrayF &a) -{ - // - // Assignment operator - // - - if (this != &a) a.Copy(*this); - return *this; - -} - #endif