]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - TRD/AliTRDdataArray.h
Dimitri just makes it work
[u/mrichter/AliRoot.git] / TRD / AliTRDdataArray.h
... / ...
CommitLineData
1#ifndef ALITRDDATAARRAY_H
2#define ALITRDDATAARRAY_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7/* $Id$ */
8
9#include "AliTRDarrayI.h"
10#include "AliTRDarrayF.h"
11#include "AliTRDsegmentID.h"
12
13/////////////////////////////////////////////////////////////
14// General container for data from TRD detector segments //
15// Adapted from AliDigits, origin M.Ivanov //
16/////////////////////////////////////////////////////////////
17
18class AliTRDdataArray : public AliTRDsegmentID {
19
20 public:
21
22 AliTRDdataArray();
23 AliTRDdataArray(Int_t nrow, Int_t ncol,Int_t ntime);
24 AliTRDdataArray(const AliTRDdataArray &d);
25 virtual ~AliTRDdataArray();
26 AliTRDdataArray &operator=(const AliTRDdataArray &d);
27
28 virtual void Copy(TObject &d);
29 virtual void Allocate(Int_t nrow, Int_t ncol,Int_t ntime);
30 virtual void Reset();
31
32 virtual Int_t GetNRow() { return fNrow; };
33 virtual Int_t GetNCol() { return fNcol; };
34 virtual Int_t GetNtime() { return fNtime; };
35
36 Int_t GetIndex(Int_t row, Int_t col, Int_t time);
37
38 protected:
39
40 Int_t GetIdx1(Int_t row, Int_t col);
41 inline Bool_t CheckBounds(const char *where, Int_t idx1, Int_t idx2);
42 inline Bool_t OutOfBoundsError(const char *where, Int_t idx1, Int_t idx2);
43
44 Int_t fNrow; // Number of rows of the detector segement
45 Int_t fNcol; // Number of columns of the detector segment
46 Int_t fNtime; // Number of timebins of the detector segment
47
48 Int_t fNdim1; // First dimension of the array (row * column)
49 Int_t fNdim2; // Second dimension of the array (time, not compressed)
50
51 AliTRDarrayI *fIndex; // Index position of column
52 Int_t fBufType; // Type of the buffer - defines the compression algorithm
53 Int_t fNelems; // Total number of elements
54 Int_t fCurrentIdx1; // !Current index 1
55 Int_t fCurrentIdx2; // !Current index 2
56 Int_t fCurrentIndex; // !Current index in field
57
58 ClassDef(AliTRDdataArray,1) // Data container for one TRD detector segment
59
60};
61
62#endif
63