]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLTANALYSIS/JET/fastjet/AliHLTJETFastJetHeader.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / HLTANALYSIS / JET / fastjet / AliHLTJETFastJetHeader.h
1 //-*- Mode: C++ -*-
2
3 // $Id: AliHLTJETFastJetHeader.h  $
4
5 #ifndef ALIHLTJETFASTJETHEADER_H
6 #define ALIHLTJETFASTJETHEADER_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   AliHLTJETFastJetHeader.h
13     @author Jochen Thaeder
14     @date   
15     @brief  Header of the 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
26 #include "fastjet/ClusterSequenceArea.hh"
27 #include "fastjet/AreaDefinition.hh"
28 #include "fastjet/JetDefinition.hh"
29
30 #include "AliJetHeader.h"
31 #include "AliJetReaderHeader.h"
32 #include "AliHLTLogging.h"
33
34 #include "AliHLTJETBase.h"
35
36 /**
37  * @class  AliHLTJETFastJetHeader
38  * FastJet Interface for the fasjet package ( v.2.4.1 )
39  *
40  *   
41  * @ingroup alihlt_jet_fastjet
42  */
43
44 class AliHLTJETFastJetHeader : public AliJetHeader, public AliHLTLogging {
45  
46  public:
47
48   /*
49    * ---------------------------------------------------------------------------------
50    *                            Constructor / Destructor
51    * ---------------------------------------------------------------------------------
52    */
53
54   /** standard constructor */
55   AliHLTJETFastJetHeader();
56
57   /** destructor */
58   virtual ~AliHLTJETFastJetHeader();
59
60   /*
61    * ---------------------------------------------------------------------------------
62    *                                    Initialize
63    * ---------------------------------------------------------------------------------
64    */
65   
66   /** Initialize the jet header
67    *  @return 0 on success, < 0 on failure
68    */
69   Int_t Initialize();
70
71   /*
72    * ---------------------------------------------------------------------------------
73    *                                     Setter
74    * ---------------------------------------------------------------------------------
75    */
76
77   /** Set Reader Header
78    *  @param rh ptr to Analysis Cuts
79    */
80   void SetReaderHeader(AliJetReaderHeader* rh ) { fReaderHeader = rh; }
81
82   /** Set Analysis Cuts
83    *  @param cuts ptr to AliHLTJETJetCuts 
84    */
85   void SetJetCuts( AliHLTJETJetCuts* cuts )     { fJetCuts = cuts; }
86
87   /*
88    * ---------------------------------------------------------------------------------
89    *                                     Getter
90    * ---------------------------------------------------------------------------------
91    */
92
93   /** Get Min Pt for jets */
94   Double_t                     GetPtMin()             const {return fPtMin;}
95
96   /** Get Analysis Cuts
97    *  @return ptr to AliHLTJETJetCuts 
98    */
99   AliHLTJETJetCuts*            GetJetCuts()                 { return fJetCuts; }
100
101   // -- FastJet Getters
102   // --------------------
103
104   /** Get jet definition */
105   fastjet::JetDefinition*      GetJetDefinition()           {return fJetDefinition;}
106
107   /** Get area definition */
108   fastjet::AreaDefinition*     GetAreaDefinition()          {return fAreaDefinition;}
109
110   /** Get range definition */
111   fastjet::RangeDefinition*    GetRangeDefinition()         {return fRangeDefinition;}
112
113   /*
114    * ---------------------------------------------------------------------------------
115    *                                     Getter
116    * ---------------------------------------------------------------------------------
117    */
118
119   /** Print fastjet parameters */
120   void PrintParameters() const;
121
122   ///////////////////////////////////////////////////////////////////////////////////
123
124 private:
125
126   /** copy constructor prohibited */
127   AliHLTJETFastJetHeader (const AliHLTJETFastJetHeader&);
128
129   /** assignment operator prohibited */
130   AliHLTJETFastJetHeader& operator= (const AliHLTJETFastJetHeader&);
131
132   /*
133    * ---------------------------------------------------------------------------------
134    *                             Members - private
135    * ---------------------------------------------------------------------------------
136    */
137
138   // -- fastjet::JetDefinition parameters
139   // --------------------------------------
140   
141   /** Jet Algorithm 
142    *  Default : fastjet::kt_algorithm
143    */
144   fastjet::JetAlgorithm        fAlgorithm;         // see above
145
146   /** Finding strategy 
147    *  Default : fastjet::Best
148    */
149   fastjet::Strategy            fStrategy;          // see above
150
151   /** Recombination scheme 
152    *  Default : fastjet::BIpt_scheme;
153    */
154   fastjet::RecombinationScheme fRecombScheme;      // see above
155
156   // -- fastjet::GhostedAreaSpec parameters
157   // ----------------------------------------
158
159   /** Ghost area */
160   Double_t                     fGhostArea;         // see above
161
162   /** Ghost area - active repeats */
163   Int_t                        fActiveAreaRepeats; // see above
164
165   // -- fastjet::AreaDefinition parameters
166   // ---------------------------------------
167
168   /** Area Definition */
169   fastjet::AreaType            fAreaType;          // see above
170
171   // -- fastjet::ClusterSequenceArea options parameters
172   // ----------------------------------------------------
173
174   /** Jet pt > ptmin */
175   Double_t                     fPtMin;             // see above
176
177   // -- fastjet classes
178   // --------------------
179   
180   /** Jet definition */
181   fastjet::JetDefinition      *fJetDefinition;     //! transient
182
183   /** Ghost definition */
184   fastjet::GhostedAreaSpec    *fGhostedAreaSpec;   //! transient
185
186   /** Area definition */
187   fastjet::AreaDefinition     *fAreaDefinition;    //! transient
188
189   /** Range definition */
190   fastjet::RangeDefinition    *fRangeDefinition;   //! transient
191
192   // -- Ptr to classes
193   // -------------------
194
195   /** Ptr to jet reader header */
196   AliJetReaderHeader          *fReaderHeader;      //! transient
197
198   /** Cuts on jet selection */
199   AliHLTJETJetCuts            *fJetCuts;           //! transient
200
201
202   ClassDef(AliHLTJETFastJetHeader,1)
203 };
204  
205 #endif