]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/AliHLTTPCKryptonClusterFinderComponent.h
code cleanup in TPC Krypton CF (Kenneth)
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCKryptonClusterFinderComponent.h
1 // $Id$
2
3 #ifndef ALIHLTTPCKRYPTONCLUSTERFINDERCOMPONENT_H
4 #define ALIHLTTPCKRYPTONCLUSTERFINDERCOMPONENT_H
5
6 /* This file is property of and copyright by the ALICE HLT Project        * 
7  * ALICE Experiment at CERN, All rights reserved.                         *
8  * See cxx source for full Copyright notice                               */
9
10 /** @file   AliHLTTPCKryptonClusterFinderComponent.h
11     @author Kenneth Aamodt, Kalliopi Kanaki
12     @date   
13     @brief  The TPC krypton cluster finder component.
14 */
15
16 // see below for class documentation
17 // or
18 // refer to README to build package
19 // or
20 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
21
22 #include "AliHLTProcessor.h"
23
24 class AliHLTTPCKryptonClusterFinder;
25 class AliHLTTPCDigitReader;
26
27 /**
28  * @class AliHLTTPCKryptonClusterFinderComponent
29  * Component for the krypton ClusterFinder
30  * @ingroup alihlt_tpc_components
31  */
32 class AliHLTTPCKryptonClusterFinderComponent : public AliHLTProcessor
33     {
34     public:
35
36         /**
37          * constructor 
38          */
39         AliHLTTPCKryptonClusterFinderComponent();
40         /** destructor */
41         virtual ~AliHLTTPCKryptonClusterFinderComponent();
42
43         // Public functions to implement AliHLTComponent's interface.
44         // These functions are required for the registration process
45
46   /** interface function, see @ref AliHLTComponent for description */
47   const char* GetComponentID();
48   /** interface function, see @ref AliHLTComponent for description */
49   void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
50   /** interface function, see @ref AliHLTComponent for description */
51   AliHLTComponentDataType GetOutputDataType();
52   /** interface function, see @ref AliHLTComponent for description */
53   int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
54   /** interface function, see @ref AliHLTComponent for description */
55   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
56   /** interface function, see @ref AliHLTComponent for description */
57   AliHLTComponent* Spawn();
58
59     protected:
60         
61         // Protected functions to implement AliHLTComponent's interface.
62         // These functions provide initialization as well as the actual processing
63         // capabilities of the component. 
64
65         int DoInit( int argc, const char** argv );
66         int DoDeinit();
67         int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, 
68                      AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, 
69                      AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
70         int Reconfigure(const char* cdbEntry, const char* chainId);
71         
72         using AliHLTProcessor::DoEvent;
73
74     private:
75         /** copy constructor prohibited */
76         AliHLTTPCKryptonClusterFinderComponent(const AliHLTTPCKryptonClusterFinderComponent&);
77         /** assignment operator prohibited */
78         AliHLTTPCKryptonClusterFinderComponent& operator=(const AliHLTTPCKryptonClusterFinderComponent&);
79         /** the cluster finder object */
80         AliHLTTPCKryptonClusterFinder* fKryptonClusterFinder;                               //!transient
81         /** the reader object for data decoding */
82         AliHLTTPCDigitReader* fReader;                                                      //!transient
83
84         ClassDef(AliHLTTPCKryptonClusterFinderComponent, 0)
85 };
86 #endif