]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FORWARD/analysis/AliFMDAnaCalibEnergyDistribution.cxx
Small updates
[u/mrichter/AliRoot.git] / PWG2 / FORWARD / analysis / AliFMDAnaCalibEnergyDistribution.cxx
CommitLineData
1b418b63 1//
2// Object to store energy distribution corrections as used in the FMD
3// analysis.
b82e76e0 4#include "AliFMDAnaCalibEnergyDistribution.h"
6289b3e8 5#include "TAxis.h"
6#include <AliLog.h>
7#include <iostream>
c3f07455 8#include "TH2F.h"
7c1a1f1d 9#include <TBrowser.h>
c3f07455 10#include "AliFMDAnaParameters.h"
b82e76e0 11ClassImp(AliFMDAnaCalibEnergyDistribution)
1b418b63 12#if 0
13; // This is for Emacs
14#endif
b82e76e0 15
1b418b63 16//____________________________________________________________________
17AliFMDAnaCalibEnergyDistribution::AliFMDAnaCalibEnergyDistribution()
18: TObject(),
6289b3e8 19 fArray(),
c3f07455 20 fEmptyArray(),
21 fRingArray(),
6289b3e8 22 fIsInit(kFALSE),
23 fNetaBins(0),
24 fEtaMax(0),
7c1a1f1d 25 fEtaMin(0)
26{
1b418b63 27
b82e76e0 28
29}
30//____________________________________________________________________
1b418b63 31void AliFMDAnaCalibEnergyDistribution::Init()
32{
6289b3e8 33 if(fNetaBins == 0)
34 AliFatal("Set Eta bins before doing Init or anything else");
35
b82e76e0 36 fArray.SetOwner();
7c1a1f1d 37 fArray.SetName("etaBins");
c3f07455 38 fEmptyArray.SetOwner();
7c1a1f1d 39 fEmptyArray.SetName("empty");
40 fRingArray.SetName("rings");
41
c3f07455 42 for(Int_t i = 0; i<fNetaBins; i++) {
6289b3e8 43 TObjArray* etaArray = new TObjArray();
7c1a1f1d 44 etaArray->SetName(Form("etabin_%03d", i+1));
6289b3e8 45 fArray.AddAtAndExpand(etaArray,i);
46 for(Int_t det = 1; det<=3;det++) {
47 TObjArray* detArray = new TObjArray();
7c1a1f1d 48 detArray->SetName(Form("FMD%d", det));
6289b3e8 49 etaArray->AddAtAndExpand(detArray,det);
6289b3e8 50 }
b82e76e0 51 }
c3f07455 52
53
54
55 for(Int_t det = 1; det<=3;det++) {
56 TObjArray* detArray = new TObjArray();
7c1a1f1d 57 detArray->SetName(Form("FMD%d", det));
c3f07455 58 fEmptyArray.AddAtAndExpand(detArray,det);
59 }
60
61 for(Int_t det = 1; det<=3;det++) {
62 TObjArray* detArray = new TObjArray();
7c1a1f1d 63 detArray->SetName(Form("FMD%d", det));
c3f07455 64 fRingArray.AddAtAndExpand(detArray,det);
65 }
66
67
b82e76e0 68 fIsInit = kTRUE;
69}
70
71
72//____________________________________________________________________
1b418b63 73TH1F*
74AliFMDAnaCalibEnergyDistribution::GetEnergyDistribution(Int_t det,
75 Char_t ring,
76 Float_t eta) {
6289b3e8 77
c3f07455 78 //TAxis testaxis(fNetaBins,fEtaMin,fEtaMax);
79 // Int_t binnumber = testaxis.FindBin(eta);
80 AliFMDAnaParameters* pars = AliFMDAnaParameters::Instance();
81
1b418b63 82 Int_t binnumber = pars->GetEtaBin(eta);
6289b3e8 83
1b418b63 84 Int_t ringNumber = (ring == 'I' ? 0 : 1);
85 TObjArray* etaArray = (TObjArray*)fArray.At(binnumber);
86 TObjArray* detArray = (TObjArray*)etaArray->At(det);
87 TH1F* hEdist = (TH1F*)detArray->At(ringNumber);
b82e76e0 88
89 return hEdist;
90}
b82e76e0 91//____________________________________________________________________
1b418b63 92TH1F*
93AliFMDAnaCalibEnergyDistribution::GetEmptyEnergyDistribution(Int_t det,
94 Char_t ring)
95{
c3f07455 96 Int_t ringNumber = (ring == 'I' ? 0 : 1);
97
98 TObjArray* detArray = (TObjArray*)fEmptyArray.At(det);
99 TH1F* hEdist = (TH1F*)detArray->At(ringNumber);
100
101 return hEdist;
102}
103//____________________________________________________________________
1b418b63 104TH1F*
105AliFMDAnaCalibEnergyDistribution::GetRingEnergyDistribution(Int_t det,
106 Char_t ring) {
c3f07455 107
108 Int_t ringNumber = (ring == 'I' ? 0 : 1);
109
110 TObjArray* detArray = (TObjArray*)fRingArray.At(det);
111 TH1F* hEdist = (TH1F*)detArray->At(ringNumber);
112
113 return hEdist;
114}
115//____________________________________________________________________
1b418b63 116void
117AliFMDAnaCalibEnergyDistribution::SetEnergyDistributionUser(Int_t det,
118 Char_t ring,
119 Float_t eta,
120 TH1F* edist)
121{
c3f07455 122 AliFMDAnaParameters* pars = AliFMDAnaParameters::Instance();
aa303f0c 123 Int_t binnumber = pars->GetEtaBin(eta);
124 //std::cout<<binnumber<<std::endl;
c3f07455 125 SetEnergyDistribution(det, ring, binnumber, edist );
126}
127//____________________________________________________________________
1b418b63 128void
129AliFMDAnaCalibEnergyDistribution::SetEnergyDistribution(Int_t det,
130 Char_t ring,
131 Int_t etabin,
132 TH1F* edist)
133{
134 if(!fIsInit) Init();
6289b3e8 135
b82e76e0 136 Int_t ringNumber = (ring == 'I' ? 0 : 1);
c3f07455 137 TObjArray* etaArray = (TObjArray*)fArray.At(etabin);
6289b3e8 138 TObjArray* detArray = (TObjArray*)etaArray->At(det);
139
b82e76e0 140 detArray->AddAtAndExpand(edist,ringNumber);
b82e76e0 141}
142
c3f07455 143//____________________________________________________________________
1b418b63 144void
145AliFMDAnaCalibEnergyDistribution::SetEmptyEnergyDistribution(Int_t det,
146 Char_t ring,
147 TH1F* edist)
148{
c3f07455 149 if(!fIsInit)
150 Init();
151
152 Int_t ringNumber = (ring == 'I' ? 0 : 1);
153 TObjArray* detArray = (TObjArray*)fEmptyArray.At(det);
154
155 detArray->AddAtAndExpand(edist,ringNumber);
156
157
158}
159//____________________________________________________________________
1b418b63 160void AliFMDAnaCalibEnergyDistribution::SetRingEnergyDistribution(Int_t det,
161 Char_t ring,
162 TH1F* edist)
163{
c3f07455 164
1b418b63 165 if(!fIsInit) Init();
c3f07455 166
167 Int_t ringNumber = (ring == 'I' ? 0 : 1);
168 TObjArray* detArray = (TObjArray*)fRingArray.At(det);
169
170 detArray->AddAtAndExpand(edist,ringNumber);
c3f07455 171}
7c1a1f1d 172//____________________________________________________________________
173void AliFMDAnaCalibEnergyDistribution::Browse(TBrowser* b)
174{
175 for(Int_t i = 0; i<fNetaBins; i++) {
176 TObjArray* etaArray = static_cast<TObjArray*>(fArray.At(i));
177 etaArray->SetName(Form("etabin_%03d", i+1));
178 for(Int_t det = 1; det<=3;det++) {
179 TObjArray* detArray = static_cast<TObjArray*>(etaArray->At(det));
180 detArray->SetName(Form("FMD%d", det));
181 }
182 }
183
184 for(Int_t det = 1; det<=3;det++) {
185 TObjArray* detArray = static_cast<TObjArray*>(fEmptyArray.At(det));
186 detArray->SetName(Form("FMD%d", det));
187 }
188
189 for(Int_t det = 1; det<=3;det++) {
190 TObjArray* detArray = static_cast<TObjArray*>(fRingArray.At(det));
191 detArray->SetName(Form("FMD%d", det));
192 }
193
194 b->Add(&fArray, "etabins");
195 b->Add(&fEmptyArray,"empty");
196 b->Add(&fRingArray, "rings");
197}
198
b82e76e0 199//____________________________________________________________________
200//
201// EOF
202//