#include "AliAnalysisMuMuGraphUtil.h"
#include "TAxis.h"
#include "TCanvas.h"
#include "TPad.h"
#include "TGraphErrors.h"
#include "TString.h"
#include <vector>
#include <map>
#include "TMath.h"
#include "TObjArray.h"
#include "AliLog.h"
#include "TLegend.h"
#include "TH2F.h"
#include "TStyle.h"
#include "AliAnalysisTriggerScalers.h"
#include <set>
#include "AliAnalysisMuMuResult.h"
ClassImp(AliAnalysisMuMuGraphUtil)
AliAnalysisMuMuGraphUtil::AliAnalysisMuMuGraphUtil(const char* ocdbpath) : TObject(),
fOCDBPath(ocdbpath),
fAttLine(),
fAttMarker(),
fAttFill(),
fAttXaxis(),
fAttYaxis(),
fDrawOptions(),
fShouldDrawPeriods(kFALSE)
{
DefaultStyle();
}
TGraphErrors* AliAnalysisMuMuGraphUtil::Combine(TObjArray& graphs, Bool_t compact)
{
std::map<int, std::vector<double> > values;
std::map<int, std::vector<double> >::const_iterator it;
TIter next(&graphs);
TGraph* g;
while ( ( g = static_cast<TGraph*>(next())) )
{
TGraphErrors* ge = dynamic_cast<TGraphErrors*>(g);
for ( Int_t i = 0; i < g->GetN(); ++i )
{
Int_t runNumber = GetRunNumber(*g,i);
it = values.find(runNumber);
if ( it != values.end() )
{
AliErrorClass(Form("Already got values for run %d !",runNumber));
StdoutToAliErrorClass(graphs.Print(););
return 0x0;
}
std::vector<double> quartet;
quartet.push_back(runNumber);
quartet.push_back(g->GetY()[i]);
if ( ge )
{
quartet.push_back(ge->GetEX()[i]);
quartet.push_back(ge->GetEY()[i]);
}
else
{
quartet.push_back(0.0);
quartet.push_back(0.0);
}
values.insert( std::make_pair(runNumber,quartet));
}
}
TGraphErrors* rv(0x0);
if ( values.size() )
{
std::vector<double> vx;
std::vector<double> vy;
std::vector<double> vxerr;
std::vector<double> vyerr;
for ( it = values.begin(); it != values.end(); ++it )
{
const std::vector<double>& q = it->second;
vx.push_back(q[0]);
vy.push_back(q[1]);
vxerr.push_back(q[2]);
vyerr.push_back(q[3]);
}
rv = new TGraphErrors(values.size(),&vx[0],&vy[0],&vxerr[0],&vyerr[0]);
rv->GetXaxis()->SetNoExponent();
g = static_cast<TGraph*>(graphs.At(0));
rv->SetName(g->GetName());
rv->SetTitle(g->GetTitle());
if ( compact || IsCompact(*g) )
{
Compact(*rv);
}
}
return rv;
}
void AliAnalysisMuMuGraphUtil::DefaultStyle()
{
Int_t colors[] = { 1, kGray+1, 4, 2, 6 };
for ( Int_t i = 0; i < 5; ++i )
{
Int_t color = colors[i];
fAttLine.push_back(TAttLine(color,1,1));
fAttFill.push_back(TAttFill(color,1001));
fAttMarker.push_back(TAttMarker(color,20+i,1));
fAttXaxis.push_back(TAttAxis());
TAttAxis a;
a.ResetAttAxis();
a.SetLabelColor(color);
a.SetTitleColor(color);
fAttYaxis.push_back(a);
fDrawOptions.push_back("LP");
}
}
TCanvas* AliAnalysisMuMuGraphUtil::DrawWith2Scales(TGraph& g1, TGraph& g2, const char* canvasName)
{
TCanvas* c1 = new TCanvas(canvasName,canvasName);
c1->Draw();
TPad* pad1 = new TPad("pad1","",0,0,1,1);
TPad* pad2 = new TPad("pad2","",0,0,1,1);
g2.GetYaxis()->SetTitle(g2.GetTitle());
g1.GetYaxis()->SetTitle(g1.GetTitle());
pad1->SetFillStyle(4000);
pad1->SetFrameFillStyle(0);
pad2->Draw();
pad2->cd();
StyleGraph(g2,1);
g2.Draw("abxy+");
pad1->Draw();
pad1->cd();
StyleGraph(g1,0);
g1.Draw("alp");
return c1;
}
void AliAnalysisMuMuGraphUtil::Compact(TGraph& g)
{
if ( !g.GetN() ) return;
Double_t x,y;
std::vector<int> runs;
std::vector<double> bins;
Int_t i(0);
for ( i = 0; i < g.GetN(); ++i )
{
g.GetPoint(i,x,y);
runs.push_back(TMath::Nint(x));
bins.push_back(i);
g.SetPoint(i,i+0.5,y);
}
bins.push_back(i);
TAxis* axis = g.GetXaxis();
axis->Set(g.GetN(),&bins[0]);
for ( std::vector<int>::size_type j = 0; j < runs.size(); ++j )
{
axis->SetBinLabel(j+1,TString::Format("%d",runs[j]).Data());
}
axis->LabelsOption("v");
}
Int_t AliAnalysisMuMuGraphUtil::GetRunNumber(const TGraph& g, Int_t i)
{
Int_t runNumber = TMath::Nint(g.GetX()[i]);
TString runLabel = g.GetXaxis()->GetBinLabel(i+1);
if ( runLabel.Length() )
{
runNumber = runLabel.Atoi();
}
return runNumber;
}
void AliAnalysisMuMuGraphUtil::GetRuns(std::set<int>& runs, TGraph& graph) const
{
for ( Int_t i = 0; i < graph.GetN(); ++i )
{
runs.insert(GetRunNumber(graph,i));
}
}
void AliAnalysisMuMuGraphUtil::GetYMinAndMax(TGraph& graph, Double_t& ymin, Double_t& ymax)
{
Double_t x,y;
for ( Int_t i = 0; i < graph.GetN(); ++i )
{
graph.GetPoint(i,x,y);
ymin = TMath::Min(ymin,y);
ymax = TMath::Max(ymax,y);
}
}
Bool_t AliAnalysisMuMuGraphUtil::IsCompact(TGraph& g)
{
Double_t delta(0.0);
for ( Int_t i = 1; i < g.GetN(); ++i )
{
delta = TMath::Max(delta,g.GetX()[i] - g.GetX()[i-1]);
}
Bool_t hasLabels(kFALSE);
for ( Int_t i = 1; ( i <= g.GetN() ) && ( !hasLabels ); ++i )
{
TString label(g.GetXaxis()->GetBinLabel(i));
if ( label.Length() ) hasLabels = kTRUE;
}
return hasLabels && delta == 1.0;
}
void AliAnalysisMuMuGraphUtil::PlotSameWithLegend(TObjArray& a,
Double_t ymin, Double_t ymax) const
{
if (!gPad) new TCanvas;
Double_t xmin = TMath::Limits<Double_t>::Max();
Double_t xmax = TMath::Limits<Double_t>::Min();
TIter next(&a);
TGraph* g;
while ( ( g = static_cast<TGraph*>(next())))
{
xmin = TMath::Min(xmin,g->GetX()[0]);
xmax = TMath::Max(xmax,g->GetX()[g->GetN()-1]);
}
TH2* hframe = new TH2F("hframe","hframe",100,xmin,xmax,100,ymin,ymax);
gStyle->SetOptTitle(0);
gStyle->SetOptStat(0);
hframe->GetXaxis()->SetNoExponent();
hframe->Draw();
if ( fShouldDrawPeriods )
{
std::set<int> runs;
next.Reset();
while ( ( g = static_cast<TGraph*>(next())))
{
GetRuns(runs,*g);
}
AliAnalysisTriggerScalers ts(runs,fOCDBPath);
ts.DrawPeriods(ymin,ymax,kGray);
hframe->Draw("axissame");
}
next.Reset();
Int_t i(0);
TLegend* l = new TLegend(0.5,0.7,0.9,0.9);
l->SetFillColor(0);
while ( ( g = static_cast<TGraph*>(next())))
{
StyleGraph(*g,i);
g->Draw(fDrawOptions[i].c_str());
++i;
l->AddEntry(g,g->GetName(),fDrawOptions[0].c_str());
}
l->Draw();
}
TGraph* AliAnalysisMuMuGraphUtil::RelDif(TGraph& ga, TGraph& gb)
{
std::vector<double> vx;
std::vector<double> vxerr;
std::vector<double> vy;
std::vector<double> vyerr;
for ( Int_t i = 0; i < ga.GetN(); ++i )
{
Double_t xa,xb,ya,yb;
ga.GetPoint(i,xa,ya);
gb.GetPoint(i,xb,yb);
if ( xa != xb )
{
AliErrorClass(Form("Incompatible graphs : got xa=%e and xb=%e",xa,xb));
return 0x0;
}
Double_t newvalue = 0.0;
if ( TMath::Abs(xa) > 1E-12 )
{
newvalue = 100.0*( yb - ya ) / ya;
}
Double_t yerr = 0.0;
if ( dynamic_cast<TGraphErrors*>(&ga) && dynamic_cast<TGraphErrors*>(&gb) )
{
yerr = newvalue*AliAnalysisMuMuResult::ErrorAB(ya,ga.GetEY()[i],
yb,gb.GetEY()[i]);
}
vx.push_back(xa);
vxerr.push_back(0.5);
vy.push_back(newvalue);
vyerr.push_back(yerr);
}
return new TGraphErrors(vx.size(),&vx[0],&vy[0],&vxerr[0],&vyerr[0]);
}
void AliAnalysisMuMuGraphUtil::StyleGraph(TGraph& g, UInt_t index) const
{
if ( index >= fAttFill.size() ) index = 0;
static_cast<TAttFill&>(g) = fAttFill[index];
static_cast<TAttLine&>(g) = fAttLine[index];
static_cast<TAttMarker&>(g) = fAttMarker[index];
g.GetYaxis()->SetLabelColor(fAttYaxis[index].GetLabelColor());
g.GetYaxis()->SetTitleColor(fAttYaxis[index].GetTitleColor());
}
void AliAnalysisMuMuGraphUtil::UnCompact(TGraph& g)
{
if ( !g.GetN() ) return;
std::vector<double> runs;
Int_t runNumber(-1);
for ( Int_t i = 0; i < g.GetN(); ++i )
{
runNumber = TString(g.GetXaxis()->GetBinLabel(i+1)).Atoi();
runs.push_back(runNumber*1.0);
}
runs.push_back(runNumber+1);
g.GetXaxis()->Set(g.GetN(),&runs[0]);
for ( Int_t i = 0; i < g.GetN(); ++i )
{
g.SetPoint(i,runs[i],g.GetY()[i]);
}
g.GetXaxis()->SetNoExponent();
}
AliAnalysisMuMuGraphUtil.cxx:1 AliAnalysisMuMuGraphUtil.cxx:2 AliAnalysisMuMuGraphUtil.cxx:3 AliAnalysisMuMuGraphUtil.cxx:4 AliAnalysisMuMuGraphUtil.cxx:5 AliAnalysisMuMuGraphUtil.cxx:6 AliAnalysisMuMuGraphUtil.cxx:7 AliAnalysisMuMuGraphUtil.cxx:8 AliAnalysisMuMuGraphUtil.cxx:9 AliAnalysisMuMuGraphUtil.cxx:10 AliAnalysisMuMuGraphUtil.cxx:11 AliAnalysisMuMuGraphUtil.cxx:12 AliAnalysisMuMuGraphUtil.cxx:13 AliAnalysisMuMuGraphUtil.cxx:14 AliAnalysisMuMuGraphUtil.cxx:15 AliAnalysisMuMuGraphUtil.cxx:16 AliAnalysisMuMuGraphUtil.cxx:17 AliAnalysisMuMuGraphUtil.cxx:18 AliAnalysisMuMuGraphUtil.cxx:19 AliAnalysisMuMuGraphUtil.cxx:20 AliAnalysisMuMuGraphUtil.cxx:21 AliAnalysisMuMuGraphUtil.cxx:22 AliAnalysisMuMuGraphUtil.cxx:23 AliAnalysisMuMuGraphUtil.cxx:24 AliAnalysisMuMuGraphUtil.cxx:25 AliAnalysisMuMuGraphUtil.cxx:26 AliAnalysisMuMuGraphUtil.cxx:27 AliAnalysisMuMuGraphUtil.cxx:28 AliAnalysisMuMuGraphUtil.cxx:29 AliAnalysisMuMuGraphUtil.cxx:30 AliAnalysisMuMuGraphUtil.cxx:31 AliAnalysisMuMuGraphUtil.cxx:32 AliAnalysisMuMuGraphUtil.cxx:33 AliAnalysisMuMuGraphUtil.cxx:34 AliAnalysisMuMuGraphUtil.cxx:35 AliAnalysisMuMuGraphUtil.cxx:36 AliAnalysisMuMuGraphUtil.cxx:37 AliAnalysisMuMuGraphUtil.cxx:38 AliAnalysisMuMuGraphUtil.cxx:39 AliAnalysisMuMuGraphUtil.cxx:40 AliAnalysisMuMuGraphUtil.cxx:41 AliAnalysisMuMuGraphUtil.cxx:42 AliAnalysisMuMuGraphUtil.cxx:43 AliAnalysisMuMuGraphUtil.cxx:44 AliAnalysisMuMuGraphUtil.cxx:45 AliAnalysisMuMuGraphUtil.cxx:46 AliAnalysisMuMuGraphUtil.cxx:47 AliAnalysisMuMuGraphUtil.cxx:48 AliAnalysisMuMuGraphUtil.cxx:49 AliAnalysisMuMuGraphUtil.cxx:50 AliAnalysisMuMuGraphUtil.cxx:51 AliAnalysisMuMuGraphUtil.cxx:52 AliAnalysisMuMuGraphUtil.cxx:53 AliAnalysisMuMuGraphUtil.cxx:54 AliAnalysisMuMuGraphUtil.cxx:55 AliAnalysisMuMuGraphUtil.cxx:56 AliAnalysisMuMuGraphUtil.cxx:57 AliAnalysisMuMuGraphUtil.cxx:58 AliAnalysisMuMuGraphUtil.cxx:59 AliAnalysisMuMuGraphUtil.cxx:60 AliAnalysisMuMuGraphUtil.cxx:61 AliAnalysisMuMuGraphUtil.cxx:62 AliAnalysisMuMuGraphUtil.cxx:63 AliAnalysisMuMuGraphUtil.cxx:64 AliAnalysisMuMuGraphUtil.cxx:65 AliAnalysisMuMuGraphUtil.cxx:66 AliAnalysisMuMuGraphUtil.cxx:67 AliAnalysisMuMuGraphUtil.cxx:68 AliAnalysisMuMuGraphUtil.cxx:69 AliAnalysisMuMuGraphUtil.cxx:70 AliAnalysisMuMuGraphUtil.cxx:71 AliAnalysisMuMuGraphUtil.cxx:72 AliAnalysisMuMuGraphUtil.cxx:73 AliAnalysisMuMuGraphUtil.cxx:74 AliAnalysisMuMuGraphUtil.cxx:75 AliAnalysisMuMuGraphUtil.cxx:76 AliAnalysisMuMuGraphUtil.cxx:77 AliAnalysisMuMuGraphUtil.cxx:78 AliAnalysisMuMuGraphUtil.cxx:79 AliAnalysisMuMuGraphUtil.cxx:80 AliAnalysisMuMuGraphUtil.cxx:81 AliAnalysisMuMuGraphUtil.cxx:82 AliAnalysisMuMuGraphUtil.cxx:83 AliAnalysisMuMuGraphUtil.cxx:84 AliAnalysisMuMuGraphUtil.cxx:85 AliAnalysisMuMuGraphUtil.cxx:86 AliAnalysisMuMuGraphUtil.cxx:87 AliAnalysisMuMuGraphUtil.cxx:88 AliAnalysisMuMuGraphUtil.cxx:89 AliAnalysisMuMuGraphUtil.cxx:90 AliAnalysisMuMuGraphUtil.cxx:91 AliAnalysisMuMuGraphUtil.cxx:92 AliAnalysisMuMuGraphUtil.cxx:93 AliAnalysisMuMuGraphUtil.cxx:94 AliAnalysisMuMuGraphUtil.cxx:95 AliAnalysisMuMuGraphUtil.cxx:96 AliAnalysisMuMuGraphUtil.cxx:97 AliAnalysisMuMuGraphUtil.cxx:98 AliAnalysisMuMuGraphUtil.cxx:99 AliAnalysisMuMuGraphUtil.cxx:100 AliAnalysisMuMuGraphUtil.cxx:101 AliAnalysisMuMuGraphUtil.cxx:102 AliAnalysisMuMuGraphUtil.cxx:103 AliAnalysisMuMuGraphUtil.cxx:104 AliAnalysisMuMuGraphUtil.cxx:105 AliAnalysisMuMuGraphUtil.cxx:106 AliAnalysisMuMuGraphUtil.cxx:107 AliAnalysisMuMuGraphUtil.cxx:108 AliAnalysisMuMuGraphUtil.cxx:109 AliAnalysisMuMuGraphUtil.cxx:110 AliAnalysisMuMuGraphUtil.cxx:111 AliAnalysisMuMuGraphUtil.cxx:112 AliAnalysisMuMuGraphUtil.cxx:113 AliAnalysisMuMuGraphUtil.cxx:114 AliAnalysisMuMuGraphUtil.cxx:115 AliAnalysisMuMuGraphUtil.cxx:116 AliAnalysisMuMuGraphUtil.cxx:117 AliAnalysisMuMuGraphUtil.cxx:118 AliAnalysisMuMuGraphUtil.cxx:119 AliAnalysisMuMuGraphUtil.cxx:120 AliAnalysisMuMuGraphUtil.cxx:121 AliAnalysisMuMuGraphUtil.cxx:122 AliAnalysisMuMuGraphUtil.cxx:123 AliAnalysisMuMuGraphUtil.cxx:124 AliAnalysisMuMuGraphUtil.cxx:125 AliAnalysisMuMuGraphUtil.cxx:126 AliAnalysisMuMuGraphUtil.cxx:127 AliAnalysisMuMuGraphUtil.cxx:128 AliAnalysisMuMuGraphUtil.cxx:129 AliAnalysisMuMuGraphUtil.cxx:130 AliAnalysisMuMuGraphUtil.cxx:131 AliAnalysisMuMuGraphUtil.cxx:132 AliAnalysisMuMuGraphUtil.cxx:133 AliAnalysisMuMuGraphUtil.cxx:134 AliAnalysisMuMuGraphUtil.cxx:135 AliAnalysisMuMuGraphUtil.cxx:136 AliAnalysisMuMuGraphUtil.cxx:137 AliAnalysisMuMuGraphUtil.cxx:138 AliAnalysisMuMuGraphUtil.cxx:139 AliAnalysisMuMuGraphUtil.cxx:140 AliAnalysisMuMuGraphUtil.cxx:141 AliAnalysisMuMuGraphUtil.cxx:142 AliAnalysisMuMuGraphUtil.cxx:143 AliAnalysisMuMuGraphUtil.cxx:144 AliAnalysisMuMuGraphUtil.cxx:145 AliAnalysisMuMuGraphUtil.cxx:146 AliAnalysisMuMuGraphUtil.cxx:147 AliAnalysisMuMuGraphUtil.cxx:148 AliAnalysisMuMuGraphUtil.cxx:149 AliAnalysisMuMuGraphUtil.cxx:150 AliAnalysisMuMuGraphUtil.cxx:151 AliAnalysisMuMuGraphUtil.cxx:152 AliAnalysisMuMuGraphUtil.cxx:153 AliAnalysisMuMuGraphUtil.cxx:154 AliAnalysisMuMuGraphUtil.cxx:155 AliAnalysisMuMuGraphUtil.cxx:156 AliAnalysisMuMuGraphUtil.cxx:157 AliAnalysisMuMuGraphUtil.cxx:158 AliAnalysisMuMuGraphUtil.cxx:159 AliAnalysisMuMuGraphUtil.cxx:160 AliAnalysisMuMuGraphUtil.cxx:161 AliAnalysisMuMuGraphUtil.cxx:162 AliAnalysisMuMuGraphUtil.cxx:163 AliAnalysisMuMuGraphUtil.cxx:164 AliAnalysisMuMuGraphUtil.cxx:165 AliAnalysisMuMuGraphUtil.cxx:166 AliAnalysisMuMuGraphUtil.cxx:167 AliAnalysisMuMuGraphUtil.cxx:168 AliAnalysisMuMuGraphUtil.cxx:169 AliAnalysisMuMuGraphUtil.cxx:170 AliAnalysisMuMuGraphUtil.cxx:171 AliAnalysisMuMuGraphUtil.cxx:172 AliAnalysisMuMuGraphUtil.cxx:173 AliAnalysisMuMuGraphUtil.cxx:174 AliAnalysisMuMuGraphUtil.cxx:175 AliAnalysisMuMuGraphUtil.cxx:176 AliAnalysisMuMuGraphUtil.cxx:177 AliAnalysisMuMuGraphUtil.cxx:178 AliAnalysisMuMuGraphUtil.cxx:179 AliAnalysisMuMuGraphUtil.cxx:180 AliAnalysisMuMuGraphUtil.cxx:181 AliAnalysisMuMuGraphUtil.cxx:182 AliAnalysisMuMuGraphUtil.cxx:183 AliAnalysisMuMuGraphUtil.cxx:184 AliAnalysisMuMuGraphUtil.cxx:185 AliAnalysisMuMuGraphUtil.cxx:186 AliAnalysisMuMuGraphUtil.cxx:187 AliAnalysisMuMuGraphUtil.cxx:188 AliAnalysisMuMuGraphUtil.cxx:189 AliAnalysisMuMuGraphUtil.cxx:190 AliAnalysisMuMuGraphUtil.cxx:191 AliAnalysisMuMuGraphUtil.cxx:192 AliAnalysisMuMuGraphUtil.cxx:193 AliAnalysisMuMuGraphUtil.cxx:194 AliAnalysisMuMuGraphUtil.cxx:195 AliAnalysisMuMuGraphUtil.cxx:196 AliAnalysisMuMuGraphUtil.cxx:197 AliAnalysisMuMuGraphUtil.cxx:198 AliAnalysisMuMuGraphUtil.cxx:199 AliAnalysisMuMuGraphUtil.cxx:200 AliAnalysisMuMuGraphUtil.cxx:201 AliAnalysisMuMuGraphUtil.cxx:202 AliAnalysisMuMuGraphUtil.cxx:203 AliAnalysisMuMuGraphUtil.cxx:204 AliAnalysisMuMuGraphUtil.cxx:205 AliAnalysisMuMuGraphUtil.cxx:206 AliAnalysisMuMuGraphUtil.cxx:207 AliAnalysisMuMuGraphUtil.cxx:208 AliAnalysisMuMuGraphUtil.cxx:209 AliAnalysisMuMuGraphUtil.cxx:210 AliAnalysisMuMuGraphUtil.cxx:211 AliAnalysisMuMuGraphUtil.cxx:212 AliAnalysisMuMuGraphUtil.cxx:213 AliAnalysisMuMuGraphUtil.cxx:214 AliAnalysisMuMuGraphUtil.cxx:215 AliAnalysisMuMuGraphUtil.cxx:216 AliAnalysisMuMuGraphUtil.cxx:217 AliAnalysisMuMuGraphUtil.cxx:218 AliAnalysisMuMuGraphUtil.cxx:219 AliAnalysisMuMuGraphUtil.cxx:220 AliAnalysisMuMuGraphUtil.cxx:221 AliAnalysisMuMuGraphUtil.cxx:222 AliAnalysisMuMuGraphUtil.cxx:223 AliAnalysisMuMuGraphUtil.cxx:224 AliAnalysisMuMuGraphUtil.cxx:225 AliAnalysisMuMuGraphUtil.cxx:226 AliAnalysisMuMuGraphUtil.cxx:227 AliAnalysisMuMuGraphUtil.cxx:228 AliAnalysisMuMuGraphUtil.cxx:229 AliAnalysisMuMuGraphUtil.cxx:230 AliAnalysisMuMuGraphUtil.cxx:231 AliAnalysisMuMuGraphUtil.cxx:232 AliAnalysisMuMuGraphUtil.cxx:233 AliAnalysisMuMuGraphUtil.cxx:234 AliAnalysisMuMuGraphUtil.cxx:235 AliAnalysisMuMuGraphUtil.cxx:236 AliAnalysisMuMuGraphUtil.cxx:237 AliAnalysisMuMuGraphUtil.cxx:238 AliAnalysisMuMuGraphUtil.cxx:239 AliAnalysisMuMuGraphUtil.cxx:240 AliAnalysisMuMuGraphUtil.cxx:241 AliAnalysisMuMuGraphUtil.cxx:242 AliAnalysisMuMuGraphUtil.cxx:243 AliAnalysisMuMuGraphUtil.cxx:244 AliAnalysisMuMuGraphUtil.cxx:245 AliAnalysisMuMuGraphUtil.cxx:246 AliAnalysisMuMuGraphUtil.cxx:247 AliAnalysisMuMuGraphUtil.cxx:248 AliAnalysisMuMuGraphUtil.cxx:249 AliAnalysisMuMuGraphUtil.cxx:250 AliAnalysisMuMuGraphUtil.cxx:251 AliAnalysisMuMuGraphUtil.cxx:252 AliAnalysisMuMuGraphUtil.cxx:253 AliAnalysisMuMuGraphUtil.cxx:254 AliAnalysisMuMuGraphUtil.cxx:255 AliAnalysisMuMuGraphUtil.cxx:256 AliAnalysisMuMuGraphUtil.cxx:257 AliAnalysisMuMuGraphUtil.cxx:258 AliAnalysisMuMuGraphUtil.cxx:259 AliAnalysisMuMuGraphUtil.cxx:260 AliAnalysisMuMuGraphUtil.cxx:261 AliAnalysisMuMuGraphUtil.cxx:262 AliAnalysisMuMuGraphUtil.cxx:263 AliAnalysisMuMuGraphUtil.cxx:264 AliAnalysisMuMuGraphUtil.cxx:265 AliAnalysisMuMuGraphUtil.cxx:266 AliAnalysisMuMuGraphUtil.cxx:267 AliAnalysisMuMuGraphUtil.cxx:268 AliAnalysisMuMuGraphUtil.cxx:269 AliAnalysisMuMuGraphUtil.cxx:270 AliAnalysisMuMuGraphUtil.cxx:271 AliAnalysisMuMuGraphUtil.cxx:272 AliAnalysisMuMuGraphUtil.cxx:273 AliAnalysisMuMuGraphUtil.cxx:274 AliAnalysisMuMuGraphUtil.cxx:275 AliAnalysisMuMuGraphUtil.cxx:276 AliAnalysisMuMuGraphUtil.cxx:277 AliAnalysisMuMuGraphUtil.cxx:278 AliAnalysisMuMuGraphUtil.cxx:279 AliAnalysisMuMuGraphUtil.cxx:280 AliAnalysisMuMuGraphUtil.cxx:281 AliAnalysisMuMuGraphUtil.cxx:282 AliAnalysisMuMuGraphUtil.cxx:283 AliAnalysisMuMuGraphUtil.cxx:284 AliAnalysisMuMuGraphUtil.cxx:285 AliAnalysisMuMuGraphUtil.cxx:286 AliAnalysisMuMuGraphUtil.cxx:287 AliAnalysisMuMuGraphUtil.cxx:288 AliAnalysisMuMuGraphUtil.cxx:289 AliAnalysisMuMuGraphUtil.cxx:290 AliAnalysisMuMuGraphUtil.cxx:291 AliAnalysisMuMuGraphUtil.cxx:292 AliAnalysisMuMuGraphUtil.cxx:293 AliAnalysisMuMuGraphUtil.cxx:294 AliAnalysisMuMuGraphUtil.cxx:295 AliAnalysisMuMuGraphUtil.cxx:296 AliAnalysisMuMuGraphUtil.cxx:297 AliAnalysisMuMuGraphUtil.cxx:298 AliAnalysisMuMuGraphUtil.cxx:299 AliAnalysisMuMuGraphUtil.cxx:300 AliAnalysisMuMuGraphUtil.cxx:301 AliAnalysisMuMuGraphUtil.cxx:302 AliAnalysisMuMuGraphUtil.cxx:303 AliAnalysisMuMuGraphUtil.cxx:304 AliAnalysisMuMuGraphUtil.cxx:305 AliAnalysisMuMuGraphUtil.cxx:306 AliAnalysisMuMuGraphUtil.cxx:307 AliAnalysisMuMuGraphUtil.cxx:308 AliAnalysisMuMuGraphUtil.cxx:309 AliAnalysisMuMuGraphUtil.cxx:310 AliAnalysisMuMuGraphUtil.cxx:311 AliAnalysisMuMuGraphUtil.cxx:312 AliAnalysisMuMuGraphUtil.cxx:313 AliAnalysisMuMuGraphUtil.cxx:314 AliAnalysisMuMuGraphUtil.cxx:315 AliAnalysisMuMuGraphUtil.cxx:316 AliAnalysisMuMuGraphUtil.cxx:317 AliAnalysisMuMuGraphUtil.cxx:318 AliAnalysisMuMuGraphUtil.cxx:319 AliAnalysisMuMuGraphUtil.cxx:320 AliAnalysisMuMuGraphUtil.cxx:321 AliAnalysisMuMuGraphUtil.cxx:322 AliAnalysisMuMuGraphUtil.cxx:323 AliAnalysisMuMuGraphUtil.cxx:324 AliAnalysisMuMuGraphUtil.cxx:325 AliAnalysisMuMuGraphUtil.cxx:326 AliAnalysisMuMuGraphUtil.cxx:327 AliAnalysisMuMuGraphUtil.cxx:328 AliAnalysisMuMuGraphUtil.cxx:329 AliAnalysisMuMuGraphUtil.cxx:330 AliAnalysisMuMuGraphUtil.cxx:331 AliAnalysisMuMuGraphUtil.cxx:332 AliAnalysisMuMuGraphUtil.cxx:333 AliAnalysisMuMuGraphUtil.cxx:334 AliAnalysisMuMuGraphUtil.cxx:335 AliAnalysisMuMuGraphUtil.cxx:336 AliAnalysisMuMuGraphUtil.cxx:337 AliAnalysisMuMuGraphUtil.cxx:338 AliAnalysisMuMuGraphUtil.cxx:339 AliAnalysisMuMuGraphUtil.cxx:340 AliAnalysisMuMuGraphUtil.cxx:341 AliAnalysisMuMuGraphUtil.cxx:342 AliAnalysisMuMuGraphUtil.cxx:343 AliAnalysisMuMuGraphUtil.cxx:344 AliAnalysisMuMuGraphUtil.cxx:345 AliAnalysisMuMuGraphUtil.cxx:346 AliAnalysisMuMuGraphUtil.cxx:347 AliAnalysisMuMuGraphUtil.cxx:348 AliAnalysisMuMuGraphUtil.cxx:349 AliAnalysisMuMuGraphUtil.cxx:350 AliAnalysisMuMuGraphUtil.cxx:351 AliAnalysisMuMuGraphUtil.cxx:352 AliAnalysisMuMuGraphUtil.cxx:353 AliAnalysisMuMuGraphUtil.cxx:354 AliAnalysisMuMuGraphUtil.cxx:355 AliAnalysisMuMuGraphUtil.cxx:356 AliAnalysisMuMuGraphUtil.cxx:357 AliAnalysisMuMuGraphUtil.cxx:358 AliAnalysisMuMuGraphUtil.cxx:359 AliAnalysisMuMuGraphUtil.cxx:360 AliAnalysisMuMuGraphUtil.cxx:361 AliAnalysisMuMuGraphUtil.cxx:362 AliAnalysisMuMuGraphUtil.cxx:363 AliAnalysisMuMuGraphUtil.cxx:364 AliAnalysisMuMuGraphUtil.cxx:365 AliAnalysisMuMuGraphUtil.cxx:366 AliAnalysisMuMuGraphUtil.cxx:367 AliAnalysisMuMuGraphUtil.cxx:368 AliAnalysisMuMuGraphUtil.cxx:369 AliAnalysisMuMuGraphUtil.cxx:370 AliAnalysisMuMuGraphUtil.cxx:371 AliAnalysisMuMuGraphUtil.cxx:372 AliAnalysisMuMuGraphUtil.cxx:373 AliAnalysisMuMuGraphUtil.cxx:374 AliAnalysisMuMuGraphUtil.cxx:375 AliAnalysisMuMuGraphUtil.cxx:376 AliAnalysisMuMuGraphUtil.cxx:377 AliAnalysisMuMuGraphUtil.cxx:378 AliAnalysisMuMuGraphUtil.cxx:379 AliAnalysisMuMuGraphUtil.cxx:380 AliAnalysisMuMuGraphUtil.cxx:381 AliAnalysisMuMuGraphUtil.cxx:382 AliAnalysisMuMuGraphUtil.cxx:383 AliAnalysisMuMuGraphUtil.cxx:384 AliAnalysisMuMuGraphUtil.cxx:385 AliAnalysisMuMuGraphUtil.cxx:386 AliAnalysisMuMuGraphUtil.cxx:387 AliAnalysisMuMuGraphUtil.cxx:388 AliAnalysisMuMuGraphUtil.cxx:389 AliAnalysisMuMuGraphUtil.cxx:390 AliAnalysisMuMuGraphUtil.cxx:391 AliAnalysisMuMuGraphUtil.cxx:392 AliAnalysisMuMuGraphUtil.cxx:393 AliAnalysisMuMuGraphUtil.cxx:394 AliAnalysisMuMuGraphUtil.cxx:395 AliAnalysisMuMuGraphUtil.cxx:396 AliAnalysisMuMuGraphUtil.cxx:397 AliAnalysisMuMuGraphUtil.cxx:398 AliAnalysisMuMuGraphUtil.cxx:399 AliAnalysisMuMuGraphUtil.cxx:400 AliAnalysisMuMuGraphUtil.cxx:401 AliAnalysisMuMuGraphUtil.cxx:402 AliAnalysisMuMuGraphUtil.cxx:403 AliAnalysisMuMuGraphUtil.cxx:404 AliAnalysisMuMuGraphUtil.cxx:405 AliAnalysisMuMuGraphUtil.cxx:406 AliAnalysisMuMuGraphUtil.cxx:407 AliAnalysisMuMuGraphUtil.cxx:408 AliAnalysisMuMuGraphUtil.cxx:409 AliAnalysisMuMuGraphUtil.cxx:410 AliAnalysisMuMuGraphUtil.cxx:411 AliAnalysisMuMuGraphUtil.cxx:412 AliAnalysisMuMuGraphUtil.cxx:413 AliAnalysisMuMuGraphUtil.cxx:414 AliAnalysisMuMuGraphUtil.cxx:415 AliAnalysisMuMuGraphUtil.cxx:416 AliAnalysisMuMuGraphUtil.cxx:417 AliAnalysisMuMuGraphUtil.cxx:418 AliAnalysisMuMuGraphUtil.cxx:419 AliAnalysisMuMuGraphUtil.cxx:420 AliAnalysisMuMuGraphUtil.cxx:421 AliAnalysisMuMuGraphUtil.cxx:422 AliAnalysisMuMuGraphUtil.cxx:423 AliAnalysisMuMuGraphUtil.cxx:424 AliAnalysisMuMuGraphUtil.cxx:425 AliAnalysisMuMuGraphUtil.cxx:426 AliAnalysisMuMuGraphUtil.cxx:427 AliAnalysisMuMuGraphUtil.cxx:428 AliAnalysisMuMuGraphUtil.cxx:429 AliAnalysisMuMuGraphUtil.cxx:430 AliAnalysisMuMuGraphUtil.cxx:431 AliAnalysisMuMuGraphUtil.cxx:432 AliAnalysisMuMuGraphUtil.cxx:433 AliAnalysisMuMuGraphUtil.cxx:434 AliAnalysisMuMuGraphUtil.cxx:435 AliAnalysisMuMuGraphUtil.cxx:436 AliAnalysisMuMuGraphUtil.cxx:437 AliAnalysisMuMuGraphUtil.cxx:438 AliAnalysisMuMuGraphUtil.cxx:439 AliAnalysisMuMuGraphUtil.cxx:440 AliAnalysisMuMuGraphUtil.cxx:441 AliAnalysisMuMuGraphUtil.cxx:442 AliAnalysisMuMuGraphUtil.cxx:443 AliAnalysisMuMuGraphUtil.cxx:444 AliAnalysisMuMuGraphUtil.cxx:445 AliAnalysisMuMuGraphUtil.cxx:446 AliAnalysisMuMuGraphUtil.cxx:447 AliAnalysisMuMuGraphUtil.cxx:448 AliAnalysisMuMuGraphUtil.cxx:449 AliAnalysisMuMuGraphUtil.cxx:450 AliAnalysisMuMuGraphUtil.cxx:451 AliAnalysisMuMuGraphUtil.cxx:452 AliAnalysisMuMuGraphUtil.cxx:453 AliAnalysisMuMuGraphUtil.cxx:454 AliAnalysisMuMuGraphUtil.cxx:455 AliAnalysisMuMuGraphUtil.cxx:456 AliAnalysisMuMuGraphUtil.cxx:457 AliAnalysisMuMuGraphUtil.cxx:458 AliAnalysisMuMuGraphUtil.cxx:459 AliAnalysisMuMuGraphUtil.cxx:460 AliAnalysisMuMuGraphUtil.cxx:461 AliAnalysisMuMuGraphUtil.cxx:462