Split: fixed more module incpaths
[u/mrichter/AliRoot.git] / HLTANALYSIS / JET / fastjet / AliHLTJETFastJetFinder.h
1 //-*- Mode: C++ -*-
2
3 // $Id: AliHLTJETFastJetFinder.h  $
4
5 #ifndef ALIHLTJETFASTJETFINDER_H
6 #define ALIHLTJETFASTJETFINDER_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   AliHLTJETFastJetFinder.h
13     @author Jochen Thaeder
14     @date   
15     @brief  FastJet finder interface
16 */
17
18 // see below for class documentation
19 // or
20 // refer to README to build package
21 // or
22 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
23
24 #include "fastjet/PseudoJet.hh"
25 #include "fastjet/ClusterSequenceArea.hh"
26
27 #include "AliJetFinder.h"
28
29 #include "AliHLTJets.h"
30 #include "AliHLTLogging.h"
31
32 #include "AliHLTJETBase.h"
33
34 /**
35  * @class  AliHLTJETFastJetFinder
36  * FastJet Interface for the fasjet package ( v.2.4.1 )
37  *
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>
45  * 
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>
51  *  * Process one event 
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>
58  *   
59  * @ingroup alihlt_jet_fastjet
60  */
61
62 class AliHLTJETFastJetFinder : public AliJetFinder, public AliHLTLogging {
63  
64  public:
65
66   /*
67    * ---------------------------------------------------------------------------------
68    *                            Constructor / Destructor
69    * ---------------------------------------------------------------------------------
70    */
71
72   /** standard constructor */
73   AliHLTJETFastJetFinder();
74
75   /** destructor */
76   virtual ~AliHLTJETFastJetFinder();
77
78   /*
79    * ---------------------------------------------------------------------------------
80    *                                    Initialize
81    * ---------------------------------------------------------------------------------
82    */
83   
84   /** Initialize the jet finder and the search grid
85    *  ONLY for use in off-line ... it inherits from a virtual void ?!?!
86    */
87   void Init() { Initialize(); }
88
89   /** Initialize the jet finder and the search grid
90    *  @return 0 on success, < 0 on failure
91    */
92   Int_t Initialize();
93
94   /** Reset for next event */
95   void Reset();
96
97   /*
98    * ---------------------------------------------------------------------------------
99    *                                     Setter
100    * ---------------------------------------------------------------------------------
101    */
102   
103   /** Set ptr to output container */
104   void SetOutputJets( AliHLTJets* jets ) { fJets = jets; }
105
106   /*
107    * ---------------------------------------------------------------------------------
108    *                                      Process
109    * ---------------------------------------------------------------------------------
110    */
111   
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
115    */
116   Bool_t ProcessEvent();
117   
118   /** Process one event
119    *  @return kTRUE on success, kFALSE on failure
120    */
121   Bool_t ProcessHLTEvent();
122
123   /*
124    * ---------------------------------------------------------------------------------
125    *                                      Helper
126    * ---------------------------------------------------------------------------------
127    */
128
129   /** Print found jets */
130   void PrintJets(vector<fastjet::PseudoJet> &jets, fastjet::ClusterSequenceArea &clust_seq);
131
132   ///////////////////////////////////////////////////////////////////////////////////
133
134 private:
135
136   /** copy constructor prohibited */
137   AliHLTJETFastJetFinder (const AliHLTJETFastJetFinder&);
138
139   /** assignment operator prohibited */
140   AliHLTJETFastJetFinder& operator= (const AliHLTJETFastJetFinder&);
141
142   /*
143    * ---------------------------------------------------------------------------------
144    *                             Process - private
145    * ---------------------------------------------------------------------------------
146    */
147
148   /** Find jets, fill jets and apply jet cuts in one event
149    *  @return 0 on success, < 0 on failure
150    */
151   Int_t FindFastJets(); 
152
153   /*
154    * ---------------------------------------------------------------------------------
155    *                             Members - private
156    * ---------------------------------------------------------------------------------
157    */
158
159   /** Input vector for fastJet */
160   vector<fastjet::PseudoJet>  *fInputVector;     //! transient
161
162   /** Container of AliAODJets */
163   AliHLTJets                  *fJets;            //! transient
164
165   ClassDef(AliHLTJETFastJetFinder,1)
166 };
167
168 #endif