]>
Commit | Line | Data |
---|---|---|
84bb7c66 | 1 | #ifndef ALIOBJMATRIX_H |
2 | #define ALIOBJMATRIX_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | // $Id$ | |
7 | ||
ea0b5b7f | 8 | #include "TNamed.h" |
84bb7c66 | 9 | #include "TObjArray.h" |
e604d3a8 | 10 | #include "TArrayI.h" |
84bb7c66 | 11 | |
ea0b5b7f | 12 | class AliObjMatrix : public TNamed |
84bb7c66 | 13 | { |
14 | public: | |
261c0caf | 15 | AliObjMatrix(); // Default constructor |
16 | virtual ~AliObjMatrix(); // Default destructor | |
34c199de | 17 | AliObjMatrix(const AliObjMatrix& m); // Copy constructor |
18 | virtual TObject* Clone(const char* name="") const; // Make a deep copy and provide its pointer | |
261c0caf | 19 | virtual void Reset(); // Reset the whole matrix structure |
20 | virtual void SetOwner(Int_t own=1); // Set the owner flag for the stored objects | |
21 | virtual Int_t GetOwner() const; // Provide the owner flag for the stored objects | |
22 | virtual void SetSwapMode(Int_t swap=1); // Set the swap mode flag for this matrix | |
23 | virtual Int_t GetSwapMode() const; // Provide the swap mode flag for this matrix | |
24 | virtual void EnterObject(Int_t row,Int_t col,TObject* obj); // Enter an object into the matrix | |
25 | void RemoveObject(Int_t row,Int_t col); // Remove object at (row,col) from the matrix | |
26 | void RemoveObjects(TObject* obj,Int_t row=0,Int_t col=0); // Remove specified object(s) from the matrix | |
27 | virtual TObject* GetObject(Int_t row,Int_t col) const; // Provide an object from the matrix | |
28 | virtual Int_t GetMaxRow() const; // Provide the maximum row number index | |
29 | virtual Int_t GetMaxColumn() const; // Provide the maximum column number index | |
30 | virtual Int_t GetNobjects() const; // Provide the number of stored objects | |
31 | virtual TObject* GetObject(Int_t j) const; // Provide pointer to the j-th object | |
32 | virtual TObjArray* GetObjects(); // Provide pointers of all stored onjects | |
33 | Int_t GetNrefs(TObject* obj) const; // Number of stored references to this object | |
34 | Int_t GetIndices(TObject* obj,TArrayI& rows,TArrayI& cols) const; // All (row,col) indices of this object | |
35 | Int_t GetIndices(TObject* obj,Int_t row,TArrayI& cols) const; // Column indices in a specific row | |
36 | Int_t GetIndices(TObject* obj,TArrayI& rows,Int_t col) const; // Row indices in a specific column | |
84bb7c66 | 37 | |
38 | protected: | |
c72198f1 | 39 | TObjArray* fRows; // Pointers to the various arrays representing the matrix rows |
40 | Int_t fOwn; // Flag to indicate whether the objects are owned by the matrix structure | |
41 | Int_t fSwap; // Flag to indicate swapped mode for internal matrix storage | |
42 | Int_t fMaxrow; // The maximum row number index | |
43 | Int_t fMaxcol; // The maximum column number index | |
44 | TObjArray* fObjects; // Linear reference array for fast looping over the stored objects | |
84bb7c66 | 45 | |
34c199de | 46 | ClassDef(AliObjMatrix,7) // Handling of a matrix structure of objects. |
84bb7c66 | 47 | }; |
48 | #endif |