]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/JET/cone/AliHLTJETConeJetComponent.h
e8e33cc8d548134290886626218d27b714aec160
[u/mrichter/AliRoot.git] / HLT / 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 -coneRadius    <i> Cone radius for cone finder </i> <br>
51  *      - Default : 0.4 <br>
52  *
53  * \li -trackCutMinPt <i> min pt for cut on tracks, in GeV/c </i> <br>
54  *      - Default : 1.0 <br>
55  *
56  * \li -seedCutMinPt  <i> min pt for cut on cone seeds, in GeV/c </i> <br>
57  *      - Default : 5.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_cone
64  */
65
66 class AliHLTJETConeJetComponent : public AliHLTProcessor {
67 public:
68   
69   /*
70    * ---------------------------------------------------------------------------------
71    *                            Constructor / Destructor
72    * ---------------------------------------------------------------------------------
73    */
74   
75   /** constructor */
76   AliHLTJETConeJetComponent();
77
78   /** destructor */
79   virtual ~AliHLTJETConeJetComponent();
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   AliHLTJETConeJetComponent(const AliHLTJETConeJetComponent&);
153
154   /** assignment operator prohibited */
155   AliHLTJETConeJetComponent& operator=(const AliHLTJETConeJetComponent&);
156   
157   /*
158    * ---------------------------------------------------------------------------------
159    *                             Members - private
160    * ---------------------------------------------------------------------------------
161    */
162
163   /** Ptr to the jet finder */
164   AliHLTJETConeFinder       *fJetFinder;                      //!transient
165
166   /** Ptr to the jet finder header */
167   AliHLTJETConeHeader       *fJetHeader;                      //!transient
168
169   /** Ptr to track cuts */ 
170   AliHLTJETConeSeedCuts     *fSeedCuts;                       //!transient
171
172   /** Ptr to jet reader */ 
173   AliHLTJETReader           *fJetReader;                      //!transient
174   
175   /** Ptr to jet reader header */ 
176   AliHLTJETReaderHeader     *fJetReaderHeader;                //!transient
177
178   /** Ptr to track cuts */ 
179   AliHLTJETTrackCuts        *fTrackCuts;                      //!transient
180
181   /** Ptr to jet cuts */ 
182   AliHLTJETJetCuts          *fJetCuts;                        //!transient
183
184   /** Ptr to jet container holding AliAODJets */
185   AliHLTJets                *fJets;                           //!transient 
186   
187   ClassDef(AliHLTJETConeJetComponent, 0)
188     
189 };
190 #endif