09b655d45263a03541771df044c4bbe6ce7041b9
[u/mrichter/AliRoot.git] / HLT / JET / cone / AliHLTJETConeEtaPhiCell.h
1 //-*- Mode: C++ -*-
2
3 // $Id: AliHLTJETConeEtaPhiCell.h  $
4
5 #ifndef ALIHLTJETCONEETAPHICELL_H
6 #define ALIHLTJETCONEETAPHICELL_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   AliHLTJETConeEtaPhiCell.h
13     @author Jochen Thaeder
14     @date   
15     @brief  Cell in eta-phi space of the cone finder
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 "TObjArray.h"
25 #include "TParticle.h"
26
27 #include "AliESDtrack.h"
28
29 #include "AliHLTLogging.h"
30 #include "AliHLTJETBase.h"
31
32 /**
33  * @class AliHLTJETConeEtaPhiCell
34  * This class contains one cell in the eta-phi space for the cone finder
35  * 
36  * @ingroup alihlt_jet_cone
37  */
38
39 class AliHLTJETConeEtaPhiCell : public TObject, public AliHLTLogging  {
40
41 public:
42   
43   /*
44    * ---------------------------------------------------------------------------------
45    *                            Constructor / Destructor
46    * ---------------------------------------------------------------------------------
47    */
48   
49   /** Constructor for ESD tracks */
50   AliHLTJETConeEtaPhiCell( Int_t etaIdx, Int_t phiIdx, AliESDtrack* track );
51
52   /** Constructor for MC particles */
53   AliHLTJETConeEtaPhiCell( Int_t etaIdx, Int_t phiIdx, TParticle* particle );
54
55   /** Destructor */
56   ~AliHLTJETConeEtaPhiCell();
57
58   /** A destructor like class, called by TClonesArray->Clear("C") */
59   void Clear(Option_t* option = "");
60
61   /*
62    * ---------------------------------------------------------------------------------
63    *                                     Getter
64    * ---------------------------------------------------------------------------------
65    */
66  
67   /** Get cell eta index */
68   Int_t         GetEtaIdx()        { return fEtaIdx; }
69
70   /** Get cell phi index */
71   Int_t         GetPhiIdx()        { return fPhiIdx; }
72
73   /** Get summed pt of cell */
74   Float_t       GetPt()            { return fPt; }  
75
76   /** Get summed eta of cell */
77   Float_t       GetEta()           { return fEta; }
78
79   /** Get summed phi of cell */
80   Float_t       GetPhi()           { return fPhi; }  
81
82   /** Get N of tracks in cell */
83   Int_t         GetNTracks()       { return fNTracks; }
84
85   /**  Get List of tracks in cell */
86   TObjArray*    GetTrackList()     { return fTrackList; }
87
88   /** Get type of tracks (TrackType_t) */
89   Int_t         GetTrackType()     { return fTrackType; }
90
91
92   /*
93    * ---------------------------------------------------------------------------------
94    *                                     Process 
95    * ---------------------------------------------------------------------------------
96    */
97
98   /** Add Track to cell, using ESD track */
99   void AddTrack( AliESDtrack* track );
100
101   /** Add Track to cell, using MC particle */
102   void AddTrack( TParticle* particle );
103   
104   ///////////////////////////////////////////////////////////////////////////////////
105
106  private:
107
108   /** Standard constructor prohibited */
109   AliHLTJETConeEtaPhiCell();
110
111   /** copy constructor prohibited */
112   AliHLTJETConeEtaPhiCell(const AliHLTJETConeEtaPhiCell&);
113
114   /** assignment operator prohibited */
115   AliHLTJETConeEtaPhiCell& operator=(const AliHLTJETConeEtaPhiCell&);
116
117   /*
118    * ---------------------------------------------------------------------------------
119    *                             Members - private
120    * ---------------------------------------------------------------------------------
121    */
122
123   // -- cell index parameters --
124
125   /** cell eta index */
126   Int_t      fEtaIdx;                        // see above
127
128   /** cell phi index */
129   Int_t      fPhiIdx;                        // see above
130
131   // -- summed parameters --
132
133   /** Summed pt of cell */
134   Float_t    fPt;                            // see above
135
136   /** Summed eta of cell */
137   Float_t    fEta;                           // see above
138
139   /** Summed phi of cell */
140   Float_t    fPhi;                           // see above
141
142   /** N of tracks in cell */
143   UInt_t     fNTracks;                       // see above
144
145   // -- Lists --
146
147   /** TObjArray of tracks in the cell */
148   TObjArray* fTrackList;                     //! transient
149   
150   /** Type of tracks (TrackType_t) */
151   Int_t      fTrackType;                     // see above
152
153   ClassDef(AliHLTJETConeEtaPhiCell, 1)
154 };
155 #endif
156