2 // Object to store energy distribution corrections as used in the FMD
6 #include "AliFMDAnaCalibEnergyDistribution.h"
12 #include "AliFMDAnaParameters.h"
13 ClassImp(AliFMDAnaCalibEnergyDistribution)
15 ; // This is for Emacs
18 //____________________________________________________________________
19 AliFMDAnaCalibEnergyDistribution::AliFMDAnaCalibEnergyDistribution()
32 //____________________________________________________________________
33 void AliFMDAnaCalibEnergyDistribution::Init()
37 AliFatal("Set Eta bins before doing Init or anything else");
40 fArray.SetName("etaBins");
41 fEmptyArray.SetOwner();
42 fEmptyArray.SetName("empty");
43 fRingArray.SetName("rings");
45 for(Int_t i = 0; i<fNetaBins; i++) {
46 TObjArray* etaArray = new TObjArray();
47 etaArray->SetName(Form("etabin_%03d", i+1));
48 fArray.AddAtAndExpand(etaArray,i);
49 for(Int_t det = 1; det<=3;det++) {
50 TObjArray* detArray = new TObjArray();
51 detArray->SetName(Form("FMD%d", det));
52 etaArray->AddAtAndExpand(detArray,det);
58 for(Int_t det = 1; det<=3;det++) {
59 TObjArray* detArray = new TObjArray();
60 detArray->SetName(Form("FMD%d", det));
61 fEmptyArray.AddAtAndExpand(detArray,det);
64 for(Int_t det = 1; det<=3;det++) {
65 TObjArray* detArray = new TObjArray();
66 detArray->SetName(Form("FMD%d", det));
67 fRingArray.AddAtAndExpand(detArray,det);
75 //____________________________________________________________________
77 AliFMDAnaCalibEnergyDistribution::GetEnergyDistribution(Int_t det,
82 //TAxis testaxis(fNetaBins,fEtaMin,fEtaMax);
83 // Int_t binnumber = testaxis.FindBin(eta);
84 AliFMDAnaParameters* pars = AliFMDAnaParameters::Instance();
86 Int_t binnumber = pars->GetEtaBin(eta);
88 Int_t ringNumber = (ring == 'I' ? 0 : 1);
89 TObjArray* etaArray = (TObjArray*)fArray.At(binnumber);
90 TObjArray* detArray = (TObjArray*)etaArray->At(det);
91 TH1F* hEdist = (TH1F*)detArray->At(ringNumber);
95 //____________________________________________________________________
97 AliFMDAnaCalibEnergyDistribution::GetEmptyEnergyDistribution(Int_t det,
100 //Get e dist of empty
101 Int_t ringNumber = (ring == 'I' ? 0 : 1);
103 TObjArray* detArray = (TObjArray*)fEmptyArray.At(det);
104 TH1F* hEdist = (TH1F*)detArray->At(ringNumber);
108 //____________________________________________________________________
110 AliFMDAnaCalibEnergyDistribution::GetRingEnergyDistribution(Int_t det,
112 // Get E dist of ring
113 Int_t ringNumber = (ring == 'I' ? 0 : 1);
115 TObjArray* detArray = (TObjArray*)fRingArray.At(det);
116 TH1F* hEdist = (TH1F*)detArray->At(ringNumber);
120 //____________________________________________________________________
122 AliFMDAnaCalibEnergyDistribution::SetEnergyDistributionUser(Int_t det,
128 AliFMDAnaParameters* pars = AliFMDAnaParameters::Instance();
129 Int_t binnumber = pars->GetEtaBin(eta);
130 //std::cout<<binnumber<<std::endl;
131 SetEnergyDistribution(det, ring, binnumber, edist );
133 //____________________________________________________________________
135 AliFMDAnaCalibEnergyDistribution::SetEnergyDistribution(Int_t det,
143 Int_t ringNumber = (ring == 'I' ? 0 : 1);
144 TObjArray* etaArray = (TObjArray*)fArray.At(etabin);
145 TObjArray* detArray = (TObjArray*)etaArray->At(det);
147 detArray->AddAtAndExpand(edist,ringNumber);
150 //____________________________________________________________________
152 AliFMDAnaCalibEnergyDistribution::SetEmptyEnergyDistribution(Int_t det,
160 Int_t ringNumber = (ring == 'I' ? 0 : 1);
161 TObjArray* detArray = (TObjArray*)fEmptyArray.At(det);
163 detArray->AddAtAndExpand(edist,ringNumber);
167 //____________________________________________________________________
168 void AliFMDAnaCalibEnergyDistribution::SetRingEnergyDistribution(Int_t det,
172 // Set E dist of ring
175 Int_t ringNumber = (ring == 'I' ? 0 : 1);
176 TObjArray* detArray = (TObjArray*)fRingArray.At(det);
178 detArray->AddAtAndExpand(edist,ringNumber);
180 //____________________________________________________________________
181 void AliFMDAnaCalibEnergyDistribution::Browse(TBrowser* b)
184 for(Int_t i = 0; i<fNetaBins; i++) {
185 TObjArray* etaArray = static_cast<TObjArray*>(fArray.At(i));
186 etaArray->SetName(Form("etabin_%03d", i+1));
187 for(Int_t det = 1; det<=3;det++) {
188 TObjArray* detArray = static_cast<TObjArray*>(etaArray->At(det));
189 detArray->SetName(Form("FMD%d", det));
193 for(Int_t det = 1; det<=3;det++) {
194 TObjArray* detArray = static_cast<TObjArray*>(fEmptyArray.At(det));
195 detArray->SetName(Form("FMD%d", det));
198 for(Int_t det = 1; det<=3;det++) {
199 TObjArray* detArray = static_cast<TObjArray*>(fRingArray.At(det));
200 detArray->SetName(Form("FMD%d", det));
203 b->Add(&fArray, "etabins");
204 b->Add(&fEmptyArray,"empty");
205 b->Add(&fRingArray, "rings");
208 //____________________________________________________________________