]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/BASE/util/AliHLTJets.h
adding component for the generation of streamer info for objects in the HLTOUT
[u/mrichter/AliRoot.git] / HLT / BASE / util / AliHLTJets.h
1 //-*- Mode: C++ -*-
2
3 // $Id: AliHLTJets.h  $
4
5 #ifndef ALIHLTJETS_H
6 #define ALIHLTJETS_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   AliHLTJets.h
13     @author Jochen Thaeder
14     @date   
15     @brief  Container holding produced Jets
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 "TClonesArray.h"
25 #include "TString.h"
26
27 #include "AliAODJet.h"
28
29 #include "AliHLTLogging.h"
30
31 /**
32  * @class AliHLTJets
33  * This class contains AliAODJets and comments
34  *
35  * @ingroup alihlt_jet
36  */
37
38 class AliHLTJets : public TObject, public AliHLTLogging {
39 public:
40   
41   /*
42    * ---------------------------------------------------------------------------------
43    *                            Constructor / Destructor
44    * ---------------------------------------------------------------------------------
45    */
46
47   /** Constructor */
48   AliHLTJets();
49   
50   /** Destructor */
51   ~AliHLTJets();
52
53   /*
54    * ---------------------------------------------------------------------------------
55    *                                   Initialize / Reset
56    * ---------------------------------------------------------------------------------
57    */
58
59   /** Reset output array */
60   void Reset();
61
62   /** Reset output array */
63   void ResetEvent();
64
65   /*
66    * ---------------------------------------------------------------------------------
67    *                                     Getter
68    * ---------------------------------------------------------------------------------
69    */
70
71   /** Get Comment */
72   TString       GetComment()          const { return fComment; }
73   
74   /** Get number of AliAODJets */
75   Int_t         GetNAODJets()         const { return fNAODJets; }
76
77   /** Get ptr to TClonesArray of AliAODJets */
78   TClonesArray* GetAODJets()          const { return fAODJets; }
79
80   /** Get AliAODJet with idx iter */
81   AliAODJet*    GetJet( Int_t iter )  const;
82
83   /** Get next AliAODJet 
84    *  @return Ptr to Jet, NULL if no next jet is present
85    */  
86   AliAODJet*    NextJet();
87
88   /*
89    * ---------------------------------------------------------------------------------
90    *                                     Setter
91    * ---------------------------------------------------------------------------------
92    */
93
94   /** Set Comment
95    * @param   comment  arguments of jet finder
96    */
97   void SetComment( const Char_t* comment ) { fComment = TString(comment); }
98
99   /** Set Comment
100    * @param   comment  arguments of jet finder
101    */
102   void SetComment( TString comment ) { fComment = TString(comment); }
103
104   /** Add Jet to Container 
105    *  @param  eta     Jet eta
106    *  @param  phi     Jet phi
107    *  @param  pt      Jet pt
108    *  @param  et      Jet et
109    */
110   void AddJet( Float_t eta, Float_t phi, Float_t pt, Float_t et );
111
112   /** Add Jet to Container 
113    *  @param  jet     Ptr to AliAODJet
114    */
115   void AddJet( AliAODJet* jet );
116
117   /*
118    * ---------------------------------------------------------------------------------
119    *                                     Helper
120    * ---------------------------------------------------------------------------------
121    */
122
123   /** Sort Jets with decreasing Et */
124   void Sort();
125
126   ///////////////////////////////////////////////////////////////////////////////////
127   
128  private:
129  
130   /** copy constructor prohibited */
131   AliHLTJets(const AliHLTJets&);
132   
133   /** assignment operator prohibited */
134   AliHLTJets& operator=(const AliHLTJets&);
135
136   /*
137    * ---------------------------------------------------------------------------------
138    *                             Members - private
139    * ---------------------------------------------------------------------------------
140    */
141
142   /** String containing comment */
143   TString          fComment;           // see above 
144
145   /** Current Jet index */
146   Int_t            fCurrentJetIndex;   //! transient
147
148   /** Number of AOD jets */
149   Int_t            fNAODJets;          // see above
150
151   /** Array of AOD jets */
152   TClonesArray    *fAODJets;           // see above
153   
154   ClassDef(AliHLTJets, 1)
155 };
156 #endif