04-mar-2005 NvE Installation scripts named amdgcclib.sh introduced in all /scripts...
[u/mrichter/AliRoot.git] / RALICE / AliObjMatrix.h
index 70d1c54f6ab446e88c6aaa4ab2447cc6d545fe44..412898d1d8c5f9eadf8da22bdb38c2006c5ca7b2 100644 (file)
@@ -5,28 +5,33 @@
 
 // $Id$
 
-#include "TObject.h"
+#include "TNamed.h"
 #include "TObjArray.h"
-#include "TRefArray.h"
+#include "TArrayI.h"
 
-class AliObjMatrix : public TObject
+class AliObjMatrix : public TNamed
 {
  public:
-  AliObjMatrix();                                             // Default constructor
-  virtual ~AliObjMatrix();                                    // Default destructor
-  virtual void Reset();                                       // Reset the whole matrix structure
-  virtual void SetOwner(Int_t own=1);                         // Set the owner flag for the stored objects
-  virtual Int_t GetOwner();                                   // Provide the owner flag for the stored objects
-  virtual void SetSwapMode(Int_t swap=1);                     // Set the swap mode flag for this matrix
-  virtual Int_t GetSwapMode();                                // Provide the swap mode flag for this matrix
-  virtual void EnterObject(Int_t row,Int_t col,TObject* obj); // Enter an object into the matrix
-  virtual void RemoveObject(Int_t row,Int_t col);             // Remove an object from the matrix
-  virtual TObject* GetObject(Int_t row,Int_t col);            // Provide an object from the matrix
-  virtual Int_t GetMaxRow();                                  // Provide the maximum row number index
-  virtual Int_t GetMaxColumn();                               // Provide the maximum column number index
-  virtual Int_t GetNobjects();                                // Provide the number of stored objects
-  virtual TObject* GetObject(Int_t j);                        // Provide pointer to the j-th object
-  virtual TObjArray* GetObjects();                            // Provide pointers of all stored onjects
+  AliObjMatrix();                                                   // Default constructor
+  virtual ~AliObjMatrix();                                          // Default destructor
+  virtual void Reset();                                             // Reset the whole matrix structure
+  virtual void SetOwner(Int_t own=1);                               // Set the owner flag for the stored objects
+  virtual Int_t GetOwner() const;                                   // Provide the owner flag for the stored objects
+  virtual void SetSwapMode(Int_t swap=1);                           // Set the swap mode flag for this matrix
+  virtual Int_t GetSwapMode() const;                                // Provide the swap mode flag for this matrix
+  virtual void EnterObject(Int_t row,Int_t col,TObject* obj);       // Enter an object into the matrix
+  void RemoveObject(Int_t row,Int_t col);                           // Remove object at (row,col) from the matrix
+  void RemoveObjects(TObject* obj,Int_t row=0,Int_t col=0);         // Remove specified object(s) from the matrix
+  virtual TObject* GetObject(Int_t row,Int_t col) const;            // Provide an object from the matrix
+  virtual Int_t GetMaxRow() const;                                  // Provide the maximum row number index
+  virtual Int_t GetMaxColumn() const;                               // Provide the maximum column number index
+  virtual Int_t GetNobjects() const;                                // Provide the number of stored objects
+  virtual TObject* GetObject(Int_t j) const;                        // Provide pointer to the j-th object
+  virtual TObjArray* GetObjects();                                  // Provide pointers of all stored onjects
+  Int_t GetNrefs(TObject* obj) const;                               // Number of stored references to this object
+  Int_t GetIndices(TObject* obj,TArrayI& rows,TArrayI& cols) const; // All (row,col) indices of this object
+  Int_t GetIndices(TObject* obj,Int_t row,TArrayI& cols) const;     // Column indices in a specific row
+  Int_t GetIndices(TObject* obj,TArrayI& rows,Int_t col) const;     // Row indices in a specific column
  
  protected:
   TObjArray* fRows;    // Pointers to the various arrays representing the matrix rows
@@ -36,6 +41,6 @@ class AliObjMatrix : public TObject
   Int_t fMaxcol;       // The maximum column number index
   TObjArray* fObjects; // Linear reference array for fast looping over the stored objects
  
- ClassDef(AliObjMatrix,2) // Handling of a matrix structure of objects.
+ ClassDef(AliObjMatrix,6) // Handling of a matrix structure of objects.
 };
 #endif