]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/JET/AliHLTJETFastJetComponent.h
9a66a1e496793f93b8112cf209c2fab5d9e7b02e
[u/mrichter/AliRoot.git] / HLT / JET / AliHLTJETFastJetComponent.h
1 //-*- Mode: C++ -*-
2
3 // $Id: AliHLTJETFastJetComponent.h  $
4
5 #ifndef ALIHLTJETFASTJETCOMPONENT_H
6 #define ALIHLTJETFASTJETCOMPONENT_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   AliHLTJETFastJetComponent.h
13     @author Jochen Thaeder <thaeder@kip.uni-heidelberg.de>
14     @date   
15     @brief  Component to run the FastJet jetfinder
16 */
17
18 #include "AliHLTProcessor.h"
19
20 #include "AliFastJetFinder.h"
21 #include "AliFastJetHeader.h"
22
23 #include "AliHLTJETReader.h"
24 #include "AliHLTJETReaderHeader.h"
25
26 #include "AliHLTJETTrackCuts.h"
27
28 /**
29  * @class AliHLTJETFastJetComponent
30  * Component to run the FastJet jetfinder
31  *
32  * @ingroup alihlt_jet
33  */
34
35 class AliHLTJETFastJetComponent : public AliHLTProcessor {
36 public:
37   
38   /*
39    * ---------------------------------------------------------------------------------
40    *                            Constructor / Destructor
41    * ---------------------------------------------------------------------------------
42    */
43   
44   /** constructor */
45   AliHLTJETFastJetComponent();
46
47   /** destructor */
48   virtual ~AliHLTJETFastJetComponent();
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   AliHLTJETFastJetComponent(const AliHLTJETFastJetComponent&);
122
123   /** assignment operator prohibited */
124   AliHLTJETFastJetComponent& operator=(const AliHLTJETFastJetComponent&);
125   
126   /*
127    * ---------------------------------------------------------------------------------
128    *                             Members - private
129    * ---------------------------------------------------------------------------------
130    */
131   
132   /** pointer to the jet finder object */
133   AliFastJetFinder          *fJetFinder;                      //!transient
134   
135   /** Ptr to the jet finder header */ 
136   AliFastJetHeader          *fJetHeader;                      //!transient
137   
138   /** Ptr to jet reader */ 
139   AliHLTJETReader           *fJetReader;                      //!transient
140
141   /** Ptr to jet reader header */ 
142   AliHLTJETReaderHeader     *fJetReaderHeader;                //!transient
143
144   /** Ptr to track cuts */ 
145   AliHLTJETTrackCuts        *fJetTrackCuts;                   //!transient
146   
147   ClassDef(AliHLTJETFastJetComponent, 0)
148     
149 };
150 #endif