3 // $Id: AliHLTJETFastJetFinder.h $
5 #ifndef ALIHLTJETFASTJETFINDER_H
6 #define ALIHLTJETFASTJETFINDER_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 AliHLTJETFastJetFinder.h
13 @author Jochen Thaeder
15 @brief FastJet finder interface
18 // see below for class documentation
20 // refer to README to build package
22 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
24 #include "fastjet/PseudoJet.hh"
25 #include "fastjet/ClusterSequenceArea.hh"
27 #include "AliJetFinder.h"
29 #include "AliHLTJets.h"
30 #include "AliHLTLogging.h"
32 #include "AliHLTJETBase.h"
35 * @class AliHLTJETFastJetFinder
36 * FastJet Interface for the fasjet package ( v.2.4.1 )
38 * <b>Usage in off-line</b><br>
39 * * Initialization phase :
40 * <pre>jetFinder->Init();</pre>
41 * * Set the input event via the reader
42 * <pre>jetReader->SetInputEvent( ... )</pre>
43 * * Process one event (contains reset per event)
44 * <pre>jetFinder->ProcessEvent();</pre>
46 * <b>Usage in on-line</b><br>
47 * * Initialization phase :
48 * <pre>jetFinder->Initialize();</pre>
49 * * Set the input event via the reader
50 * <pre>jetReader->SetInputEvent( ... )</pre>
52 * * Fill input vector (contains reset per event)
53 * <pre>jetReader->FillVectorXXX();</pre>
54 * Where XXX is has to be replaced by MC, ESD or AOD,
55 * depending, on the input object
56 * * Process one event (contains reset per event)
57 * <pre>jetFinder->ProcessHLTEvent();</pre>
59 * @ingroup alihlt_jet_fastjet
62 class AliHLTJETFastJetFinder : public AliJetFinder, public AliHLTLogging {
67 * ---------------------------------------------------------------------------------
68 * Constructor / Destructor
69 * ---------------------------------------------------------------------------------
72 /** standard constructor */
73 AliHLTJETFastJetFinder();
76 virtual ~AliHLTJETFastJetFinder();
79 * ---------------------------------------------------------------------------------
81 * ---------------------------------------------------------------------------------
84 /** Initialize the jet finder and the search grid
85 * ONLY for use in off-line ... it inherits from a virtual void ?!?!
87 void Init() { Initialize(); }
89 /** Initialize the jet finder and the search grid
90 * @return 0 on success, < 0 on failure
94 /** Reset for next event */
98 * ---------------------------------------------------------------------------------
100 * ---------------------------------------------------------------------------------
103 /** Set ptr to output container */
104 void SetOutputJets( AliHLTJets* jets ) { fJets = jets; }
107 * ---------------------------------------------------------------------------------
109 * ---------------------------------------------------------------------------------
112 /** Process one event
113 * ONLY for use in off-line ... it inherits from a virtual Bool_t
114 * @return kTRUE on success, kFALSE on failure
116 Bool_t ProcessEvent();
118 /** Process one event
119 * @return kTRUE on success, kFALSE on failure
121 Bool_t ProcessHLTEvent();
124 * ---------------------------------------------------------------------------------
126 * ---------------------------------------------------------------------------------
129 /** Print found jets */
130 void PrintJets(vector<fastjet::PseudoJet> &jets, fastjet::ClusterSequenceArea &clust_seq);
132 ///////////////////////////////////////////////////////////////////////////////////
136 /** copy constructor prohibited */
137 AliHLTJETFastJetFinder (const AliHLTJETFastJetFinder&);
139 /** assignment operator prohibited */
140 AliHLTJETFastJetFinder& operator= (const AliHLTJETFastJetFinder&);
143 * ---------------------------------------------------------------------------------
145 * ---------------------------------------------------------------------------------
148 /** Find jets, fill jets and apply jet cuts in one event
149 * @return 0 on success, < 0 on failure
151 Int_t FindFastJets();
154 * ---------------------------------------------------------------------------------
156 * ---------------------------------------------------------------------------------
159 /** Input vector for fastJet */
160 vector<fastjet::PseudoJet> *fInputVector; //! transient
162 /** Container of AliAODJets */
163 AliHLTJets *fJets; //! transient
165 ClassDef(AliHLTJETFastJetFinder,1)