First Checkin for JET library in the HLT
[u/mrichter/AliRoot.git] / HLT / JET / AliHLTJETConeJetComponent.h
1 //-*- Mode: C++ -*-
2
3 // $Id: AliHLTJETConeJetComponent.h  $
4
5 #ifndef ALIHLTJETCONEJETCOMPONENT_H
6 #define ALIHLTJETCONEJETCOMPONENT_H
7
8 //* This file is property of and copyright by the ALICE HLT Project        * 
9 //* ALICE Experiment at CERN, All rights reserved.                         *
10 //* See cxx source for full Copyright notice                               *
11
12 /** @file   AliHLTJETConeJetComponent.h
13     @author Jochen Thaeder <thaeder@kip.uni-heidelberg.de>
14     @date   
15     @brief  Component to run the ConeJet jetfinder
16 */
17
18 #include "AliHLTProcessor.h"
19
20 /**
21  * @class AliHLTJETConeJetComponent
22  * Component to run the ConeJet jetfinder
23  *
24  * @ingroup alihlt_jet
25  */
26
27 class AliHLTJETConeJetComponent : public AliHLTProcessor {
28 public:
29   
30   /*
31    * ---------------------------------------------------------------------------------
32    *                            Constructor / Destructor
33    * ---------------------------------------------------------------------------------
34    */
35   
36   /** constructor */
37   AliHLTJETConeJetComponent();
38
39   /** destructor */
40   virtual ~AliHLTJETConeJetComponent();
41
42   /*
43    * ---------------------------------------------------------------------------------
44    * Public functions to implement AliHLTComponent's interface.
45    * These functions are required for the registration process
46    * ---------------------------------------------------------------------------------
47    */
48
49   /** interface function, see @ref AliHLTComponent for description */
50   const Char_t* GetComponentID();
51
52   /** interface function, see @ref AliHLTComponent for description */
53   void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
54
55   /** interface function, see @ref AliHLTComponent for description */
56   AliHLTComponentDataType GetOutputDataType();
57
58   /** interface function, see @ref AliHLTComponent for description */
59   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
60
61   /** interface function, see @ref AliHLTComponent for description */
62   AliHLTComponent* Spawn();
63
64 protected:
65   
66   /*
67    * ---------------------------------------------------------------------------------
68    * Protected functions to implement AliHLTComponent's interface.
69    * These functions provide initialization as well as the actual processing
70    * capabilities of the component. 
71    * ---------------------------------------------------------------------------------
72    */
73         
74   /** Initialization
75    * Overwrites the AliHLTProcessor::DoInit() method.  
76    * @param argc           size of the argument array
77    * @param argv           agument array for component initialization
78    * @return number of processed members of the argv <br>
79    *         -EINVAL unknown argument <br>
80    *         -EPROTO parameter for argument missing
81    */
82   Int_t DoInit( Int_t argc, const Char_t** argv );
83
84   /** DeInitialization 
85    * Calls also the one of AliHLTProcessor.
86    */
87   Int_t DoDeinit();
88   
89   /** EventLoop 
90    * Data processing method for the component.
91    * The component uses the @ref alihltcomponent-high-level-interface
92    * to retrieve and put serialized Root object into the output stream.
93    * @param evtData       event data structure
94    * @param trigData      trigger data structure
95    * @return
96    */
97   Int_t DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
98
99   using AliHLTProcessor::DoEvent;
100   
101   ///////////////////////////////////////////////////////////////////////////////////
102   
103 private:
104   /*
105    * ---------------------------------------------------------------------------------
106    * Private functions to implement AliHLTComponent's interface.
107    * These functions provide initialization as well as the actual processing
108    * capabilities of the component. 
109    * ---------------------------------------------------------------------------------
110    */
111   
112   /** copy constructor prohibited */
113   AliHLTJETConeJetComponent(const AliHLTJETConeJetComponent&);
114
115   /** assignment operator prohibited */
116   AliHLTJETConeJetComponent& operator=(const AliHLTJETConeJetComponent&);
117   
118   /*
119    * ---------------------------------------------------------------------------------
120    *                             Members - private
121    * ---------------------------------------------------------------------------------
122    */
123   
124   /** pointer to the jet finder object*/
125   /*  AliConeJetFinder*        fJetFinder;                         //!transient
126
127   AliConeJetHeader*        fJetHeader;                         //!transient
128   */
129   //  AliJetKineReader*        fJetReader;                         //!transient
130
131   //  AliJetKineReaderHeader*  fJetReaderHeader;                   //!transient
132
133   ClassDef(AliHLTJETConeJetComponent, 0)
134     
135 };
136 #endif