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