Bug corrected.
[u/mrichter/AliRoot.git] / STEER / AliAODCentrality.h
1 #ifndef AliAODCentrality_H
2 #define AliAODCentrality_H
3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6
7 //-------------------------------------------------------------------------
8 //     AOD centrality class
9 //     Author: Alberica Toia, CERN, Alberica.Toia@cern.ch
10 //-------------------------------------------------------------------------
11
12 #include <TNamed.h>
13
14 class AliAODCentrality : public TNamed {
15   
16  public :
17   
18   AliAODCentrality();
19   virtual ~AliAODCentrality();
20   AliAODCentrality(const AliAODCentrality& cnt); 
21   AliAODCentrality& operator=(const AliAODCentrality& cnt);
22   
23   void SetxVertex           (Double_t x) {fxVertex       = x; }
24   void SetyVertex           (Double_t x) {fyVertex       = x; }
25   void SetzVertex           (Double_t x) {fzVertex       = x; }
26   void SetVertexer3d        (Bool_t   x) {fVertexer3d    = x; }
27   void SetbMC               (Double_t x) {fbMC = x; } 
28   void SetNpartTargMC       (Int_t    x) {fNpartTargMC = x; }
29   void SetNpartProjMC       (Int_t    x) {fNpartProjMC = x; }
30   void SetNNColl            (Int_t    x) {fNNColl = x; }     
31   void SetNNwColl           (Int_t    x) {fNNwColl = x; }    
32   void SetNwNColl           (Int_t    x) {fNwNColl = x; }    
33   void SetNwNwColl          (Int_t    x) {fNwNwColl = x; }   
34   void SetNTracklets        (Int_t    x) {fNTracklets = x; } 
35   void SetNSingleClusters   (Int_t    x) {fNSingleClusters = x; }
36   void SetNClusters         (Int_t x0, Int_t x1, Int_t x2, Int_t x3, Int_t x4, Int_t x5) {
37     fNClusters[0] = x0; 
38     fNClusters[1] = x1; 
39     fNClusters[2] = x2; 
40     fNClusters[3] = x3; 
41     fNClusters[4] = x4; 
42     fNClusters[5] = x5; 
43   }   
44   void SetNChips            (Int_t x0, Int_t x1) {
45     fNChips[0] = x0;       
46     fNChips[1] = x1; 
47   }      
48   void SetbZDC              (Double_t x) {fbZDC = x; }           
49   void SetNpartZDC          (Int_t    x) {fNpartZDC = x; }       
50   void SetbZDCA             (Double_t x) {fbZDCA = x; }          
51   void SetNpartZDCA         (Int_t    x) {fNpartZDCA = x; }      
52   void SetbZDCC             (Double_t x) {fbZDCC = x; }          
53   void SetNpartZDCC         (Int_t    x) {fNpartZDCC = x; }      
54   void SetESDFlag         (UInt_t   x) {fESDFlag = x; } 
55   void SetZNCEnergy       (Float_t  x) {fZNCEnergy = x; }
56   void SetZPCEnergy       (Float_t  x) {fZPCEnergy = x; }
57   void SetZNAEnergy       (Float_t  x) {fZNAEnergy = x; }
58   void SetZPAEnergy       (Float_t  x) {fZPAEnergy = x; }
59   void SetZEM1Energy      (Float_t  x) {fZEM1Energy = x; }
60   void SetZEM2Energy      (Float_t  x) {fZEM2Energy = x; }
61   void SetZNCtower          (Float_t x0, Float_t x1, Float_t x2, Float_t x3, Float_t x4) {
62     fZNCtower[0] = x0; 
63     fZNCtower[1] = x1; 
64     fZNCtower[2] = x2; 
65     fZNCtower[3] = x3; 
66     fZNCtower[4] = x4; 
67   }   
68   void SetZPCtower          (Float_t x0, Float_t x1, Float_t x2, Float_t x3, Float_t x4) {
69     fZPCtower[0] = x0; 
70     fZPCtower[1] = x1; 
71     fZPCtower[2] = x2; 
72     fZPCtower[3] = x3; 
73     fZPCtower[4] = x4; 
74   }   
75   void SetZNAtower          (Float_t x0, Float_t x1, Float_t x2, Float_t x3, Float_t x4) {
76     fZNAtower[0] = x0; 
77     fZNAtower[1] = x1; 
78     fZNAtower[2] = x2; 
79     fZNAtower[3] = x3; 
80     fZNAtower[4] = x4; 
81   }   
82   void SetZPAtower          (Float_t x0, Float_t x1, Float_t x2, Float_t x3, Float_t x4) {
83     fZPAtower[0] = x0; 
84     fZPAtower[1] = x1; 
85     fZPAtower[2] = x2; 
86     fZPAtower[3] = x3; 
87     fZPAtower[4] = x4; 
88   }   
89   void SetCentrZNC          (Float_t x0, Float_t x1) {
90     fCentrZNC[0] = x0; 
91     fCentrZNC[1] = x1; 
92   }   
93   void SetCentrZNA          (Float_t x0, Float_t x1) {
94     fCentrZNA[0] = x0; 
95     fCentrZNA[1] = x1; 
96   }   
97   void SetNTracks           (Int_t    x) {fNTracks = x; }    
98   void SetNPmdTracks        (Int_t    x) {fNPmdTracks = x; } 
99   void SetMultV0A           (Double_t x) {fMultV0A = x; }    
100   void SetMultV0C           (Double_t x) {fMultV0C = x; }    
101   void SetMultFMDA          (Float_t  x) {fMultFMDA = x; }    
102   void SetMultFMDC          (Float_t  x) {fMultFMDC = x; }
103   
104   Double_t   GetxVertex           () const {return fxVertex      ; }
105   Double_t   GetyVertex           () const {return fyVertex      ; }
106   Double_t   GetzVertex           () const {return fzVertex      ; }
107   Bool_t     GetVertexer3d        () const {return fVertexer3d   ; }
108   Double_t   GetbMC               () const {return  fbMC          ;}               
109   Int_t      GetNpartTargMC       () const {return  fNpartTargMC  ;}               
110   Int_t      GetNpartProjMC       () const {return  fNpartProjMC  ;}               
111   Int_t      GetNNColl            () const {return  fNNColl       ;}               
112   Int_t      GetNNwColl           () const {return  fNNwColl      ;}               
113   Int_t      GetNwNColl           () const {return  fNwNColl      ;}               
114   Int_t      GetNwNwColl          () const {return  fNwNwColl     ;}               
115   Int_t      GetNTracklets        () const {return  fNTracklets   ;}               
116   Int_t      GetNSingleClusters   () const {return  fNSingleClusters;}               
117   Int_t      GetNClusters0        () const {return  fNClusters[0];}               
118   Int_t      GetNClusters1        () const {return  fNClusters[1];}               
119   Int_t      GetNClusters2        () const {return  fNClusters[2];}               
120   Int_t      GetNClusters3        () const {return  fNClusters[3];}               
121   Int_t      GetNClusters4        () const {return  fNClusters[4];}               
122   Int_t      GetNClusters5        () const {return  fNClusters[5];}              
123   Int_t      GetNChip0            () const {return  fNChips[0];}               
124   Int_t      GetNChip1            () const {return  fNChips[1];}               
125   Double_t   GetbZDC              () const {return  fbZDC         ;}               
126   Int_t      GetNpartZDC          () const {return  fNpartZDC     ;}               
127   Double_t   GetbZDCA             () const {return  fbZDCA        ;}               
128   Int_t      GetNpartZDCA         () const {return  fNpartZDCA    ;}               
129   Double_t   GetbZDCC             () const {return  fbZDCC        ;}               
130   Int_t      GetNpartZDCC         () const {return  fNpartZDCC    ;}               
131   UInt_t     GetESDFlag           () const {return  fESDFlag      ;}               
132   Float_t    GetZNCEnergy         () const {return  fZNCEnergy    ;}               
133   Float_t    GetZPCEnergy         () const {return  fZPCEnergy    ;}               
134   Float_t    GetZNAEnergy         () const {return  fZNAEnergy    ;}               
135   Float_t    GetZPAEnergy         () const {return  fZPAEnergy    ;}               
136   Float_t    GetZEM1Energy        () const {return  fZEM1Energy   ;}               
137   Float_t    GetZEM2Energy        () const {return  fZEM2Energy   ;}               
138   Float_t    GetZNCtower0         () const {return  fZNCtower[0]  ;}               
139   Float_t    GetZNCtower1         () const {return  fZNCtower[1]  ;}               
140   Float_t    GetZNCtower2         () const {return  fZNCtower[2]  ;}               
141   Float_t    GetZNCtower3         () const {return  fZNCtower[3]  ;}               
142   Float_t    GetZNCtower4         () const {return  fZNCtower[4]  ;}               
143   Float_t    GetZPCtower0         () const {return  fZPCtower[0]  ;}               
144   Float_t    GetZPCtower1         () const {return  fZPCtower[1]  ;}               
145   Float_t    GetZPCtower2         () const {return  fZPCtower[2]  ;}               
146   Float_t    GetZPCtower3         () const {return  fZPCtower[3]  ;}               
147   Float_t    GetZPCtower4         () const {return  fZPCtower[4]  ;}               
148   Float_t    GetZNAtower0         () const {return  fZNAtower[0]  ;}               
149   Float_t    GetZNAtower1         () const {return  fZNAtower[1]  ;}               
150   Float_t    GetZNAtower2         () const {return  fZNAtower[2]  ;}               
151   Float_t    GetZNAtower3         () const {return  fZNAtower[3]  ;}               
152   Float_t    GetZNAtower4         () const {return  fZNAtower[4]  ;}               
153   Float_t    GetZPAtower0         () const {return  fZPAtower[0]  ;}               
154   Float_t    GetZPAtower1         () const {return  fZPAtower[1]  ;}               
155   Float_t    GetZPAtower2         () const {return  fZPAtower[2]  ;}               
156   Float_t    GetZPAtower3         () const {return  fZPAtower[3]  ;}               
157   Float_t    GetZPAtower4         () const {return  fZPAtower[4]  ;}               
158   Float_t    GetCentrZNC0         () const {return  fCentrZNC[0]  ;}               
159   Float_t    GetCentrZNC1         () const {return  fCentrZNC[1]  ;}               
160   Float_t    GetCentrZNA0         () const {return  fCentrZNA[0]  ;}               
161   Float_t    GetCentrZNA1         () const {return  fCentrZNA[1]  ;}               
162   Int_t      GetNTracks           () const {return  fNTracks      ;}               
163   Int_t      GetNPmdTracks        () const {return  fNPmdTracks   ;}               
164   Double_t   GetMultV0A           () const {return  fMultV0A      ;}               
165   Double_t   GetMultV0C           () const {return  fMultV0C      ;}               
166   Float_t    GetMultFMDA          () const {return  fMultFMDA     ;}               
167   Float_t    GetMultFMDC          () const {return  fMultFMDC     ;}               
168   
169   void         Print(Option_t* option = "") const;
170   const char*  GetOutputFileName() const {return TNamed::GetName();}
171   void         SetOutputFileName(const char* fname) {TNamed::SetName(fname);}
172
173   
174  private:
175   Double_t fxVertex;            //  X vertex from ITS
176   Double_t fyVertex;            //  Y vertex from ITS
177   Double_t fzVertex;            //  Z vertex from ITS
178   Bool_t   fVertexer3d;         //  Is vertex from 3d vertexer?
179   //
180   Double_t fbMC;                // impact parameter from MC
181   Int_t    fNpartTargMC;        // no. of participants for target nucleus from MC
182   Int_t    fNpartProjMC;        // no. of participants for project nucleus from MC
183   Int_t    fNNColl;             // Number of N-N collisions
184   Int_t    fNNwColl;            // Number of N-Nwounded collisions
185   Int_t    fNwNColl;            // Number of Nwounded-N collisons
186   Int_t    fNwNwColl;           // Number of Nwounded-Nwounded collisions
187   //
188   Int_t    fNTracklets;         //  no. tracklets
189   Int_t    fNSingleClusters;    //  no. single clusters
190   Int_t    fNClusters[6];       //  no. clusters on 6 ITS layers
191   Int_t    fNChips[2];          //  no. chips on 2 SPD layers
192   //
193   Double_t fbZDC;               // impact parameter from ZDC reco
194   Int_t    fNpartZDC;           // no. of participants from ZDC reco
195   Double_t fbZDCA;              // impact parameter from ZDC reco side A
196   Int_t    fNpartZDCA;          // no. of part. from ZDC reco side A
197   Double_t fbZDCC;              // impact parameter from ZDC reco side C
198   Int_t    fNpartZDCC;          // no. of part. from ZDC reco side C
199   //
200   UInt_t   fESDFlag;            //  ZDC ESD flags
201   Float_t  fZNCEnergy;          //  ZNC Energy
202   Float_t  fZPCEnergy;          //  ZPC Energy
203   Float_t  fZNAEnergy;          //  ZNA Energy
204   Float_t  fZPAEnergy;          //  ZPA Energy
205   Float_t  fZEM1Energy;         //  ZEM1 Energy
206   Float_t  fZEM2Energy;         //  ZEM2 Energy
207   Float_t  fZNCtower[5];        //  ZNC 5 tower signals
208   Float_t  fZPCtower[5];        //  ZPC 5 tower signals
209   Float_t  fZNAtower[5];        //  ZNA 5 tower signals
210   Float_t  fZPAtower[5];        //  ZPA 5 tower signals
211   Float_t  fCentrZNC[2];        //  centroid over ZNC
212   Float_t  fCentrZNA[2];        //  centroid over ZNA
213   
214   Int_t    fNTracks;            //  no. tracks
215   Int_t    fNPmdTracks;         //  no. PMD tracks
216   Double_t fMultV0A;            //  multiplicity from V0 reco side A
217   Double_t fMultV0C;            //  multiplicity from V0 reco side C
218   Float_t  fMultFMDA;      //  multiplicity from FMD on detector A
219   Float_t  fMultFMDC;      //  multiplicity from FMD on detector C
220   
221   ClassDef(AliAODCentrality, 1);
222 };
223
224
225 #endif