* provided "as is" without express or implied warranty. *
**************************************************************************/
-/*
-$Log$
-Revision 1.7 2000/11/01 14:53:20 cblume
-Merge with TRD-develop
-
-Revision 1.1.4.3 2000/10/06 16:49:46 cblume
-Made Getters const
-
-Revision 1.1.4.2 2000/10/04 16:34:58 cblume
-Replace include files by forward declarations
-
-Revision 1.6 2000/06/09 11:10:07 cblume
-Compiler warnings and coding conventions, next round
-
-Revision 1.5 2000/06/08 18:32:58 cblume
-Make code compliant to coding conventions
-
-Revision 1.4 2000/06/07 16:27:01 cblume
-Try to remove compiler warnings on Sun and HP
-
-Revision 1.3 2000/05/18 07:56:44 cblume
-Added #include <stdlib.h>
-
-Revision 1.2 2000/05/08 16:17:27 cblume
-Merge TRD-develop
-
-Revision 1.1.4.1 2000/05/08 15:13:59 cblume
-Introduce boundary checking
-
-Revision 1.1 2000/02/28 18:59:19 cblume
-Add new TRD classes
-
-*/
+/* $Id$ */
///////////////////////////////////////////////////////////////////////////////
// //
#include "TClass.h"
#include "TError.h"
+
+#include "AliLog.h"
+
#include "AliTRDsegmentID.h"
#include "AliTRDarrayI.h"
#include "AliTRDdataArray.h"
//_____________________________________________________________________________
AliTRDdataArray::AliTRDdataArray()
+ :fNrow(0)
+ ,fNcol(0)
+ ,fNtime(0)
+ ,fNdim1(-1)
+ ,fNdim2(-1)
+ ,fIndex(0)
+ ,fBufType(-1)
+ ,fNelems(-1)
+ ,fCurrentIdx1(0)
+ ,fCurrentIdx2(0)
+ ,fCurrentIndex(0)
{
//
// Default constructor
//
- fIndex = 0;
-
- fNdim1 = -1;
- fNdim2 = -1;
- fNelems = -1;
-
- fBufType = -1;
-
- fNrow = 0;
- fNcol = 0;
- fNtime = 0;
-
}
//_____________________________________________________________________________
AliTRDdataArray::AliTRDdataArray(Int_t nrow, Int_t ncol, Int_t ntime)
+ :fNrow(0)
+ ,fNcol(0)
+ ,fNtime(0)
+ ,fNdim1(-1)
+ ,fNdim2(-1)
+ ,fIndex(0)
+ ,fBufType(-1)
+ ,fNelems(-1)
+ ,fCurrentIdx1(0)
+ ,fCurrentIdx2(0)
+ ,fCurrentIndex(0)
{
//
// Creates a AliTRDdataArray with the dimensions <nrow>, <ncol>, and <ntime>.
// The row- and column dimensions are compressible.
//
- fIndex = 0;
-
Allocate(nrow,ncol,ntime);
}
//_____________________________________________________________________________
AliTRDdataArray::AliTRDdataArray(const AliTRDdataArray &d)
+ :AliTRDsegmentID(d)
+ ,fNrow(d.fNrow)
+ ,fNcol(d.fNcol)
+ ,fNtime(d.fNtime)
+ ,fNdim1(d.fNdim1)
+ ,fNdim2(d.fNdim2)
+ ,fIndex(d.fIndex)
+ ,fBufType(d.fBufType)
+ ,fNelems(d.fNelems)
+ ,fCurrentIdx1(0)
+ ,fCurrentIdx2(0)
+ ,fCurrentIndex(0)
{
//
// AliTRDdataArray copy constructor
//
- ((AliTRDdataArray &) d).Copy(*this);
-
}
//_____________________________________________________________________________
// AliTRDdataArray destructor
//
- if (fIndex) delete fIndex;
+ if (fIndex) {
+ delete fIndex;
+ fIndex = 0;
+ }
}
}
//_____________________________________________________________________________
-void AliTRDdataArray::Copy(TObject &d)
+void AliTRDdataArray::Copy(TObject &d) const
{
//
// Copy function
}
//_____________________________________________________________________________
-void AliTRDdataArray::Allocate(Int_t nrow, Int_t ncol,Int_t ntime)
+void AliTRDdataArray::Allocate(Int_t nrow, Int_t ncol, Int_t ntime)
{
//
// Allocates memory for a AliTRDdataArray with the dimensions
//
if (nrow <= 0) {
- Error("AliTRDdataArray::Allocate","The number of rows has to be positive");
+ AliError("The number of rows has to be positive");
exit(1);
}
if (ncol <= 0) {
- Error("AliTRDdataArray::Allocate","The number of columns has to be positive");
+ AliError("The number of columns has to be positive");
exit(1);
}
if (ntime <= 0) {
- Error("AliTRDdataArray::Allocate","The number of timebins has to be positive");
+ AliError("The number of timebins has to be positive");
exit(1);
}
fNdim1 = nrow * ncol;
fNdim2 = ntime;
fNelems = fNdim1 * fNdim2;
-
+
fNrow = nrow;
fNcol = ncol;
fNtime = ntime;
}
//_____________________________________________________________________________
-Bool_t AliTRDdataArray::CheckBounds(const char *where, Int_t idx1, Int_t idx2)
+Bool_t AliTRDdataArray::CheckBounds(Int_t idx1, Int_t idx2)
{
//
// Does the boundary checking
//
- if ((idx2 >= fNdim2) || (idx2 < 0))
- return OutOfBoundsError(where,idx1,idx2);
+ if ((idx2 >= fNdim2) ||
+ (idx2 < 0)) {
+ return OutOfBoundsError(idx1,idx2);
+ }
Int_t index = (*fIndex).At(idx2) + idx1;
- if ((index < 0) || (index > fNelems))
- return OutOfBoundsError(where,idx1,idx2);
+ if ((index < 0) ||
+ (index > fNelems)) {
+ return OutOfBoundsError(idx1,idx2);
+ }
return kTRUE;
}
//_____________________________________________________________________________
-Bool_t AliTRDdataArray::OutOfBoundsError(const char *where, Int_t idx1, Int_t idx2)
+Bool_t AliTRDdataArray::OutOfBoundsError(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);
+ AliError(Form("idx1 %d idx2 %d out of bounds (size: %d x %d, this: 0x%08x)"
+ ,idx1,idx2,fNdim1,fNdim2,this));
return kFALSE;
// Reset the array (old content gets deleted)
//
- if (fIndex) delete fIndex;
+ if (fIndex) {
+ delete fIndex;
+ }
+
fIndex = new AliTRDarrayI();
fIndex->Set(0);
//
if (row >= fNrow) {
- TObject::Error("GetIdx1"
- ,"row %d out of bounds (size: %d, this: 0x%08x)"
- ,row,fNrow,this);
+ AliError(Form("row %d out of bounds (size: %d, this: 0x%08x)",row,fNrow,this));
return -1;
}
if (col >= fNcol) {
- TObject::Error("GetIdx1"
- ,"col %d out of bounds (size: %d, this: 0x%08x)"
- ,col,fNcol,this);
+ AliError(Form("col %d out of bounds (size: %d, this: 0x%08x)",col,fNcol,this));
return -1;
}
//
if (time > fNtime) {
- TObject::Error("GetIdx1"
- ,"time %d out of bounds (size: %d, this: 0x%08x)"
- ,time,fNtime,this);
+ AliError(Form("time %d out of bounds (size: %d, this: 0x%08x)",time,fNtime,this));
return -1;
}