]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/AliHLTTPCKryptonClusterFinderComponent.h
activating individual HLT simulations from digits and raw data
[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 #include "AliHLTProcessor.h"
17
18 class AliHLTTPCKryptonClusterFinder;
19 class AliHLTTPCDigitReader;
20
21 /**
22  * @class AliHLTTPCKryptonClusterFinderComponent
23  * Component for the krypton ClusterFinder
24  * @ingroup alihlt_tpc_components
25  */
26 class AliHLTTPCKryptonClusterFinderComponent : public AliHLTProcessor
27     {
28     public:
29
30         /**
31          * constructor 
32          */
33         AliHLTTPCKryptonClusterFinderComponent();
34         /** destructor */
35         virtual ~AliHLTTPCKryptonClusterFinderComponent();
36
37         // Public functions to implement AliHLTComponent's interface.
38         // These functions are required for the registration process
39
40   /** interface function, see AliHLTComponent for description */
41   const char* GetComponentID();
42   /** interface function, see AliHLTComponent for description */
43   void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
44   /** interface function, see AliHLTComponent for description */
45   AliHLTComponentDataType GetOutputDataType();
46   /** interface function, see AliHLTComponent for description */
47   int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
48   /** interface function, see AliHLTComponent for description */
49   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
50   /** interface function, see AliHLTComponent for description */
51   AliHLTComponent* Spawn();
52
53     protected:
54         
55         // Protected functions to implement AliHLTComponent's interface.
56         // These functions provide initialization as well as the actual processing
57         // capabilities of the component. 
58
59         int DoInit( int argc, const char** argv );
60         int DoDeinit();
61         int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, 
62                      AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, 
63                      AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
64
65         int Reconfigure(const char* cdbEntry, const char* chainId);
66         
67         int Configure(const char* arguments);
68       
69         using AliHLTProcessor::DoEvent;
70
71     private:
72         /** copy constructor prohibited */
73         AliHLTTPCKryptonClusterFinderComponent(const AliHLTTPCKryptonClusterFinderComponent&);
74         /** assignment operator prohibited */
75         AliHLTTPCKryptonClusterFinderComponent& operator=(const AliHLTTPCKryptonClusterFinderComponent&);
76         /** the cluster finder object */
77         AliHLTTPCKryptonClusterFinder* fKryptonClusterFinder;                               //!transient
78         /** the reader object for data decoding */
79         AliHLTTPCDigitReader* fReader;                                                      //!transient
80
81         AliHLTUInt32_t fSpecification;
82
83         ClassDef(AliHLTTPCKryptonClusterFinderComponent, 0)
84 };
85 #endif