]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/JET/AliHLTJETConeJetComponent.h
3fc912ce6df2de2f8d7ee411cdc78ab7d9ac36c6
[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 #include "AliHLTJETReader.h"
21 #include "AliHLTJETReaderHeader.h"
22
23 #include "AliHLTJETTrackCuts.h"
24
25 /**
26  * @class AliHLTJETConeJetComponent
27  * Component to run the ConeJet jetfinder
28  *
29  * @ingroup alihlt_jet
30  */
31
32 class AliHLTJETConeJetComponent : public AliHLTProcessor {
33 public:
34   
35   /*
36    * ---------------------------------------------------------------------------------
37    *                            Constructor / Destructor
38    * ---------------------------------------------------------------------------------
39    */
40   
41   /** constructor */
42   AliHLTJETConeJetComponent();
43
44   /** destructor */
45   virtual ~AliHLTJETConeJetComponent();
46
47   /*
48    * ---------------------------------------------------------------------------------
49    * Public functions to implement AliHLTComponent's interface.
50    * These functions are required for the registration process
51    * ---------------------------------------------------------------------------------
52    */
53
54   /** interface function, see @ref AliHLTComponent for description */
55   const Char_t* GetComponentID();
56
57   /** interface function, see @ref AliHLTComponent for description */
58   void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
59
60   /** interface function, see @ref AliHLTComponent for description */
61   AliHLTComponentDataType GetOutputDataType();
62
63   /** interface function, see @ref AliHLTComponent for description */
64   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
65
66   /** interface function, see @ref AliHLTComponent for description */
67   AliHLTComponent* Spawn();
68
69 protected:
70   
71   /*
72    * ---------------------------------------------------------------------------------
73    * Protected functions to implement AliHLTComponent's interface.
74    * These functions provide initialization as well as the actual processing
75    * capabilities of the component. 
76    * ---------------------------------------------------------------------------------
77    */
78         
79   /** Initialization
80    * Overwrites the AliHLTProcessor::DoInit() method.  
81    * @param argc           size of the argument array
82    * @param argv           agument array for component initialization
83    * @return number of processed members of the argv <br>
84    *         -EINVAL unknown argument <br>
85    *         -EPROTO parameter for argument missing
86    */
87   Int_t DoInit( Int_t argc, const Char_t** argv );
88
89   /** DeInitialization 
90    * Calls also the one of AliHLTProcessor.
91    */
92   Int_t DoDeinit();
93   
94   /** EventLoop 
95    * Data processing method for the component.
96    * The component uses the @ref alihltcomponent-high-level-interface
97    * to retrieve and put serialized Root object into the output stream.
98    * @param evtData       event data structure
99    * @param trigData      trigger data structure
100    * @return
101    */
102   Int_t DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
103
104   using AliHLTProcessor::DoEvent;
105   
106   ///////////////////////////////////////////////////////////////////////////////////
107   
108 private:
109   /*
110    * ---------------------------------------------------------------------------------
111    * Private functions to implement AliHLTComponent's interface.
112    * These functions provide initialization as well as the actual processing
113    * capabilities of the component. 
114    * ---------------------------------------------------------------------------------
115    */
116   
117   /** copy constructor prohibited */
118   AliHLTJETConeJetComponent(const AliHLTJETConeJetComponent&);
119
120   /** assignment operator prohibited */
121   AliHLTJETConeJetComponent& operator=(const AliHLTJETConeJetComponent&);
122   
123   /*
124    * ---------------------------------------------------------------------------------
125    *                             Members - private
126    * ---------------------------------------------------------------------------------
127    */
128 #if 0  
129   /** Ptr to the jet finder */
130   AliHLTJETConeJetFinder    *fJetFinder;                      //!transient
131
132   /** Ptr to the jet finder header */
133   AliHLTJETConeJetHeader    *fJetHeader;                      //!transient
134 #endif
135   /** Ptr to jet reader */ 
136   AliHLTJETReader           *fJetReader;                      //!transient
137   
138   /** Ptr to jet reader header */ 
139   AliHLTJETReaderHeader     *fJetReaderHeader;                //!transient
140
141   /** Ptr to track cuts */ 
142   AliHLTJETTrackCuts        *fJetTrackCuts;                   //!transient
143
144   ClassDef(AliHLTJETConeJetComponent, 0)
145     
146 };
147 #endif