- cleaning up debug output
[u/mrichter/AliRoot.git] / HLT / CALO / AliHLTCaloClusterizer.h
index eab1cb10046db230c2beda02b76fbe320c3c2043..11c5983f59b4d6e096cfdf75ea4168cc14eb64d7 100644 (file)
 #include "AliHLTCaloConstantsHandler.h"\r
 \r
 //#include "AliPHOSGeometry.h"\r
+#include "AliHLTLogging.h"\r
 \r
 class TClonesArray;\r
+class TString;\r
 //class AliPHOSDigit;\r
 //class AliPHOSRecoParamEmc;\r
 //class AliPHOSRecoParam;\r
@@ -62,7 +64,7 @@ class TClonesArray;
  */\r
 \r
 \r
-class AliHLTCaloClusterizer : public AliHLTCaloConstantsHandler\r
+class AliHLTCaloClusterizer : public AliHLTCaloConstantsHandler, public AliHLTLogging\r
 {\r
   \r
 public:\r
@@ -72,34 +74,15 @@ public:
 \r
   /** Destructor */\r
   virtual ~AliHLTCaloClusterizer();\r
-\r
-//   /** Copy constructor */  \r
-//   AliHLTCaloClusterizer(const AliHLTCaloClusterizer &) : \r
-//     //    AliHLTCaloBase(),\r
-//     AliHLTCaloConstants(NULL),\r
-//     fRecPointDataPtr(0),\r
-//     fDigitDataPtr(0),\r
-//     fEmcClusteringThreshold(0),\r
-//     fEmcMinEnergyThreshold(0),\r
-//     fEmcTimeGate(0),\r
-//     fDigitsInCluster(0),\r
-//     fDigitContainerPtr(0),\r
-//     fMaxDigitIndexDiff(2*NZROWSMOD)\r
-//   {\r
-//     //Copy constructor not implemented\r
-//   }\r
   \r
-  /** Assignment */\r
-  AliHLTCaloClusterizer & operator = (const AliHLTCaloClusterizer)\r
-  {\r
-    //Assignment\r
-    return *this; \r
-  }\r
-\r
   /** Set digit container */\r
   void SetDigitContainer(AliHLTCaloDigitContainerDataStruct* digitContainerPtr)\r
   { fDigitContainerPtr = digitContainerPtr; }\r
 \r
+  /** Set array with digits */\r
+  void SetDigitArray(AliHLTCaloDigitDataStruct **digitPointerArr)\r
+  { fDigitsPointerArray = digitPointerArr; } \r
+\r
   /** Set rec point data buffer */\r
   void SetRecPointDataPtr(AliHLTCaloRecPointDataStruct* recPointDataPtr);\r
 \r
@@ -116,7 +99,7 @@ public:
   void SetEmcTimeGate(Float_t gate) { fEmcTimeGate = gate; }\r
   \r
   /** Starts clusterization of the event */ \r
-  virtual Int_t ClusterizeEvent(UInt_t availableSize, UInt_t& totSize);\r
+  virtual Int_t ClusterizeEvent(Int_t nDigits);\r
   \r
   /**\r
    * For a given digit this digit scans for neighbouring digits which \r
@@ -125,7 +108,7 @@ public:
    * @param digIndex index of the digit in the digit container\r
    * @param recPoint pointer to the current rec point\r
    */\r
-  virtual void ScanForNeighbourDigits(Int_t digIndex, AliHLTCaloRecPointDataStruct* recPoint);\r
+  virtual Int_t ScanForNeighbourDigits(Int_t digIndex, AliHLTCaloRecPointDataStruct* recPoint);\r
 \r
   /**\r
    * Checks if two digits are neighbours\r
@@ -134,14 +117,50 @@ public:
    */\r
   virtual Int_t AreNeighbours(AliHLTCaloDigitDataStruct* d1, AliHLTCaloDigitDataStruct* d2);\r
 \r
+  /**\r
+  * Get pointer to the rec points array\r
+  */\r
+  AliHLTCaloRecPointDataStruct** GetRecPoints() const { return fRecPointArray; }\r
+\r
+  Int_t CheckDigits(AliHLTCaloRecPointDataStruct **recArray = 0, AliHLTCaloDigitDataStruct **digArray = 0, Int_t nRP = 0);\r
+\r
+  Int_t CheckDigits(AliHLTCaloRecPointDataStruct **recArray, AliHLTCaloDigitDataStruct *digArray, Int_t nRP = 0);\r
 \r
 protected:\r
 \r
-  /** Pointer to the rec point output */\r
-  AliHLTCaloRecPointDataStruct* fRecPointDataPtr;              //! transient\r
+   /** \r
+   * Check the rec point buffer size and resize the buffer if necessary\r
+   */\r
+  virtual Int_t CheckBuffer(); //COMMENT\r
+  \r
+   /** \r
+   * Check the rec point array size and resize the array if necessary\r
+   */\r
+  virtual Int_t CheckArray(); //COMMENT\r
+\r
+  /** Array of pointers to the rec point output */\r
+  AliHLTCaloRecPointDataStruct **fRecPointArray; //COMMENT\r
+\r
+   /** Pointer to the rec point output */\r
+  AliHLTCaloRecPointDataStruct *fRecPointDataPtr; //COMMENT\r
 \r
-  /** Pointer to the digit output */\r
-  AliHLTCaloDigitDataStruct* fDigitDataPtr;                    //! transient\r
+  /** The first rec point in the list */\r
+  AliHLTCaloRecPointDataStruct *fFirstRecPointPtr; //COMMENT\r
+\r
+  /** Size of the rec point array */\r
+  Int_t fArraySize;\r
+  \r
+  /** Available size for the rec point output */\r
+  Int_t fAvailableSize;\r
+\r
+  /** The used size for the rec point output */\r
+  Int_t fUsedSize;\r
+  \r
+  /** Number of rec points created so far */\r
+  Int_t fNRecPoints;\r
+  \r
+  /** Pointer to the digit index array in the rec point */\r
+  Int_t* fDigitIndexPtr;                                       //! transient\r
 \r
   /** Energy threshold for starting a cluster for the calorimeter */\r
   Float_t fEmcClusteringThreshold;                             //COMMENT\r
@@ -155,25 +174,31 @@ protected:
   /** Counts the digits in a rec point */\r
   Int_t fDigitsInCluster;                                      //COMMENT\r
 \r
+  /** Array of our digits */\r
+  AliHLTCaloDigitDataStruct **fDigitsPointerArray;             //! transient\r
+\r
   /** Contains the digits from one event */\r
   AliHLTCaloDigitContainerDataStruct *fDigitContainerPtr;      //! transient\r
 \r
   /** Maximum difference in index to be a neighbour */\r
   Int_t fMaxDigitIndexDiff;                                    //COMMENT\r
 \r
-private:\r
+  /** Number of digits in event */\r
+  Int_t fNDigits;                                              //COMMENT\r
 \r
-  AliHLTCaloClusterizer();\r
+private:\r
 \r
-  AliHLTCaloClusterizer (const AliHLTCaloClusterizer &);\r
-//   AliHLTCaloClusterizer & operator = (const AliHLTCaloClusterizer &)\r
-//   {\r
-//     return *this;\r
-//   }\r
+  /** Default constructor, prohibited */\r
+  AliHLTCaloClusterizer();                          // COMMENT\r
+  \r
+  /** Copy constructor, prohibited */\r
+  AliHLTCaloClusterizer (const AliHLTCaloClusterizer &); //COMMENT\r
+  \r
+  /** Assignment operator, prohibited */\r
+  AliHLTCaloClusterizer & operator = (const AliHLTCaloClusterizer &); //COMMENT\r
 \r
   ClassDef(AliHLTCaloClusterizer, 0);\r
 \r
-\r
 };\r
 \r
 #endif\r