#include "AliFMDCorrMergingEfficiency.h"
#include <TBrowser.h>
#include <TH1D.h>
#include <AliLog.h>
#include <iostream>
AliFMDCorrMergingEfficiency::AliFMDCorrMergingEfficiency()
: fRingArray(),
fVertexAxis(0,0,0)
{
fRingArray.SetOwner(kTRUE);
fRingArray.SetName("rings");
fVertexAxis.SetName("vtxAxis");
fVertexAxis.SetTitle("v_{z} [cm]");
}
AliFMDCorrMergingEfficiency::AliFMDCorrMergingEfficiency(const
AliFMDCorrMergingEfficiency& o)
: TObject(o),
fRingArray(o.fRingArray),
fVertexAxis(o.fVertexAxis.GetNbins(), o.fVertexAxis.GetXmin(),
o.fVertexAxis.GetXmax())
{
fVertexAxis.SetName("vtxAxis");
fVertexAxis.SetTitle("v_{z} [cm]");
}
AliFMDCorrMergingEfficiency::~AliFMDCorrMergingEfficiency()
{
fRingArray.Clear();
}
AliFMDCorrMergingEfficiency&
AliFMDCorrMergingEfficiency::operator=(const AliFMDCorrMergingEfficiency& o)
{
fRingArray = o.fRingArray;
SetVertexAxis(o.fVertexAxis);
return *this;
}
TH1D*
AliFMDCorrMergingEfficiency::GetCorrection(UShort_t d, Char_t r, Double_t v) const
{
Int_t b = FindVertexBin(v);
if (b <= 0) return 0;
return GetCorrection(d, r, UShort_t(b));
}
TH1D*
AliFMDCorrMergingEfficiency::GetCorrection(UShort_t d, Char_t r, UShort_t b) const
{
TObjArray* ringArray = GetRingArray(d, r);
if (!ringArray) return 0;
if (b <= 0 || b > ringArray->GetEntriesFast()) {
AliWarning(Form("vertex bin %d out of range [1,%d]",
b, ringArray->GetEntriesFast()));
return 0;
}
TObject* o = ringArray->At(b-1);
if (!o) {
AliWarning(Form("No secondary map found for FMD%d%c in vertex bin %d",
d,r,b));
return 0;
}
return static_cast<TH1D*>(o);
}
Int_t
AliFMDCorrMergingEfficiency::FindVertexBin(Double_t v) const
{
if (fVertexAxis.GetNbins() <= 0) {
AliWarning("No vertex array defined");
return 0;
}
Int_t bin = const_cast<TAxis&>(fVertexAxis).FindBin(v);
if (bin <= 0 || bin > fVertexAxis.GetNbins()) {
AliWarning(Form("vertex %+8.4f out of range [%+8.4f,%+8.4f]",
v, fVertexAxis.GetXmin(), fVertexAxis.GetXmax()));
return 0;
}
return bin;
}
Int_t
AliFMDCorrMergingEfficiency::GetRingIndex(UShort_t d, Char_t r) const
{
switch (d) {
case 1: return 0;
case 2: return (r == 'I' || r == 'i' ? 1 : 2); break;
case 3: return (r == 'I' || r == 'i' ? 3 : 4); break;
}
AliWarning(Form("Index for FMD%d%c not found", d, r));
return -1;
}
TObjArray*
AliFMDCorrMergingEfficiency::GetRingArray(UShort_t d, Char_t r) const
{
Int_t idx = GetRingIndex(d,r);
if (idx < 0) return 0;
TObject* o = fRingArray.At(idx);
if (!o) {
AliWarning(Form("No array found for FMD%d%c", d, r));
return 0;
}
return static_cast<TObjArray*>(o);
}
TObjArray*
AliFMDCorrMergingEfficiency::GetOrMakeRingArray(UShort_t d, Char_t r)
{
Int_t idx = GetRingIndex(d,r);
if (idx < 0) return 0;
TObject* o = fRingArray.At(idx);
if (!o) {
TObjArray* a = new TObjArray(fVertexAxis.GetNbins());
a->SetName(Form("FMD%d%c", d, r));
a->SetOwner(kTRUE);
fRingArray.AddAtAndExpand(a, idx);
return a;
}
return static_cast<TObjArray*>(fRingArray.At(idx));
}
Bool_t
AliFMDCorrMergingEfficiency::SetCorrection(UShort_t d, Char_t r,
UShort_t b, TH1D* h)
{
TObjArray* ringArray = GetOrMakeRingArray(d, r);
if (!ringArray) return false;
if (b <= 0 || b > fVertexAxis.GetNbins()) {
AliWarning(Form("Vertex bin %3d out of range [1,%3d]",
b, fVertexAxis.GetNbins()));
return false;
}
h->SetName(Form("FMD%d%c_vtxbin%03d", d, r, b));
h->SetTitle(Form("Secondary map correction for FMD%d%c "
"in vertex bin %d [%+8.4f,%+8.4f]",
d, r, b, fVertexAxis.GetBinLowEdge(b),
fVertexAxis.GetBinUpEdge(b)));
h->SetXTitle("#eta");
h->SetYTitle("dN_{ch}/d#eta / sum_i N_{ch,i}");
h->SetFillStyle(3001);
h->SetDirectory(0);
h->SetStats(0);
ringArray->AddAtAndExpand(h, b-1);
return kTRUE;
}
Bool_t
AliFMDCorrMergingEfficiency::SetCorrection(UShort_t d, Char_t r,
Double_t v, TH1D* h)
{
Int_t b = FindVertexBin(v);
if (b <= 0 || b > fVertexAxis.GetNbins()) {
AliWarning(Form("Vertex %+8.4f out of range [%+8.4f,%+8.4f]",
v, fVertexAxis.GetXmin(), fVertexAxis.GetXmax()));
return false;
}
return SetCorrection(d, r, UShort_t(b), h);
}
void
AliFMDCorrMergingEfficiency::Browse(TBrowser* b)
{
b->Add(&fRingArray);
b->Add(&fVertexAxis);
}
void
AliFMDCorrMergingEfficiency::Print(Option_t* option) const
{
std::cout << "Merging efficiency correction" << std::endl;
fRingArray.Print(option);
fVertexAxis.Print(option);
}
AliFMDCorrMergingEfficiency.cxx:1 AliFMDCorrMergingEfficiency.cxx:2 AliFMDCorrMergingEfficiency.cxx:3 AliFMDCorrMergingEfficiency.cxx:4 AliFMDCorrMergingEfficiency.cxx:5 AliFMDCorrMergingEfficiency.cxx:6 AliFMDCorrMergingEfficiency.cxx:7 AliFMDCorrMergingEfficiency.cxx:8 AliFMDCorrMergingEfficiency.cxx:9 AliFMDCorrMergingEfficiency.cxx:10 AliFMDCorrMergingEfficiency.cxx:11 AliFMDCorrMergingEfficiency.cxx:12 AliFMDCorrMergingEfficiency.cxx:13 AliFMDCorrMergingEfficiency.cxx:14 AliFMDCorrMergingEfficiency.cxx:15 AliFMDCorrMergingEfficiency.cxx:16 AliFMDCorrMergingEfficiency.cxx:17 AliFMDCorrMergingEfficiency.cxx:18 AliFMDCorrMergingEfficiency.cxx:19 AliFMDCorrMergingEfficiency.cxx:20 AliFMDCorrMergingEfficiency.cxx:21 AliFMDCorrMergingEfficiency.cxx:22 AliFMDCorrMergingEfficiency.cxx:23 AliFMDCorrMergingEfficiency.cxx:24 AliFMDCorrMergingEfficiency.cxx:25 AliFMDCorrMergingEfficiency.cxx:26 AliFMDCorrMergingEfficiency.cxx:27 AliFMDCorrMergingEfficiency.cxx:28 AliFMDCorrMergingEfficiency.cxx:29 AliFMDCorrMergingEfficiency.cxx:30 AliFMDCorrMergingEfficiency.cxx:31 AliFMDCorrMergingEfficiency.cxx:32 AliFMDCorrMergingEfficiency.cxx:33 AliFMDCorrMergingEfficiency.cxx:34 AliFMDCorrMergingEfficiency.cxx:35 AliFMDCorrMergingEfficiency.cxx:36 AliFMDCorrMergingEfficiency.cxx:37 AliFMDCorrMergingEfficiency.cxx:38 AliFMDCorrMergingEfficiency.cxx:39 AliFMDCorrMergingEfficiency.cxx:40 AliFMDCorrMergingEfficiency.cxx:41 AliFMDCorrMergingEfficiency.cxx:42 AliFMDCorrMergingEfficiency.cxx:43 AliFMDCorrMergingEfficiency.cxx:44 AliFMDCorrMergingEfficiency.cxx:45 AliFMDCorrMergingEfficiency.cxx:46 AliFMDCorrMergingEfficiency.cxx:47 AliFMDCorrMergingEfficiency.cxx:48 AliFMDCorrMergingEfficiency.cxx:49 AliFMDCorrMergingEfficiency.cxx:50 AliFMDCorrMergingEfficiency.cxx:51 AliFMDCorrMergingEfficiency.cxx:52 AliFMDCorrMergingEfficiency.cxx:53 AliFMDCorrMergingEfficiency.cxx:54 AliFMDCorrMergingEfficiency.cxx:55 AliFMDCorrMergingEfficiency.cxx:56 AliFMDCorrMergingEfficiency.cxx:57 AliFMDCorrMergingEfficiency.cxx:58 AliFMDCorrMergingEfficiency.cxx:59 AliFMDCorrMergingEfficiency.cxx:60 AliFMDCorrMergingEfficiency.cxx:61 AliFMDCorrMergingEfficiency.cxx:62 AliFMDCorrMergingEfficiency.cxx:63 AliFMDCorrMergingEfficiency.cxx:64 AliFMDCorrMergingEfficiency.cxx:65 AliFMDCorrMergingEfficiency.cxx:66 AliFMDCorrMergingEfficiency.cxx:67 AliFMDCorrMergingEfficiency.cxx:68 AliFMDCorrMergingEfficiency.cxx:69 AliFMDCorrMergingEfficiency.cxx:70 AliFMDCorrMergingEfficiency.cxx:71 AliFMDCorrMergingEfficiency.cxx:72 AliFMDCorrMergingEfficiency.cxx:73 AliFMDCorrMergingEfficiency.cxx:74 AliFMDCorrMergingEfficiency.cxx:75 AliFMDCorrMergingEfficiency.cxx:76 AliFMDCorrMergingEfficiency.cxx:77 AliFMDCorrMergingEfficiency.cxx:78 AliFMDCorrMergingEfficiency.cxx:79 AliFMDCorrMergingEfficiency.cxx:80 AliFMDCorrMergingEfficiency.cxx:81 AliFMDCorrMergingEfficiency.cxx:82 AliFMDCorrMergingEfficiency.cxx:83 AliFMDCorrMergingEfficiency.cxx:84 AliFMDCorrMergingEfficiency.cxx:85 AliFMDCorrMergingEfficiency.cxx:86 AliFMDCorrMergingEfficiency.cxx:87 AliFMDCorrMergingEfficiency.cxx:88 AliFMDCorrMergingEfficiency.cxx:89 AliFMDCorrMergingEfficiency.cxx:90 AliFMDCorrMergingEfficiency.cxx:91 AliFMDCorrMergingEfficiency.cxx:92 AliFMDCorrMergingEfficiency.cxx:93 AliFMDCorrMergingEfficiency.cxx:94 AliFMDCorrMergingEfficiency.cxx:95 AliFMDCorrMergingEfficiency.cxx:96 AliFMDCorrMergingEfficiency.cxx:97 AliFMDCorrMergingEfficiency.cxx:98 AliFMDCorrMergingEfficiency.cxx:99 AliFMDCorrMergingEfficiency.cxx:100 AliFMDCorrMergingEfficiency.cxx:101 AliFMDCorrMergingEfficiency.cxx:102 AliFMDCorrMergingEfficiency.cxx:103 AliFMDCorrMergingEfficiency.cxx:104 AliFMDCorrMergingEfficiency.cxx:105 AliFMDCorrMergingEfficiency.cxx:106 AliFMDCorrMergingEfficiency.cxx:107 AliFMDCorrMergingEfficiency.cxx:108 AliFMDCorrMergingEfficiency.cxx:109 AliFMDCorrMergingEfficiency.cxx:110 AliFMDCorrMergingEfficiency.cxx:111 AliFMDCorrMergingEfficiency.cxx:112 AliFMDCorrMergingEfficiency.cxx:113 AliFMDCorrMergingEfficiency.cxx:114 AliFMDCorrMergingEfficiency.cxx:115 AliFMDCorrMergingEfficiency.cxx:116 AliFMDCorrMergingEfficiency.cxx:117 AliFMDCorrMergingEfficiency.cxx:118 AliFMDCorrMergingEfficiency.cxx:119 AliFMDCorrMergingEfficiency.cxx:120 AliFMDCorrMergingEfficiency.cxx:121 AliFMDCorrMergingEfficiency.cxx:122 AliFMDCorrMergingEfficiency.cxx:123 AliFMDCorrMergingEfficiency.cxx:124 AliFMDCorrMergingEfficiency.cxx:125 AliFMDCorrMergingEfficiency.cxx:126 AliFMDCorrMergingEfficiency.cxx:127 AliFMDCorrMergingEfficiency.cxx:128 AliFMDCorrMergingEfficiency.cxx:129 AliFMDCorrMergingEfficiency.cxx:130 AliFMDCorrMergingEfficiency.cxx:131 AliFMDCorrMergingEfficiency.cxx:132 AliFMDCorrMergingEfficiency.cxx:133 AliFMDCorrMergingEfficiency.cxx:134 AliFMDCorrMergingEfficiency.cxx:135 AliFMDCorrMergingEfficiency.cxx:136 AliFMDCorrMergingEfficiency.cxx:137 AliFMDCorrMergingEfficiency.cxx:138 AliFMDCorrMergingEfficiency.cxx:139 AliFMDCorrMergingEfficiency.cxx:140 AliFMDCorrMergingEfficiency.cxx:141 AliFMDCorrMergingEfficiency.cxx:142 AliFMDCorrMergingEfficiency.cxx:143 AliFMDCorrMergingEfficiency.cxx:144 AliFMDCorrMergingEfficiency.cxx:145 AliFMDCorrMergingEfficiency.cxx:146 AliFMDCorrMergingEfficiency.cxx:147 AliFMDCorrMergingEfficiency.cxx:148 AliFMDCorrMergingEfficiency.cxx:149 AliFMDCorrMergingEfficiency.cxx:150 AliFMDCorrMergingEfficiency.cxx:151 AliFMDCorrMergingEfficiency.cxx:152 AliFMDCorrMergingEfficiency.cxx:153 AliFMDCorrMergingEfficiency.cxx:154 AliFMDCorrMergingEfficiency.cxx:155 AliFMDCorrMergingEfficiency.cxx:156 AliFMDCorrMergingEfficiency.cxx:157 AliFMDCorrMergingEfficiency.cxx:158 AliFMDCorrMergingEfficiency.cxx:159 AliFMDCorrMergingEfficiency.cxx:160 AliFMDCorrMergingEfficiency.cxx:161 AliFMDCorrMergingEfficiency.cxx:162 AliFMDCorrMergingEfficiency.cxx:163 AliFMDCorrMergingEfficiency.cxx:164 AliFMDCorrMergingEfficiency.cxx:165 AliFMDCorrMergingEfficiency.cxx:166 AliFMDCorrMergingEfficiency.cxx:167 AliFMDCorrMergingEfficiency.cxx:168 AliFMDCorrMergingEfficiency.cxx:169 AliFMDCorrMergingEfficiency.cxx:170 AliFMDCorrMergingEfficiency.cxx:171 AliFMDCorrMergingEfficiency.cxx:172 AliFMDCorrMergingEfficiency.cxx:173 AliFMDCorrMergingEfficiency.cxx:174 AliFMDCorrMergingEfficiency.cxx:175 AliFMDCorrMergingEfficiency.cxx:176 AliFMDCorrMergingEfficiency.cxx:177 AliFMDCorrMergingEfficiency.cxx:178 AliFMDCorrMergingEfficiency.cxx:179 AliFMDCorrMergingEfficiency.cxx:180 AliFMDCorrMergingEfficiency.cxx:181 AliFMDCorrMergingEfficiency.cxx:182 AliFMDCorrMergingEfficiency.cxx:183 AliFMDCorrMergingEfficiency.cxx:184 AliFMDCorrMergingEfficiency.cxx:185 AliFMDCorrMergingEfficiency.cxx:186 AliFMDCorrMergingEfficiency.cxx:187 AliFMDCorrMergingEfficiency.cxx:188 AliFMDCorrMergingEfficiency.cxx:189 AliFMDCorrMergingEfficiency.cxx:190 AliFMDCorrMergingEfficiency.cxx:191 AliFMDCorrMergingEfficiency.cxx:192 AliFMDCorrMergingEfficiency.cxx:193 AliFMDCorrMergingEfficiency.cxx:194 AliFMDCorrMergingEfficiency.cxx:195 AliFMDCorrMergingEfficiency.cxx:196 AliFMDCorrMergingEfficiency.cxx:197 AliFMDCorrMergingEfficiency.cxx:198 AliFMDCorrMergingEfficiency.cxx:199 AliFMDCorrMergingEfficiency.cxx:200 AliFMDCorrMergingEfficiency.cxx:201 AliFMDCorrMergingEfficiency.cxx:202 AliFMDCorrMergingEfficiency.cxx:203 AliFMDCorrMergingEfficiency.cxx:204 AliFMDCorrMergingEfficiency.cxx:205 AliFMDCorrMergingEfficiency.cxx:206 AliFMDCorrMergingEfficiency.cxx:207 AliFMDCorrMergingEfficiency.cxx:208 AliFMDCorrMergingEfficiency.cxx:209 AliFMDCorrMergingEfficiency.cxx:210 AliFMDCorrMergingEfficiency.cxx:211 AliFMDCorrMergingEfficiency.cxx:212 AliFMDCorrMergingEfficiency.cxx:213 AliFMDCorrMergingEfficiency.cxx:214 AliFMDCorrMergingEfficiency.cxx:215 AliFMDCorrMergingEfficiency.cxx:216 AliFMDCorrMergingEfficiency.cxx:217 AliFMDCorrMergingEfficiency.cxx:218 AliFMDCorrMergingEfficiency.cxx:219 AliFMDCorrMergingEfficiency.cxx:220 AliFMDCorrMergingEfficiency.cxx:221 AliFMDCorrMergingEfficiency.cxx:222 AliFMDCorrMergingEfficiency.cxx:223 AliFMDCorrMergingEfficiency.cxx:224 AliFMDCorrMergingEfficiency.cxx:225 AliFMDCorrMergingEfficiency.cxx:226 AliFMDCorrMergingEfficiency.cxx:227 AliFMDCorrMergingEfficiency.cxx:228 AliFMDCorrMergingEfficiency.cxx:229 AliFMDCorrMergingEfficiency.cxx:230 AliFMDCorrMergingEfficiency.cxx:231 AliFMDCorrMergingEfficiency.cxx:232 AliFMDCorrMergingEfficiency.cxx:233 AliFMDCorrMergingEfficiency.cxx:234 AliFMDCorrMergingEfficiency.cxx:235 AliFMDCorrMergingEfficiency.cxx:236 AliFMDCorrMergingEfficiency.cxx:237 AliFMDCorrMergingEfficiency.cxx:238 AliFMDCorrMergingEfficiency.cxx:239 AliFMDCorrMergingEfficiency.cxx:240 AliFMDCorrMergingEfficiency.cxx:241 AliFMDCorrMergingEfficiency.cxx:242 AliFMDCorrMergingEfficiency.cxx:243 AliFMDCorrMergingEfficiency.cxx:244 AliFMDCorrMergingEfficiency.cxx:245 AliFMDCorrMergingEfficiency.cxx:246 AliFMDCorrMergingEfficiency.cxx:247 AliFMDCorrMergingEfficiency.cxx:248 AliFMDCorrMergingEfficiency.cxx:249 AliFMDCorrMergingEfficiency.cxx:250 AliFMDCorrMergingEfficiency.cxx:251 AliFMDCorrMergingEfficiency.cxx:252 AliFMDCorrMergingEfficiency.cxx:253 AliFMDCorrMergingEfficiency.cxx:254 AliFMDCorrMergingEfficiency.cxx:255 AliFMDCorrMergingEfficiency.cxx:256 AliFMDCorrMergingEfficiency.cxx:257 AliFMDCorrMergingEfficiency.cxx:258 AliFMDCorrMergingEfficiency.cxx:259 AliFMDCorrMergingEfficiency.cxx:260 AliFMDCorrMergingEfficiency.cxx:261 AliFMDCorrMergingEfficiency.cxx:262 AliFMDCorrMergingEfficiency.cxx:263 AliFMDCorrMergingEfficiency.cxx:264 AliFMDCorrMergingEfficiency.cxx:265 AliFMDCorrMergingEfficiency.cxx:266 AliFMDCorrMergingEfficiency.cxx:267 AliFMDCorrMergingEfficiency.cxx:268 AliFMDCorrMergingEfficiency.cxx:269 AliFMDCorrMergingEfficiency.cxx:270 AliFMDCorrMergingEfficiency.cxx:271 AliFMDCorrMergingEfficiency.cxx:272 AliFMDCorrMergingEfficiency.cxx:273 AliFMDCorrMergingEfficiency.cxx:274 AliFMDCorrMergingEfficiency.cxx:275 AliFMDCorrMergingEfficiency.cxx:276 AliFMDCorrMergingEfficiency.cxx:277 AliFMDCorrMergingEfficiency.cxx:278 AliFMDCorrMergingEfficiency.cxx:279 AliFMDCorrMergingEfficiency.cxx:280 AliFMDCorrMergingEfficiency.cxx:281 AliFMDCorrMergingEfficiency.cxx:282 AliFMDCorrMergingEfficiency.cxx:283 AliFMDCorrMergingEfficiency.cxx:284 AliFMDCorrMergingEfficiency.cxx:285 AliFMDCorrMergingEfficiency.cxx:286 AliFMDCorrMergingEfficiency.cxx:287 AliFMDCorrMergingEfficiency.cxx:288 AliFMDCorrMergingEfficiency.cxx:289 AliFMDCorrMergingEfficiency.cxx:290 AliFMDCorrMergingEfficiency.cxx:291 AliFMDCorrMergingEfficiency.cxx:292 AliFMDCorrMergingEfficiency.cxx:293 AliFMDCorrMergingEfficiency.cxx:294 AliFMDCorrMergingEfficiency.cxx:295 AliFMDCorrMergingEfficiency.cxx:296 AliFMDCorrMergingEfficiency.cxx:297 AliFMDCorrMergingEfficiency.cxx:298 AliFMDCorrMergingEfficiency.cxx:299 AliFMDCorrMergingEfficiency.cxx:300 AliFMDCorrMergingEfficiency.cxx:301 AliFMDCorrMergingEfficiency.cxx:302 AliFMDCorrMergingEfficiency.cxx:303 AliFMDCorrMergingEfficiency.cxx:304 AliFMDCorrMergingEfficiency.cxx:305 AliFMDCorrMergingEfficiency.cxx:306 AliFMDCorrMergingEfficiency.cxx:307 AliFMDCorrMergingEfficiency.cxx:308 AliFMDCorrMergingEfficiency.cxx:309 AliFMDCorrMergingEfficiency.cxx:310 AliFMDCorrMergingEfficiency.cxx:311 AliFMDCorrMergingEfficiency.cxx:312 AliFMDCorrMergingEfficiency.cxx:313 AliFMDCorrMergingEfficiency.cxx:314 AliFMDCorrMergingEfficiency.cxx:315 AliFMDCorrMergingEfficiency.cxx:316 AliFMDCorrMergingEfficiency.cxx:317 AliFMDCorrMergingEfficiency.cxx:318 AliFMDCorrMergingEfficiency.cxx:319 AliFMDCorrMergingEfficiency.cxx:320 AliFMDCorrMergingEfficiency.cxx:321