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