]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/CALO/AliHLTCaloClusterizerComponent.h
update from megan
[u/mrichter/AliRoot.git] / HLT / CALO / AliHLTCaloClusterizerComponent.h
index 5e67e61a39f1db3e6d0bc199ed36fbfc8defa813..7ae23ab8bf20bb003b34a177b11d5944047866eb 100644 (file)
@@ -17,8 +17,8 @@
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
-#ifndef ALIHLTPHOSCLUSTERIZERCOMPONENT_H
-#define ALIHLTPHOSCLUSTERIZERCOMPONENT_H
+#ifndef ALIHLTCALOCLUSTERIZERCOMPONENT_H
+#define ALIHLTCALOCLUSTERIZERCOMPONENT_H
 
 
 
 // or
 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
 
-#include "AliHLTPHOSProcessor.h"
+#include "AliHLTCaloConstantsHandler.h"
+#include "AliHLTCaloProcessor.h"
 
+class AliHLTCaloRecoParamHandler;
 class AliHLTCaloDigitDataStruct;
-class AliHLTCaloDigitContainerStruct;
+class AliHLTCaloDigitContainerDataStruct;
 class AliHLTCaloClusterizer;
+class AliHLTCaloClusterAnalyser;
 class AliHLTCaloRecPointDataStruct;
+class AliHLTPHOSHistoProdClusterEnergy;
 
 /**
  * @class AliHLTCaloClusterizerComponent
@@ -103,78 +107,86 @@ class AliHLTCaloRecPointDataStruct;
  * @ingroup alihlt_phos
  */
 
-class AliHLTCaloClusterizerComponent: public AliHLTPHOSProcessor
+//class AliHLTCaloClusterizerComponent : public AliHLTCaloConstantsHandler, public AliHLTCaloProcessor
+class AliHLTCaloClusterizerComponent : public AliHLTCaloProcessor, public AliHLTCaloConstantsHandler
   {
   public:
 
     /** Constructor */
-    AliHLTCaloClusterizerComponent();
+    AliHLTCaloClusterizerComponent(TString det);
 
     /** Destructor */
     virtual ~AliHLTCaloClusterizerComponent();
 
-    /** Copy constructor */
-    AliHLTCaloClusterizerComponent ( const AliHLTCaloClusterizerComponent & ) :
-        AliHLTPHOSProcessor(),
-        fAllDigitsPtr ( 0 ),
-        fClusterizerPtr ( 0 ),
-        //    fRecPointStructArrayPtr(0),
-        fDigitCount ( 0 )
-    {
-      //Copy constructor not implemented
-    }
-
-    /** Assignment */
-    AliHLTCaloClusterizerComponent & operator = ( const AliHLTCaloClusterizerComponent )
-    {
-      //Assignment
-      return *this;
-    }
-
-    /** interface function, see @ref AliHLTComponent for description */
-    void GetInputDataTypes ( std::vector<AliHLTComponentDataType>& list ) = 0;
-
-    /** interface function, see @ref AliHLTComponent for description */
-    AliHLTComponentDataType GetOutputDataType();
-
     /** interface function, see @ref AliHLTComponent for description */
-    void GetOutputDataSize ( unsigned long& constBase, double& inputMultiplier );
 
-    /** interface function, see @ref AliHLTComponent for description */
+    using  AliHLTCaloProcessor::DoEvent;
 
-    using  AliHLTPHOSProcessor::DoEvent;
     int DoEvent ( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
                   AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, AliHLTUInt32_t& size,
                   std::vector<AliHLTComponentBlockData>& outputBlocks );
+
+    /** 
+     * Compare two digits, used during the sorting
+     */
+    static Int_t CompareDigits(const void *dig0, const void *dig);
     
   protected:
 
-    /** interface function, see @ref AliHLTComponent for description */
-    int DoInit ( int argc, const char** argv );
+    /** interface function, see @ref AliHLTComponent for
+       description */
+    virtual int DoInit ( int argc, const char** argv );
 
     /** interface function, see @ref AliHLTComponent for description */
-    int Deinit();
+    virtual int DoDeinit();
+
+    /** Initialise geometry objects */
+    virtual Int_t InitialiseGeometry() = 0;
 
     /** interface function, see @ref AliHLTComponent for description */
     int Reconfigure ( const char* cdbEntry, const char* chainId );
 
     /** interface function, see @ref AliHLTComponent for description */
     int ScanConfigurationArgument ( int argc, const char** argv );
+    
+     /** The data origin */
+    char* fDataOrigin;                           //COMMENT
 
-    /** The data type we want */
-    AliHLTComponentDataType fDataType;            //COMMENT
-
-  private:
-
-    /** Pointer to our digits */
-    AliHLTCaloDigitContainerStruct *fAllDigitsPtr;             //! transient
-
+    /** Pointer to the cluster analyser */
+    AliHLTCaloClusterAnalyser *fAnalyserPtr;                         //! transient
+    
+    /** Pointer to reconstruction parameters handler */
+    AliHLTCaloRecoParamHandler *fRecoParamsPtr; //! transient
+    
     /** Pointer to the clusterizer it self */
     AliHLTCaloClusterizer* fClusterizerPtr;                       //! transient
+    
+  private:
 
+    /** Array of pointers to our digits */
+    AliHLTCaloDigitDataStruct **fDigitsPointerArray;              //! transient
+    
+    /** Array of pointers to our digits */
+    AliHLTCaloDigitDataStruct *fOutputDigitsArray;              //! transient
+    
     /** Number of digits in event */
     Int_t fDigitCount;                                            //COMMENT
+    
+    /** Copy digits to output? */
+    Bool_t fCopyDigitsToOuput; //COMMENT
+  
+    
+    /** Default constructor, not implemented */
+    AliHLTCaloClusterizerComponent();                             //COMMENT
 
+    /** Copy constructor  not implemented */
+    AliHLTCaloClusterizerComponent ( const AliHLTCaloClusterizerComponent &); // not implemented
+    
+    /** Assignment */
+    AliHLTCaloClusterizerComponent & operator = ( const AliHLTCaloClusterizerComponent &); // not implemented
+    
+    ClassDef(AliHLTCaloClusterizerComponent, 0);
+   
   };
 
 #endif