3 // $Id: AliHLTJETConeJetComponent.h $
5 #ifndef ALIHLTJETCONEJETCOMPONENT_H
6 #define ALIHLTJETCONEJETCOMPONENT_H
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 *
12 /** @file AliHLTJETConeJetComponent.h
13 @author Jochen Thaeder <thaeder@kip.uni-heidelberg.de>
15 @brief Component to run the ConeJet jetfinder
18 #include "AliHLTProcessor.h"
20 #include "AliHLTJETReader.h"
21 #include "AliHLTJETReaderHeader.h"
23 #include "AliHLTJETTrackCuts.h"
24 #include "AliHLTJETJetCuts.h"
25 #include "AliHLTJETConeSeedCuts.h"
27 #include "AliHLTJETConeFinder.h"
28 #include "AliHLTJETConeHeader.h"
31 * @class AliHLTJETConeJetComponent
32 * Component to run the ConeJet jetfinder
34 * <h2>General properties:</h2>
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>
45 * <h2>Mandatory arguments:</h2>
46 * There are no mandatrory arguments <br>
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>
53 * \li -trackCutMinPt <i> min pt for cut on tracks, in GeV/c </i> <br>
54 * - Default : 1.0 <br>
56 * \li -seedCutMinPt <i> min pt for cut on cone seeds, in GeV/c </i> <br>
57 * - Default : 5.0 <br>
59 * \li -jetCutMinPt <i> min Et for cut on found jets, in GeV/c </i> <br>
60 * - Default : 15.0 <br>
63 * @ingroup alihlt_jet_cone
66 class AliHLTJETConeJetComponent : public AliHLTProcessor {
70 * ---------------------------------------------------------------------------------
71 * Constructor / Destructor
72 * ---------------------------------------------------------------------------------
76 AliHLTJETConeJetComponent();
79 virtual ~AliHLTJETConeJetComponent();
82 * ---------------------------------------------------------------------------------
83 * Public functions to implement AliHLTComponent's interface.
84 * These functions are required for the registration process
85 * ---------------------------------------------------------------------------------
88 /** interface function, see @ref AliHLTComponent for description */
89 const Char_t* GetComponentID();
91 /** interface function, see @ref AliHLTComponent for description */
92 void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
94 /** interface function, see @ref AliHLTComponent for description */
95 AliHLTComponentDataType GetOutputDataType();
97 /** interface function, see @ref AliHLTComponent for description */
98 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
100 /** interface function, see @ref AliHLTComponent for description */
101 AliHLTComponent* Spawn();
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 * ---------------------------------------------------------------------------------
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
121 Int_t DoInit( Int_t argc, const Char_t** argv );
124 * Calls also the one of AliHLTProcessor.
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
136 Int_t DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
138 using AliHLTProcessor::DoEvent;
140 ///////////////////////////////////////////////////////////////////////////////////
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 * ---------------------------------------------------------------------------------
151 /** copy constructor prohibited */
152 AliHLTJETConeJetComponent(const AliHLTJETConeJetComponent&);
154 /** assignment operator prohibited */
155 AliHLTJETConeJetComponent& operator=(const AliHLTJETConeJetComponent&);
158 * ---------------------------------------------------------------------------------
160 * ---------------------------------------------------------------------------------
163 /** Ptr to the jet finder */
164 AliHLTJETConeFinder *fJetFinder; //!transient
166 /** Ptr to the jet finder header */
167 AliHLTJETConeHeader *fJetHeader; //!transient
169 /** Ptr to track cuts */
170 AliHLTJETConeSeedCuts *fSeedCuts; //!transient
172 /** Ptr to jet reader */
173 AliHLTJETReader *fJetReader; //!transient
175 /** Ptr to jet reader header */
176 AliHLTJETReaderHeader *fJetReaderHeader; //!transient
178 /** Ptr to track cuts */
179 AliHLTJETTrackCuts *fTrackCuts; //!transient
181 /** Ptr to jet cuts */
182 AliHLTJETJetCuts *fJetCuts; //!transient
184 /** Ptr to jet container holding AliAODJets */
185 AliHLTJets *fJets; //!transient
187 ClassDef(AliHLTJETConeJetComponent, 0)