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