Adding includes for EMCAL_Utils and OADB PATH (A. Shabetai)
[u/mrichter/AliRoot.git] / JETAN / AliJetUnitArray.h
1 #ifndef ALIJETUNITARRAY_H
2 #define ALIJETUNITARRAY_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  *  *  * See cxx source for full Copyright notice     */
6
7 /* $Id$ */
8
9 // Class description : Unit red as input by jet finder algorithm to store
10 //                     the physical characteristics of a particle
11 //
12 // Author: magali.estienne@subatech.in2p3.fr
13 //
14 // Unit used by jet finder algorithm
15 //
16 //
17
18 #include <Riostream.h> 
19 #include <TObject.h>
20 #include <TRefArray.h>
21 #include <TMath.h>
22 #include "AliESDtrack.h"
23 #include "AliAODTrack.h"
24 #include "AliVParticle.h"
25 #include "AliESDCaloCells.h"
26 #include "AliAODCaloCells.h"
27 #include "AliESDCaloCluster.h"
28 #include "AliAODCaloCluster.h"
29 #include "AliJetFinderTypes.h"
30
31 class TList;
32 class TVector3;
33
34 class AliJetUnitArray : public TObject
35 {
36  public:
37   AliJetUnitArray();
38   AliJetUnitArray(Int_t absId, Int_t esdId, Float_t eta, Float_t phi, Float_t en, Float_t Deta, Float_t Dphi, 
39                   AliJetFinderUnitDetectorFlagType_t det, AliJetFinderUnitFlagType_t inout, AliJetFinderUnitCutFlagType_t cut, 
40                   AliJetFinderUnitCutFlagType_t cut2, AliJetFinderUnitSignalFlagType_t signal, Float_t mass, Int_t clusId);
41   AliJetUnitArray(Int_t absId, Int_t esdId, Float_t eta, Float_t phi, Float_t en, Float_t px, Float_t py, Float_t pz, 
42                   Float_t Deta, Float_t Dphi, AliJetFinderUnitDetectorFlagType_t det, AliJetFinderUnitFlagType_t inout, 
43                   AliJetFinderUnitCutFlagType_t cut, Float_t mass, Int_t clusId);
44   ~AliJetUnitArray();
45
46   // Setter
47   void SetUnitEnergy(Float_t energy)  {fUnitEnergy = energy;}
48   void SetUnitEta(Float_t eta)        {fUnitEta = eta;} 
49   void SetUnitPhi(Float_t phi)        {fUnitPhi = phi;}
50   void SetUnitPx(Float_t px)          {fUnitPx = px;}
51   void SetUnitPy(Float_t py)          {fUnitPy = py;}
52   void SetUnitPz(Float_t pz)          {fUnitPz = pz;}
53   void SetUnitDeta(Float_t deta)      {fUnitDeta = deta;} 
54   void SetUnitDphi(Float_t dphi)      {fUnitDphi = dphi;}
55   void SetUnitID(Int_t id)            {fUnitID = id;}
56   void SetUnitTrackID(Int_t esdid)    {fUnitTrackID = esdid;}
57   void SetUnitEntries(Int_t num)      {fUnitNum = num;}
58   void SetUnitClusterID(Int_t id)     {fUnitClusterID = id;}
59   void SetUnitFlag(AliJetFinderUnitFlagType_t flag)    
60   { 
61     fUnitFlag = flag; 
62   } 
63   void SetUnitCutFlag(AliJetFinderUnitCutFlagType_t cutFlag)    
64   { 
65     fUnitCutFlag = cutFlag; 
66   } 
67   void SetUnitCutFlag2(AliJetFinderUnitCutFlagType_t cutFlag)
68   {
69     fUnitCutFlag2 = cutFlag;
70   }
71   void SetUnitSignalFlag(AliJetFinderUnitSignalFlagType_t signalFlag)    
72   { 
73     fUnitSignalFlag = signalFlag; 
74   } 
75   void SetUnitDetectorFlag(AliJetFinderUnitDetectorFlagType_t detectorflag)    
76   { 
77     fUnitDetectorFlag = detectorflag; 
78   } 
79   void SetUnitSignalFlagC(Bool_t init, AliJetFinderUnitSignalFlagType_t flag);
80   void SetUnitSignalFlagN(Bool_t init, AliJetFinderUnitSignalFlagType_t flag);
81   void SetUnitMass(Float_t mass) {fUnitMass = mass;}
82   void SetUnitTrackRef(TRefArray* trackref)     {fUnitTrackRef = trackref;}
83   void SetUnitCellRef(TRefArray* cellref)       {fUnitCellRef = cellref;}
84   void SetUnitClusterRef(TRefArray* clusterref) {fUnitClusterRef = clusterref;}
85
86   // Getter
87   Float_t     GetUnitEnergy() const            {return fUnitEnergy;}
88   Float_t     GetUnitEta() const               {return fUnitEta;}
89   Float_t     GetUnitPhi() const               {return fUnitPhi;} 
90   Float_t     GetUnitPx() const                {return fUnitPx;}
91   Float_t     GetUnitPy() const                {return fUnitPy;}
92   Float_t     GetUnitPz() const                {return fUnitPz;}
93   Float_t     GetUnitDeta() const              {return fUnitDeta;}
94   Float_t     GetUnitDphi() const              {return fUnitDphi;}         
95   Int_t       GetUnitID() const                {return fUnitID;}
96   Int_t       GetUnitTrackID() const           {return fUnitTrackID;}
97   Int_t       GetUnitEntries() const           {return fUnitNum;}
98   Int_t       GetUnitClusterID() const         {return fUnitClusterID;}
99   Float_t     GetUnitMass() const              {return fUnitMass;}
100   Bool_t      GetUnitSignalFlagC(Int_t ind, AliJetFinderUnitSignalFlagType_t &flagc);
101   Bool_t      GetUnitSignalFlagN(Int_t ind, AliJetFinderUnitSignalFlagType_t &flagn);
102   TRefArray*  GetUnitTrackRef() const          {return fUnitTrackRef;}
103   TRefArray*  GetUnitCellRef() const           {return fUnitCellRef;}
104   TRefArray*  GetUnitClusterRef() const        {return fUnitClusterRef;}
105
106   Float_t     EtaToTheta(Float_t arg) const;
107   void        ClearUnitTrackRef();
108   void        ClearUnitCellRef();
109
110   AliJetFinderUnitFlagType_t GetUnitFlag() const     
111   {
112           return fUnitFlag;
113   }
114   AliJetFinderUnitCutFlagType_t GetUnitCutFlag() const     
115   {
116           return fUnitCutFlag;
117   }
118   AliJetFinderUnitCutFlagType_t GetUnitCutFlag2() const
119   {
120           return fUnitCutFlag2;
121   }
122   AliJetFinderUnitSignalFlagType_t GetUnitSignalFlag() const     
123   {
124           return fUnitSignalFlag;
125   }
126   AliJetFinderUnitDetectorFlagType_t GetUnitDetectorFlag() const     
127   {
128           return fUnitDetectorFlag;
129   }
130
131  protected:
132   AliJetUnitArray(const AliJetUnitArray& rUnit);
133   AliJetUnitArray& operator = (const AliJetUnitArray& rhs);
134   Bool_t operator>  (const AliJetUnitArray* unit1) const;
135   Bool_t operator<  (const AliJetUnitArray* unit1) const;
136   Bool_t operator== (const AliJetUnitArray* unit1) const;
137
138   Float_t                            fUnitEnergy;       // Energy (Pt,et) of the unit 
139   Float_t                            fUnitEta;          // Eta of the unit
140   Float_t                            fUnitPhi;          // Phi of the unit
141   Float_t                            fUnitDeta;         // Delta Eta of the unit
142   Float_t                            fUnitDphi;         // Delta Phi of the unit
143   Int_t                              fUnitID;           // ID of the unit
144   Int_t                              fUnitTrackID;      // ID of a given charged track 
145   Int_t                              fUnitNum;          // Number of units
146   Int_t                              fUnitClusterID;    // ID for clusters
147   AliJetFinderUnitFlagType_t         fUnitFlag;         // Flag of the unit
148   AliJetFinderUnitCutFlagType_t      fUnitCutFlag;      // Cut flag of the unit in the tpc
149   AliJetFinderUnitCutFlagType_t      fUnitCutFlag2;     // Cut flag of the unit in the emcal
150   AliJetFinderUnitSignalFlagType_t   fUnitSignalFlag;   // Signal flag of the unit
151   AliJetFinderUnitDetectorFlagType_t fUnitDetectorFlag; // Detector flag of the unit
152   Float_t                            fUnitPx;           // Px of charged track
153   Float_t                            fUnitPy;           // Py of charged track
154   Float_t                            fUnitPz;           // Pz of charged track
155   Float_t                            fUnitMass;         // Mass of particle
156   vector< AliJetFinderUnitSignalFlagType_t >   fVc;     //|| added for background studies
157   vector< AliJetFinderUnitSignalFlagType_t >   fVn;     //|| added for background studies
158   TRefArray*                         fUnitTrackRef;     //! pointer to array of references to esd tracks
159   TRefArray*                         fUnitCellRef;      //! pointer to array of references to esd cells
160   TRefArray*                         fUnitClusterRef;   //! pointer to array of references to esd clusters
161
162   ClassDef(AliJetUnitArray,1)
163
164 };
165
166 #endif
167