]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FORWARD/analysis/AliFMDAnaCalibEnergyDistribution.cxx
- see previous commit
[u/mrichter/AliRoot.git] / PWG2 / FORWARD / analysis / AliFMDAnaCalibEnergyDistribution.cxx
1
2 #include "AliFMDAnaCalibEnergyDistribution.h"
3 #include "TAxis.h"
4 #include <AliLog.h>
5 #include <iostream>
6 #include "TH2F.h"
7 #include "AliFMDAnaParameters.h"
8 ClassImp(AliFMDAnaCalibEnergyDistribution)
9
10 AliFMDAnaCalibEnergyDistribution::AliFMDAnaCalibEnergyDistribution() : TObject(),
11   fArray(), 
12   fEmptyArray(), 
13   fRingArray(), 
14   fIsInit(kFALSE),
15   fNetaBins(0),
16   fEtaMax(0),
17   fEtaMin(0){
18    
19   
20 }
21 //____________________________________________________________________
22 void AliFMDAnaCalibEnergyDistribution::Init() {
23   
24   if(fNetaBins == 0)
25     AliFatal("Set Eta bins before doing Init or anything else");
26   
27   fArray.SetOwner();
28   fEmptyArray.SetOwner();
29   
30   for(Int_t i = 0; i<fNetaBins; i++) {
31     TObjArray* etaArray = new TObjArray();
32     fArray.AddAtAndExpand(etaArray,i);
33     for(Int_t det = 1; det<=3;det++) {
34       TObjArray* detArray = new TObjArray();
35       etaArray->AddAtAndExpand(detArray,det);
36             
37     }
38   
39   }
40   
41
42   
43   for(Int_t det = 1; det<=3;det++) {
44     TObjArray* detArray = new TObjArray();
45     fEmptyArray.AddAtAndExpand(detArray,det);
46   }
47     
48   for(Int_t det = 1; det<=3;det++) {
49     TObjArray* detArray = new TObjArray();
50     fRingArray.AddAtAndExpand(detArray,det);
51   }
52     
53     
54   fIsInit = kTRUE;
55 }
56
57
58 //____________________________________________________________________
59 TH1F* AliFMDAnaCalibEnergyDistribution::GetEnergyDistribution(Int_t det, Char_t ring, Float_t eta) {
60   
61   //TAxis testaxis(fNetaBins,fEtaMin,fEtaMax);
62   //  Int_t binnumber = testaxis.FindBin(eta);
63   AliFMDAnaParameters* pars = AliFMDAnaParameters::Instance();
64     
65   Int_t binnumber = pars->GetEtaBin(eta);
66   
67   Int_t ringNumber     = (ring == 'I' ? 0 : 1);
68   TObjArray* etaArray  = (TObjArray*)fArray.At(binnumber); 
69   TObjArray* detArray  = (TObjArray*)etaArray->At(det); 
70   TH1F* hEdist         = (TH1F*)detArray->At(ringNumber);    
71   
72   return hEdist;
73 }
74 //____________________________________________________________________
75 TH1F* AliFMDAnaCalibEnergyDistribution::GetEmptyEnergyDistribution(Int_t det, Char_t ring) {
76   
77   Int_t ringNumber     = (ring == 'I' ? 0 : 1);
78   
79   TObjArray* detArray  = (TObjArray*)fEmptyArray.At(det); 
80   TH1F* hEdist         = (TH1F*)detArray->At(ringNumber);    
81   
82   return hEdist;
83 }
84 //____________________________________________________________________
85 TH1F* AliFMDAnaCalibEnergyDistribution::GetRingEnergyDistribution(Int_t det, Char_t ring) {
86   
87   Int_t ringNumber     = (ring == 'I' ? 0 : 1);
88   
89   TObjArray* detArray  = (TObjArray*)fRingArray.At(det); 
90   TH1F* hEdist         = (TH1F*)detArray->At(ringNumber);    
91   
92   return hEdist;
93 }
94 //____________________________________________________________________
95 void  AliFMDAnaCalibEnergyDistribution::SetEnergyDistribution(Int_t det, Char_t ring, Float_t eta, TH1F* edist) {
96   AliFMDAnaParameters* pars = AliFMDAnaParameters::Instance();
97   Int_t binnumber = pars->GetEtaBin(eta);
98   //std::cout<<binnumber<<std::endl;
99   SetEnergyDistribution(det, ring, binnumber, edist );
100 }
101 //____________________________________________________________________
102 void AliFMDAnaCalibEnergyDistribution::SetEnergyDistribution(Int_t det, Char_t ring, Int_t etabin, TH1F* edist ) {
103   
104   if(!fIsInit)
105     Init();
106   
107   Int_t ringNumber     = (ring == 'I' ? 0 : 1);
108   TObjArray* etaArray  = (TObjArray*)fArray.At(etabin);
109   TObjArray* detArray  = (TObjArray*)etaArray->At(det);
110   
111   detArray->AddAtAndExpand(edist,ringNumber);
112   
113
114 }
115
116 //____________________________________________________________________
117 void AliFMDAnaCalibEnergyDistribution::SetEmptyEnergyDistribution(Int_t det, Char_t ring, TH1F* edist ) {
118   
119   if(!fIsInit)
120     Init();
121     
122   Int_t ringNumber     = (ring == 'I' ? 0 : 1);
123   TObjArray* detArray  = (TObjArray*)fEmptyArray.At(det);
124   
125   detArray->AddAtAndExpand(edist,ringNumber);
126   
127
128 }
129 //____________________________________________________________________
130 void AliFMDAnaCalibEnergyDistribution::SetRingEnergyDistribution(Int_t det, Char_t ring, TH1F* edist ) {
131   
132   if(!fIsInit)
133     Init();
134     
135   Int_t ringNumber     = (ring == 'I' ? 0 : 1);
136   TObjArray* detArray  = (TObjArray*)fRingArray.At(det);
137   
138   detArray->AddAtAndExpand(edist,ringNumber);
139   
140
141 }
142 //____________________________________________________________________
143 //
144 // EOF
145 //