Split: HLT/JET -> HLTANALYSIS/JET
[u/mrichter/AliRoot.git] / HLTANALYSIS / JET / cone / 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 #include "AliHLTJETJetCuts.h"
25 #include "AliHLTJETConeSeedCuts.h"
26
27 #include "AliHLTJETConeFinder.h"
28 #include "AliHLTJETConeHeader.h"
29
30 /**
31  * @class AliHLTJETConeJetComponent
32  * Component to run the ConeJet jetfinder
33  *
34  * <h2>General properties:</h2>
35  *
36  * Component ID: \b JETConeJetFinder <br>
37  * Library: \b libAliHLTJET.so     <br>
38  * Input Data Types: <br>
39  *  -  kAliHLTDataTypeMCObject|kAliHLTDataOriginHLT --> class AliHLTMCEvent<br>
40  *  -  kAliHLTDataTypeESDObject|kAliHLTDataOriginOffline --> class AliHLTESDEvent<br>
41  *  -  kAliHLTDataTypeESDObject|kAliHLTDataOriginHLT --> class AliHLTESDEvent<br>
42  * Output Data Types: <br>
43  *  - kAliHLTDataTypeJet|kAliHLTDataOriginHLT --> class AliHLTJets<br>
44  *
45  * <h2>Mandatory arguments:</h2>
46  * There are no mandatrory arguments <br>
47  *
48  * <h2>Optional arguments:</h2>
49  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
50  * \li  -algorithm   <i> JetAlgorithm to be run </u><br>
51  *       - Possible values : FSCSquareCell, FFSCRadiusCell <br>
52  *       - Default : FSCSquareCell <br>
53  *
54  * \li  -leading   <i> use leading seed only </u><br>
55  *       - Possible values : 0, 1 <br>
56  *       - Default : 0 <br>
57  *
58  * \li  -coneRadius    <i> Cone radius for cone finder </i> <br>
59  *       - Default : 0.4 <br>
60  *
61  * \li  -trackCutMinPt <i> min pt for cut on tracks, in GeV/c </i> <br>
62  *       - Default : 1.0 <br>
63  *
64  * \li  -seedCutMinPt  <i> min pt for cut on cone seeds, in GeV/c </i> <br>
65  *       - Default : 5.0 <br>
66  *
67  * \li  -jetCutMinPt   <i> min Et for cut on found jets, in GeV/c </i> <br>
68  *       - Default : 15.0 <br>
69  *
70  * @ingroup alihlt_jet
71  * @ingroup alihlt_jet_cone
72  */
73
74 class AliHLTJETConeJetComponent : public AliHLTProcessor {
75 public:
76   
77   /*
78    * ---------------------------------------------------------------------------------
79    *                            Constructor / Destructor
80    * ---------------------------------------------------------------------------------
81    */
82   
83   /** constructor */
84   AliHLTJETConeJetComponent();
85
86   /** destructor */
87   virtual ~AliHLTJETConeJetComponent();
88
89   /*
90    * ---------------------------------------------------------------------------------
91    * Public functions to implement AliHLTComponent's interface.
92    * These functions are required for the registration process
93    * ---------------------------------------------------------------------------------
94    */
95
96   /** interface function, see @ref AliHLTComponent for description */
97   const Char_t* GetComponentID();
98
99   /** interface function, see @ref AliHLTComponent for description */
100   void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
101
102   /** interface function, see @ref AliHLTComponent for description */
103   AliHLTComponentDataType GetOutputDataType();
104
105   /** interface function, see @ref AliHLTComponent for description */
106   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
107
108   /** interface function, see @ref AliHLTComponent for description */
109   AliHLTComponent* Spawn();
110
111 protected:
112   
113   /*
114    * ---------------------------------------------------------------------------------
115    * Protected functions to implement AliHLTComponent's interface.
116    * These functions provide initialization as well as the actual processing
117    * capabilities of the component. 
118    * ---------------------------------------------------------------------------------
119    */
120         
121   /** Initialization
122    * Overwrites the AliHLTProcessor::DoInit() method.  
123    * @param argc           size of the argument array
124    * @param argv           agument array for component initialization
125    * @return number of processed members of the argv <br>
126    *         -EINVAL unknown argument <br>
127    *         -EPROTO parameter for argument missing
128    */
129   Int_t DoInit( Int_t argc, const Char_t** argv );
130
131   /** DeInitialization 
132    * Calls also the one of AliHLTProcessor.
133    */
134   Int_t DoDeinit();
135   
136   /** EventLoop 
137    * Data processing method for the component.
138    * The component uses the @ref alihltcomponent-high-level-interface
139    * to retrieve and put serialized Root object into the output stream.
140    * @param evtData       event data structure
141    * @param trigData      trigger data structure
142    * @return
143    */
144   Int_t DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
145
146   using AliHLTProcessor::DoEvent;
147   
148   ///////////////////////////////////////////////////////////////////////////////////
149   
150 private:
151   /*
152    * ---------------------------------------------------------------------------------
153    * Private functions to implement AliHLTComponent's interface.
154    * These functions provide initialization as well as the actual processing
155    * capabilities of the component. 
156    * ---------------------------------------------------------------------------------
157    */
158   
159   /** copy constructor prohibited */
160   AliHLTJETConeJetComponent(const AliHLTJETConeJetComponent&);
161
162   /** assignment operator prohibited */
163   AliHLTJETConeJetComponent& operator=(const AliHLTJETConeJetComponent&);
164   
165   /*
166    * ---------------------------------------------------------------------------------
167    *                             Members - private
168    * ---------------------------------------------------------------------------------
169    */
170
171   /** Ptr to the jet finder */
172   AliHLTJETConeFinder       *fJetFinder;                      //!transient
173
174   /** Ptr to the jet finder header */
175   AliHLTJETConeHeader       *fJetHeader;                      //!transient
176
177   /** Ptr to track cuts */ 
178   AliHLTJETConeSeedCuts     *fSeedCuts;                       //!transient
179
180   /** Ptr to jet reader */ 
181   AliHLTJETReader           *fJetReader;                      //!transient
182   
183   /** Ptr to jet reader header */ 
184   AliHLTJETReaderHeader     *fJetReaderHeader;                //!transient
185
186   /** Ptr to track cuts */ 
187   AliHLTJETTrackCuts        *fTrackCuts;                      //!transient
188
189   /** Ptr to jet cuts */ 
190   AliHLTJETJetCuts          *fJetCuts;                        //!transient
191
192   /** Ptr to jet container holding AliAODJets */
193   AliHLTJets                *fJets;                           //!transient 
194   
195   ClassDef(AliHLTJETConeJetComponent, 1)
196     
197 };
198 #endif