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