]>
Commit | Line | Data |
---|---|---|
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 | 11 | ClassImp(AliFMDAnaCalibEnergyDistribution) |
1b418b63 | 12 | #if 0 |
13 | ; // This is for Emacs | |
14 | #endif | |
b82e76e0 | 15 | |
1b418b63 | 16 | //____________________________________________________________________ |
17 | AliFMDAnaCalibEnergyDistribution::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 | 31 | void 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 | 73 | TH1F* |
74 | AliFMDAnaCalibEnergyDistribution::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 | 92 | TH1F* |
93 | AliFMDAnaCalibEnergyDistribution::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 | 104 | TH1F* |
105 | AliFMDAnaCalibEnergyDistribution::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 | 116 | void |
117 | AliFMDAnaCalibEnergyDistribution::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 | 128 | void |
129 | AliFMDAnaCalibEnergyDistribution::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 | 144 | void |
145 | AliFMDAnaCalibEnergyDistribution::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 | 160 | void 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 | //____________________________________________________________________ |
173 | void 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 | // |