#include "AliCentralCorrSecondaryMap.h"
#include <TBrowser.h>
#include <TH2D.h>
#include <AliLog.h>
#include <iostream>
AliCentralCorrSecondaryMap::AliCentralCorrSecondaryMap()
: fArray(),
fVertexAxis(0,0,0)
{
fArray.SetOwner(kTRUE);
fArray.SetName("rings");
fVertexAxis.SetName("vtxAxis");
fVertexAxis.SetTitle("v_{z} [cm]");
}
AliCentralCorrSecondaryMap::AliCentralCorrSecondaryMap(const
AliCentralCorrSecondaryMap& o)
: TObject(o),
fArray(o.fArray),
fVertexAxis(o.fVertexAxis.GetNbins(), o.fVertexAxis.GetXmin(),
o.fVertexAxis.GetXmax())
{
fVertexAxis.SetName("vtxAxis");
fVertexAxis.SetTitle("v_{z} [cm]");
}
AliCentralCorrSecondaryMap::~AliCentralCorrSecondaryMap()
{
fArray.Clear();
}
AliCentralCorrSecondaryMap&
AliCentralCorrSecondaryMap::operator=(const AliCentralCorrSecondaryMap& o)
{
fArray = o.fArray;
SetVertexAxis(o.fVertexAxis);
return *this;
}
TH2D*
AliCentralCorrSecondaryMap::GetCorrection(Double_t v) const
{
Int_t b = FindVertexBin(v);
if (b <= 0) return 0;
return GetCorrection(UShort_t(b));
}
TH2D*
AliCentralCorrSecondaryMap::GetCorrection(UShort_t b) const
{
TObject* o = fArray.At(b-1);
if (!o) {
AliWarning(Form("No dead channels map found for SPD in vertex bin %d",
b));
return 0;
}
return static_cast<TH2D*>(o);
}
Int_t
AliCentralCorrSecondaryMap::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;
}
Bool_t
AliCentralCorrSecondaryMap::SetCorrection(UShort_t b, TH2D* h)
{
if (b <= 0 || b > fVertexAxis.GetNbins()) {
AliWarning(Form("Vertex bin %3d out of range [1,%3d]",
b, fVertexAxis.GetNbins()));
return false;
}
h->SetName(Form("sec_vtxbin%03d", b));
h->SetTitle(Form("Secondary correction [%+5.1f<v_{z}<%+5.1f]",
fVertexAxis.GetBinLowEdge(b),
fVertexAxis.GetBinUpEdge(b)));
h->SetXTitle("#eta");
h->SetYTitle("#varphi [radians]");
h->SetZTitle("dN_{ch}/d#eta / #sum_{i} N_{ch,i}");
h->SetFillStyle(3001);
h->SetFillColor(kRed+1);
h->SetMarkerStyle(20);
h->SetMarkerColor(kRed+1);
h->SetDirectory(0);
h->SetStats(0);
fArray.AddAtAndExpand(h, b-1);
return kTRUE;
}
Bool_t
AliCentralCorrSecondaryMap::SetCorrection(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( UShort_t(b), h);
}
void
AliCentralCorrSecondaryMap::Browse(TBrowser* b)
{
b->Add(&fArray);
b->Add(&fVertexAxis);
}
void
AliCentralCorrSecondaryMap::Print(Option_t* ) const
{
std::cout << " SecondaryMap correction\n"
<< " # of vertex bins: " << fVertexAxis.GetNbins() << "\n"
<< " Vertex range: [" << fVertexAxis.GetXmin()
<< "," << fVertexAxis.GetXmax() << "]\n"
<< " Histograms:\n"
<< " ";
TIter next(&fArray);
TObject* o = 0;
while ((o = next())) std::cout << o->GetName() << " ";
std::cout << std::endl;
}
AliCentralCorrSecondaryMap.cxx:1 AliCentralCorrSecondaryMap.cxx:2 AliCentralCorrSecondaryMap.cxx:3 AliCentralCorrSecondaryMap.cxx:4 AliCentralCorrSecondaryMap.cxx:5 AliCentralCorrSecondaryMap.cxx:6 AliCentralCorrSecondaryMap.cxx:7 AliCentralCorrSecondaryMap.cxx:8 AliCentralCorrSecondaryMap.cxx:9 AliCentralCorrSecondaryMap.cxx:10 AliCentralCorrSecondaryMap.cxx:11 AliCentralCorrSecondaryMap.cxx:12 AliCentralCorrSecondaryMap.cxx:13 AliCentralCorrSecondaryMap.cxx:14 AliCentralCorrSecondaryMap.cxx:15 AliCentralCorrSecondaryMap.cxx:16 AliCentralCorrSecondaryMap.cxx:17 AliCentralCorrSecondaryMap.cxx:18 AliCentralCorrSecondaryMap.cxx:19 AliCentralCorrSecondaryMap.cxx:20 AliCentralCorrSecondaryMap.cxx:21 AliCentralCorrSecondaryMap.cxx:22 AliCentralCorrSecondaryMap.cxx:23 AliCentralCorrSecondaryMap.cxx:24 AliCentralCorrSecondaryMap.cxx:25 AliCentralCorrSecondaryMap.cxx:26 AliCentralCorrSecondaryMap.cxx:27 AliCentralCorrSecondaryMap.cxx:28 AliCentralCorrSecondaryMap.cxx:29 AliCentralCorrSecondaryMap.cxx:30 AliCentralCorrSecondaryMap.cxx:31 AliCentralCorrSecondaryMap.cxx:32 AliCentralCorrSecondaryMap.cxx:33 AliCentralCorrSecondaryMap.cxx:34 AliCentralCorrSecondaryMap.cxx:35 AliCentralCorrSecondaryMap.cxx:36 AliCentralCorrSecondaryMap.cxx:37 AliCentralCorrSecondaryMap.cxx:38 AliCentralCorrSecondaryMap.cxx:39 AliCentralCorrSecondaryMap.cxx:40 AliCentralCorrSecondaryMap.cxx:41 AliCentralCorrSecondaryMap.cxx:42 AliCentralCorrSecondaryMap.cxx:43 AliCentralCorrSecondaryMap.cxx:44 AliCentralCorrSecondaryMap.cxx:45 AliCentralCorrSecondaryMap.cxx:46 AliCentralCorrSecondaryMap.cxx:47 AliCentralCorrSecondaryMap.cxx:48 AliCentralCorrSecondaryMap.cxx:49 AliCentralCorrSecondaryMap.cxx:50 AliCentralCorrSecondaryMap.cxx:51 AliCentralCorrSecondaryMap.cxx:52 AliCentralCorrSecondaryMap.cxx:53 AliCentralCorrSecondaryMap.cxx:54 AliCentralCorrSecondaryMap.cxx:55 AliCentralCorrSecondaryMap.cxx:56 AliCentralCorrSecondaryMap.cxx:57 AliCentralCorrSecondaryMap.cxx:58 AliCentralCorrSecondaryMap.cxx:59 AliCentralCorrSecondaryMap.cxx:60 AliCentralCorrSecondaryMap.cxx:61 AliCentralCorrSecondaryMap.cxx:62 AliCentralCorrSecondaryMap.cxx:63 AliCentralCorrSecondaryMap.cxx:64 AliCentralCorrSecondaryMap.cxx:65 AliCentralCorrSecondaryMap.cxx:66 AliCentralCorrSecondaryMap.cxx:67 AliCentralCorrSecondaryMap.cxx:68 AliCentralCorrSecondaryMap.cxx:69 AliCentralCorrSecondaryMap.cxx:70 AliCentralCorrSecondaryMap.cxx:71 AliCentralCorrSecondaryMap.cxx:72 AliCentralCorrSecondaryMap.cxx:73 AliCentralCorrSecondaryMap.cxx:74 AliCentralCorrSecondaryMap.cxx:75 AliCentralCorrSecondaryMap.cxx:76 AliCentralCorrSecondaryMap.cxx:77 AliCentralCorrSecondaryMap.cxx:78 AliCentralCorrSecondaryMap.cxx:79 AliCentralCorrSecondaryMap.cxx:80 AliCentralCorrSecondaryMap.cxx:81 AliCentralCorrSecondaryMap.cxx:82 AliCentralCorrSecondaryMap.cxx:83 AliCentralCorrSecondaryMap.cxx:84 AliCentralCorrSecondaryMap.cxx:85 AliCentralCorrSecondaryMap.cxx:86 AliCentralCorrSecondaryMap.cxx:87 AliCentralCorrSecondaryMap.cxx:88 AliCentralCorrSecondaryMap.cxx:89 AliCentralCorrSecondaryMap.cxx:90 AliCentralCorrSecondaryMap.cxx:91 AliCentralCorrSecondaryMap.cxx:92 AliCentralCorrSecondaryMap.cxx:93 AliCentralCorrSecondaryMap.cxx:94 AliCentralCorrSecondaryMap.cxx:95 AliCentralCorrSecondaryMap.cxx:96 AliCentralCorrSecondaryMap.cxx:97 AliCentralCorrSecondaryMap.cxx:98 AliCentralCorrSecondaryMap.cxx:99 AliCentralCorrSecondaryMap.cxx:100 AliCentralCorrSecondaryMap.cxx:101 AliCentralCorrSecondaryMap.cxx:102 AliCentralCorrSecondaryMap.cxx:103 AliCentralCorrSecondaryMap.cxx:104 AliCentralCorrSecondaryMap.cxx:105 AliCentralCorrSecondaryMap.cxx:106 AliCentralCorrSecondaryMap.cxx:107 AliCentralCorrSecondaryMap.cxx:108 AliCentralCorrSecondaryMap.cxx:109 AliCentralCorrSecondaryMap.cxx:110 AliCentralCorrSecondaryMap.cxx:111 AliCentralCorrSecondaryMap.cxx:112 AliCentralCorrSecondaryMap.cxx:113 AliCentralCorrSecondaryMap.cxx:114 AliCentralCorrSecondaryMap.cxx:115 AliCentralCorrSecondaryMap.cxx:116 AliCentralCorrSecondaryMap.cxx:117 AliCentralCorrSecondaryMap.cxx:118 AliCentralCorrSecondaryMap.cxx:119 AliCentralCorrSecondaryMap.cxx:120 AliCentralCorrSecondaryMap.cxx:121 AliCentralCorrSecondaryMap.cxx:122 AliCentralCorrSecondaryMap.cxx:123 AliCentralCorrSecondaryMap.cxx:124 AliCentralCorrSecondaryMap.cxx:125 AliCentralCorrSecondaryMap.cxx:126 AliCentralCorrSecondaryMap.cxx:127 AliCentralCorrSecondaryMap.cxx:128 AliCentralCorrSecondaryMap.cxx:129 AliCentralCorrSecondaryMap.cxx:130 AliCentralCorrSecondaryMap.cxx:131 AliCentralCorrSecondaryMap.cxx:132 AliCentralCorrSecondaryMap.cxx:133 AliCentralCorrSecondaryMap.cxx:134 AliCentralCorrSecondaryMap.cxx:135 AliCentralCorrSecondaryMap.cxx:136 AliCentralCorrSecondaryMap.cxx:137 AliCentralCorrSecondaryMap.cxx:138 AliCentralCorrSecondaryMap.cxx:139 AliCentralCorrSecondaryMap.cxx:140 AliCentralCorrSecondaryMap.cxx:141 AliCentralCorrSecondaryMap.cxx:142 AliCentralCorrSecondaryMap.cxx:143 AliCentralCorrSecondaryMap.cxx:144 AliCentralCorrSecondaryMap.cxx:145 AliCentralCorrSecondaryMap.cxx:146 AliCentralCorrSecondaryMap.cxx:147 AliCentralCorrSecondaryMap.cxx:148 AliCentralCorrSecondaryMap.cxx:149 AliCentralCorrSecondaryMap.cxx:150 AliCentralCorrSecondaryMap.cxx:151 AliCentralCorrSecondaryMap.cxx:152 AliCentralCorrSecondaryMap.cxx:153 AliCentralCorrSecondaryMap.cxx:154 AliCentralCorrSecondaryMap.cxx:155 AliCentralCorrSecondaryMap.cxx:156 AliCentralCorrSecondaryMap.cxx:157 AliCentralCorrSecondaryMap.cxx:158 AliCentralCorrSecondaryMap.cxx:159 AliCentralCorrSecondaryMap.cxx:160 AliCentralCorrSecondaryMap.cxx:161 AliCentralCorrSecondaryMap.cxx:162 AliCentralCorrSecondaryMap.cxx:163 AliCentralCorrSecondaryMap.cxx:164 AliCentralCorrSecondaryMap.cxx:165 AliCentralCorrSecondaryMap.cxx:166 AliCentralCorrSecondaryMap.cxx:167 AliCentralCorrSecondaryMap.cxx:168 AliCentralCorrSecondaryMap.cxx:169 AliCentralCorrSecondaryMap.cxx:170 AliCentralCorrSecondaryMap.cxx:171 AliCentralCorrSecondaryMap.cxx:172 AliCentralCorrSecondaryMap.cxx:173 AliCentralCorrSecondaryMap.cxx:174 AliCentralCorrSecondaryMap.cxx:175 AliCentralCorrSecondaryMap.cxx:176 AliCentralCorrSecondaryMap.cxx:177 AliCentralCorrSecondaryMap.cxx:178 AliCentralCorrSecondaryMap.cxx:179 AliCentralCorrSecondaryMap.cxx:180 AliCentralCorrSecondaryMap.cxx:181 AliCentralCorrSecondaryMap.cxx:182 AliCentralCorrSecondaryMap.cxx:183 AliCentralCorrSecondaryMap.cxx:184 AliCentralCorrSecondaryMap.cxx:185 AliCentralCorrSecondaryMap.cxx:186 AliCentralCorrSecondaryMap.cxx:187 AliCentralCorrSecondaryMap.cxx:188 AliCentralCorrSecondaryMap.cxx:189 AliCentralCorrSecondaryMap.cxx:190 AliCentralCorrSecondaryMap.cxx:191 AliCentralCorrSecondaryMap.cxx:192 AliCentralCorrSecondaryMap.cxx:193 AliCentralCorrSecondaryMap.cxx:194 AliCentralCorrSecondaryMap.cxx:195 AliCentralCorrSecondaryMap.cxx:196 AliCentralCorrSecondaryMap.cxx:197 AliCentralCorrSecondaryMap.cxx:198 AliCentralCorrSecondaryMap.cxx:199 AliCentralCorrSecondaryMap.cxx:200 AliCentralCorrSecondaryMap.cxx:201 AliCentralCorrSecondaryMap.cxx:202 AliCentralCorrSecondaryMap.cxx:203 AliCentralCorrSecondaryMap.cxx:204 AliCentralCorrSecondaryMap.cxx:205 AliCentralCorrSecondaryMap.cxx:206 AliCentralCorrSecondaryMap.cxx:207 AliCentralCorrSecondaryMap.cxx:208 AliCentralCorrSecondaryMap.cxx:209 AliCentralCorrSecondaryMap.cxx:210 AliCentralCorrSecondaryMap.cxx:211 AliCentralCorrSecondaryMap.cxx:212 AliCentralCorrSecondaryMap.cxx:213 AliCentralCorrSecondaryMap.cxx:214 AliCentralCorrSecondaryMap.cxx:215 AliCentralCorrSecondaryMap.cxx:216 AliCentralCorrSecondaryMap.cxx:217 AliCentralCorrSecondaryMap.cxx:218 AliCentralCorrSecondaryMap.cxx:219 AliCentralCorrSecondaryMap.cxx:220 AliCentralCorrSecondaryMap.cxx:221 AliCentralCorrSecondaryMap.cxx:222 AliCentralCorrSecondaryMap.cxx:223 AliCentralCorrSecondaryMap.cxx:224 AliCentralCorrSecondaryMap.cxx:225 AliCentralCorrSecondaryMap.cxx:226 AliCentralCorrSecondaryMap.cxx:227 AliCentralCorrSecondaryMap.cxx:228 AliCentralCorrSecondaryMap.cxx:229 AliCentralCorrSecondaryMap.cxx:230 AliCentralCorrSecondaryMap.cxx:231 AliCentralCorrSecondaryMap.cxx:232 AliCentralCorrSecondaryMap.cxx:233 AliCentralCorrSecondaryMap.cxx:234 AliCentralCorrSecondaryMap.cxx:235 AliCentralCorrSecondaryMap.cxx:236 AliCentralCorrSecondaryMap.cxx:237 AliCentralCorrSecondaryMap.cxx:238 AliCentralCorrSecondaryMap.cxx:239 AliCentralCorrSecondaryMap.cxx:240 AliCentralCorrSecondaryMap.cxx:241 AliCentralCorrSecondaryMap.cxx:242 AliCentralCorrSecondaryMap.cxx:243 AliCentralCorrSecondaryMap.cxx:244