]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/TPCLib/AliHLTTPCAgent.h
added AliFlatExternalTrackParam to HLT global library
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCAgent.h
index 33ac753228db6939fbc3f4c18fa5fac9fa576fd4..cd7b8e52ab1c579877bd3d86728c5a0113a7dc68 100644 (file)
@@ -1,23 +1,40 @@
-// @(#) $Id$
+//-*- Mode: C++ -*-
+// $Id$
 
 #ifndef ALIHLTTPCAGENT_H
 #define ALIHLTTPCAGENT_H
-/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
- * See cxx source for full Copyright notice                               */
+//* This file is property of and copyright by the                          * 
+//* ALICE Experiment at CERN, All rights reserved.                         *
+//* See cxx source for full Copyright notice                               *
 
-/** @file   AliHLTTPCAgent.h
-    @author Matthias Richter
-    @date   
-    @brief  Agent of the libAliHLTTPC library
-*/
+/ @file   AliHLTTPCAgent.h
+//  @author Matthias Richter
+//  @date   
+//  @brief  Agent of the libAliHLTTPC library
+//  @note
 
 #include "AliHLTModuleAgent.h"
 #include "AliHLTOUTHandlerEquId.h"
 
+class AliHLTOUTHandlerChain;
+
 /**
  * @class AliHLTTPCAgent
  * This is the agent for the AliHLTTPC library.
  *
+ * Defined reconstruction chains:
+ * - TPC-raw-data
+ * - TPC-hwcfdata
+ * - TPC-raw-clusters
+ * - TPC-clusters
+ * - TPC-global-merger
+ * - TPC-mcTrackMarker
+ * - TPC-compression
+ *
+ * Default reconstruction chains:
+ * - simulation: TPC-compression
+ * - reconstruction: TPC-compression-emulation
+ *
  * @ingroup alihlt_system
  */
 class AliHLTTPCAgent : public AliHLTModuleAgent {
@@ -65,15 +82,15 @@ class AliHLTTPCAgent : public AliHLTModuleAgent {
 
   /**
    * Register components for the AliHLTTPC library.
-   * @param pHandler  [in] instance of the component handler          
+   * @param [in] pHandler  instance of the component handler          
    */
   int RegisterComponents(AliHLTComponentHandler* pHandler) const;
 
   /**
    * Get handler decription for TPC data in the HLTOUT data stream.
-   * @param dt        [in] data type of the block
-   * @param spec      [in] specification of the block
-   * @param desc      [out] handler description
+   * @param [in]  dt        data type of the block
+   * @param [in]  spec      specification of the block
+   * @param [out] desc      handler description
    * @return 1 if the agent can provide a handler, 0 if not
    */
   int GetHandlerDescription(AliHLTComponentDataType dt,
@@ -82,8 +99,8 @@ class AliHLTTPCAgent : public AliHLTModuleAgent {
 
   /**
    * Get specific handler for TPC data in the HLTOUT data stream.
-   * @param dt        [in] data type of the block
-   * @param spec      [in] specification of the block
+   * @param [in] dt        data type of the block
+   * @param [in] spec      specification of the block
    * @return pointer to handler
    */
   AliHLTOUTHandler* GetOutputHandler(AliHLTComponentDataType dt,
@@ -117,6 +134,11 @@ class AliHLTTPCAgent : public AliHLTModuleAgent {
 
   };
 
+  enum EOptions {
+    // indicate cluster id data blocks in the HLTOUT
+    kHaveCompressedClusterIdDataBlock = BIT(15)
+  };
+
  protected:
 
  private:
@@ -127,10 +149,17 @@ class AliHLTTPCAgent : public AliHLTModuleAgent {
 
   /** handler for TPC raw data in the HLTOUT stream */
   AliHLTTPCRawDataHandler* fRawDataHandler; //!transient
-  /** nof requests for TPC raw data handler */
-  int fNofRawDataHandler; //!transient
 
-  ClassDef(AliHLTTPCAgent, 1);
+  /** afterburner for {'TRAKSEGS':'TPC '} in the HLTOUT stream */
+  AliHLTOUTHandlerChain* fTracksegsDataHandler; //! transient
+
+  /// handler for {'CLUSTERS':'TPC '}
+  AliHLTOUTHandlerChain* fClustersDataHandler; //! transient
+
+  /// handler for data blocks related to data compression
+  AliHLTOUTHandlerChain* fCompressionMonitorHandler; //! transient
+
+  ClassDef(AliHLTTPCAgent, 0);
 };
 
 #endif