]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TPCLib/AliHLTTPCKryptonClusterFinderComponent.h
Added functionality to fill histograms and push them to the output, code cleanup...
[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   /** Gets the TObjArray from AliHLTTPCKryptonClusterFinder and pushes it to the output */
60   void MakeHistosPublic();
61     protected:
62         
63         // Protected functions to implement AliHLTComponent's interface.
64         // These functions provide initialization as well as the actual processing
65         // capabilities of the component. 
66
67         int DoInit( int argc, const char** argv );
68         int DoDeinit();
69         //      int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks, 
70         //                   AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr, 
71         //                   AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
72         int DoEvent(const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
73
74         int Reconfigure(const char* cdbEntry, const char* chainId);
75         
76         int Configure(const char* arguments);
77       
78         using AliHLTProcessor::DoEvent;
79
80     private:
81         /** copy constructor prohibited */
82         AliHLTTPCKryptonClusterFinderComponent(const AliHLTTPCKryptonClusterFinderComponent&);
83         /** assignment operator prohibited */
84         AliHLTTPCKryptonClusterFinderComponent& operator=(const AliHLTTPCKryptonClusterFinderComponent&);
85         /** the cluster finder object */
86         AliHLTTPCKryptonClusterFinder* fKryptonClusterFinder;                               //!transient
87         /** the reader object for data decoding */
88         AliHLTTPCDigitReader* fReader;                                                      //!transient
89
90         AliHLTUInt32_t fSpecification;
91
92         ClassDef(AliHLTTPCKryptonClusterFinderComponent, 1)
93 };
94 #endif