#include "AliFMDCorrELossFit.h"
#include "AliForwardUtil.h"
#include "AliLandauGaus.h"
#include <TF1.h>
#include <TGraph.h>
#include <TBrowser.h>
#include <TVirtualPad.h>
#include <THStack.h>
#include <TLatex.h>
#include <TLegend.h>
#include <TLine.h>
#include <TH1D.h>
#include <AliLog.h>
#include <TMath.h>
#include <TList.h>
#include <iostream>
#include <iomanip>
namespace {
Int_t fDebug = 1;
}
Double_t AliFMDCorrELossFit::ELossFit::fgMaxRelError = .25;
Double_t AliFMDCorrELossFit::ELossFit::fgLeastWeight = 1e-7;
Double_t AliFMDCorrELossFit::ELossFit::fgMaxChi2nu = 20;
AliFMDCorrELossFit::ELossFit::ELossFit()
: fN(0),
fNu(0),
fChi2(0),
fC(0),
fDelta(0),
fXi(0),
fSigma(0),
fSigmaN(0),
fA(0),
fEC(0),
fEDelta(0),
fEXi(0),
fESigma(0),
fESigmaN(0),
fEA(0),
fQuality(0),
fDet(0),
fRing('\0'),
fBin(0),
fMaxWeight(0)
{
}
AliFMDCorrELossFit::ELossFit::ELossFit(Int_t quality, const TF1& f)
: fN(f.GetNpar() > AliLandauGaus::kN ?
Int_t(f.GetParameter(AliLandauGaus::kN)) :
1),
fNu(f.GetNDF()),
fChi2(f.GetChisquare()),
fC(f.GetParameter(AliLandauGaus::kC)),
fDelta(f.GetParameter(AliLandauGaus::kDelta)),
fXi(f.GetParameter(AliLandauGaus::kXi)),
fSigma(f.GetParameter(AliLandauGaus::kSigma)),
fSigmaN(f.GetParameter(AliLandauGaus::kSigmaN)),
fA(0),
fEC(f.GetParError(AliLandauGaus::kC)),
fEDelta(f.GetParError(AliLandauGaus::kDelta)),
fEXi(f.GetParError(AliLandauGaus::kXi)),
fESigma(f.GetParError(AliLandauGaus::kSigma)),
fESigmaN(f.GetParError(AliLandauGaus::kSigmaN)),
fEA(0),
fQuality(quality),
fDet(0),
fRing('\0'),
fBin(0),
fMaxWeight(0)
{
if (fN <= 0) return;
fA = new Double_t[fN];
fEA = new Double_t[fN];
for (Int_t i = 0; i < fN-1; i++) {
fA[i] = f.GetParameter(AliLandauGaus::kA+i);
fEA[i] = f.GetParError(AliLandauGaus::kA+i);
}
fA[fN-1] = -9999;
fEA[fN-1] = -9999;
}
AliFMDCorrELossFit::ELossFit::ELossFit(Int_t quality,UShort_t n,
Double_t chi2, UShort_t nu,
Double_t c, Double_t ec,
Double_t delta, Double_t edelta,
Double_t xi, Double_t exi,
Double_t sigma, Double_t esigma,
Double_t sigman, Double_t esigman,
const Double_t* a,const Double_t* ea)
: fN(n),
fNu(nu),
fChi2(chi2),
fC(c),
fDelta(delta),
fXi(xi),
fSigma(sigma),
fSigmaN(sigman),
fA(0),
fEC(ec),
fEDelta(edelta),
fEXi(exi),
fESigma(esigma),
fESigmaN(esigman),
fEA(0),
fQuality(quality),
fDet(0),
fRing('\0'),
fBin(0),
fMaxWeight(0)
{
if (fN <= 0) return;
fA = new Double_t[fN];
fEA = new Double_t[fN];
for (Int_t i = 0; i < fN-1; i++) {
fA[i] = a[i];
fEA[i] = ea[i];
}
fA[fN-1] = -9999;
fEA[fN-1] = -9999;
}
AliFMDCorrELossFit::ELossFit::ELossFit(const ELossFit& o)
: TObject(o),
fN(o.fN),
fNu(o.fNu),
fChi2(o.fChi2),
fC(o.fC),
fDelta(o.fDelta),
fXi(o.fXi),
fSigma(o.fSigma),
fSigmaN(o.fSigmaN),
fA(0),
fEC(o.fEC),
fEDelta(o.fEDelta),
fEXi(o.fEXi),
fESigma(o.fESigma),
fESigmaN(o.fESigmaN),
fEA(0),
fQuality(o.fQuality),
fDet(o.fDet),
fRing(o.fRing),
fBin(o.fBin),
fMaxWeight(o.fMaxWeight)
{
if (fN <= 0) return;
fA = new Double_t[fN];
fEA = new Double_t[fN];
for (Int_t i = 0; i < fN-1; i++) {
fA[i] = o.fA[i];
fEA[i] = o.fEA[i];
}
fA[fN-1] = -9999;
fEA[fN-1] = -9999;
}
AliFMDCorrELossFit::ELossFit&
AliFMDCorrELossFit::ELossFit::operator=(const ELossFit& o)
{
if (&o == this) return *this;
fN = o.fN;
fNu = o.fNu;
fChi2 = o.fChi2;
fC = o.fC;
fDelta = o.fDelta;
fXi = o.fXi;
fSigma = o.fSigma;
fSigmaN = o.fSigmaN;
fEC = o.fEC;
fEDelta = o.fEDelta;
fEXi = o.fEXi;
fESigma = o.fESigma;
fESigmaN = o.fESigmaN;
fQuality = o.fQuality;
fDet = o.fDet;
fRing = o.fRing;
fBin = o.fBin;
fMaxWeight = o.fMaxWeight;
if (fA) delete [] fA;
if (fEA) delete [] fEA;
fA = 0;
fEA = 0;
if (fN <= 0) return *this;
fA = new Double_t[fN];
fEA = new Double_t[fN];
for (Int_t i = 0; i < fN; i++) {
fA[i] = o.fA[i];
fEA[i] = o.fEA[i];
}
return *this;
}
AliFMDCorrELossFit::ELossFit::~ELossFit()
{
if (fA) delete[] fA;
if (fEA) delete[] fEA;
}
Int_t
AliFMDCorrELossFit::ELossFit::FindMaxWeight(Double_t maxRelError,
Double_t leastWeight,
UShort_t maxN) const
{
if (fMaxWeight > 0) return fMaxWeight;
Int_t n = TMath::Min(maxN, UShort_t(fN-1));
Int_t m = 1;
for (Int_t i = 0; i < n-1; i++, m++) {
if (fA[i] < leastWeight) break;
if (fEA[i] / fA[i] > maxRelError) break;
}
return fMaxWeight = m;
}
Double_t
AliFMDCorrELossFit::ELossFit::Evaluate(Double_t x,
UShort_t maxN) const
{
return AliLandauGaus::Fn(x, fDelta, fXi, fSigma, fSigmaN,
TMath::Min(maxN, UShort_t(fN)), fA);
}
Double_t
AliFMDCorrELossFit::ELossFit::EvaluateWeighted(Double_t x,
UShort_t maxN) const
{
UShort_t n = TMath::Min(maxN, UShort_t(fN-1));
Double_t num = 0;
Double_t den = 0;
for (Int_t i = 1; i <= n; i++) {
Double_t a = (i == 1 ? 1 : fA[i-1]);
if (fA[i-1] < 0) break;
Double_t f = AliLandauGaus::Fi(x,fDelta,fXi,fSigma,fSigmaN,i);
num += i * a * f;
den += a * f;
}
if (den <= 0) return 1;
return num / den;
}
#define OUTPAR(N,V,E) \
std::setprecision(9) << \
std::setw(12) << N << ": " << \
std::setw(14) << V << " +/- " << \
std::setw(14) << E << " (" << \
std::setprecision(-1) << \
std::setw(5) << 100*(V>0?E/V:1) << "%)\n"
Int_t
AliFMDCorrELossFit::ELossFit::Compare(const TObject* o) const
{
const ELossFit* other = static_cast<const ELossFit*>(o);
if (this->fQuality < other->fQuality) return -1;
if (this->fQuality > other->fQuality) return +1;
Double_t chi2nu = (fNu == 0 ? 1000 : fChi2 / fNu);
Double_t oChi2nu = (other->fNu == 0 ? 1000 : other->fChi2 / other->fNu);
if (TMath::Abs(chi2nu-1) < TMath::Abs(oChi2nu-1)) return +1;
if (TMath::Abs(chi2nu-1) > TMath::Abs(oChi2nu-1)) return -1;
return 0;
}
void
AliFMDCorrELossFit::ELossFit::Print(Option_t* option) const
{
TString o(option);
if (o.Contains("S", TString::kIgnoreCase)) {
Printf("%15s: q=%2d n=%1d chi2/nu=%6.3f",
GetName(), fQuality, fN, (fNu <= 0 ? 999 : fChi2 / fNu));
return;
}
std::cout << GetName() << ":\n"
<< " chi^2/nu = " << fChi2 << "/" << fNu << " = "
<< (fNu == 0 ? 999 : fChi2 / fNu) << "\n"
<< " Quality: " << fQuality << "\n"
<< " NParticles: " << fN << " (" << FindMaxWeight() << ")\n"
<< OUTPAR("Delta", fDelta, fEDelta)
<< OUTPAR("xi", fXi, fEXi)
<< OUTPAR("sigma", fSigma, fESigma)
<< OUTPAR("sigma_n", fSigmaN, fESigmaN);
for (Int_t i = 0; i < fN-1; i++)
std::cout << OUTPAR(Form("a%d", i+2), fA[i], fEA[i]);
std::cout << std::flush;
}
TF1*
AliFMDCorrELossFit::ELossFit::GetF1(Int_t i, Double_t max) const
{
const Double_t lowX = 0.001;
const Double_t upX = (max < 0 ? 10 : max);
Int_t maxW = FindMaxWeight();
TF1* ret = 0;
if (i <= 0)
ret = AliLandauGaus::MakeFn(fC * 1, fDelta, fXi,
fSigma, fSigmaN, maxW, fA, lowX, upX);
else if (i == 1)
ret = AliLandauGaus::MakeF1(fC, fDelta, fXi, fSigma, fSigmaN, lowX, upX);
else if (i <= maxW)
ret = AliLandauGaus::MakeFi(fC*(i == 1 ? 1 : fA[i-2]),
fDelta, fXi, fSigma, fSigmaN, i, lowX, upX);
return ret;
}
Double_t
AliFMDCorrELossFit::ELossFit::FindProbabilityCut(Double_t low) const
{
Double_t ret = 1000;
TF1* f = 0;
TGraph* g = 0;
try {
if (!(f = GetF1(1,5)))
throw TString("Didn't TF1 object");
if (!(g = new TGraph(f, "i")))
throw TString("Failed to integrate function");
Int_t n = g->GetN();
Double_t total = g->GetY()[n-1];
if (total <= 0)
throw TString::Format("Invalid integral: %lf", total);
for (Int_t i = 0; i < n; i++) {
Double_t prob = g->GetY()[i] / total;
if (prob > low) {
ret = g->GetX()[i];
break;
}
}
if (ret >= 1000)
throw TString::Format("Couldn't find x value for cut %lf", low);
}
catch (const TString& str) {
AliWarningF("%s: %s", GetName(), str.Data());
}
if (f) delete f;
if (g) delete g;
return ret;
}
const Char_t*
AliFMDCorrELossFit::ELossFit::GetName() const
{
return Form("FMD%d%c_etabin%03d", fDet, fRing, fBin);
}
void
AliFMDCorrELossFit::ELossFit::Browse(TBrowser* b)
{
Draw(b ? b->GetDrawOption() : "comp values");
gPad->SetLogy();
gPad->Update();
}
void
AliFMDCorrELossFit::ELossFit::Draw(Option_t* option)
{
TString opt(option);
opt.ToUpper();
bool comp = false;
bool good = false;
bool vals = false;
bool legd = false;
bool peak = false;
if (opt.Contains("COMP")) {
opt.ReplaceAll("COMP","");
comp = true;
}
if (opt.Contains("GOOD")) {
opt.ReplaceAll("GOOD","");
good = true;
}
if (opt.Contains("VALUES")) {
opt.ReplaceAll("VALUES","");
vals = true;
}
if (opt.Contains("LEGEND")) {
opt.ReplaceAll("LEGEND","");
legd = comp;
}
if (!opt.Contains("SAME")) {
gPad->Clear();
}
if (opt.Contains("PEAK")) {
peak = true;
}
TLegend* l = 0;
if (legd) {
l = new TLegend(.3, .5, .59, .94);
l->SetBorderSize(0);
l->SetFillColor(0);
l->SetFillStyle(0);
}
TObjArray cleanup;
Int_t maxW = FindMaxWeight();
TF1* tot = AliLandauGaus::MakeFn(fC * 1, fDelta, fXi, fSigma, fSigmaN,
maxW, fA, 0.01, 10);
tot->SetLineColor(kBlack);
tot->SetLineWidth(2);
tot->SetLineStyle(1);
tot->SetTitle(GetName());
if (l) l->AddEntry(tot, "Total", "l");
Double_t max = tot->GetMaximum();
if (!opt.Contains("SAME")) {
TH1* frame = new TH1F(GetName(),
Form("FMD%d%c, eta bin %d",fDet,fRing,fBin),
100, 0, 10);
frame->SetMinimum(max/10000);
frame->SetMaximum(max*1.4);
frame->SetXTitle("#Delta / #Delta_{mip}");
frame->Draw();
opt.Append(" SAME");
}
TF1* cpy = tot->DrawCopy(opt.Data());
cleanup.Add(tot);
if (vals) {
Double_t x1 = .72;
Double_t x2 = .73;
Double_t y = .90;
Double_t dy = .05;
TLatex* ltx1 = new TLatex(x1, y, "");
TLatex* ltx2 = new TLatex(x2, y, "");
ltx1->SetNDC();
ltx1->SetTextAlign(33);
ltx1->SetTextFont(132);
ltx1->SetTextSize(dy-.01);
ltx2->SetNDC();
ltx2->SetTextAlign(13);
ltx2->SetTextFont(132);
ltx2->SetTextSize(dy-.01);
ltx1->DrawLatex(x1, y, "Quality");
ltx2->DrawLatex(x2, y, Form("%d", fQuality));
y -= dy;
ltx1->DrawLatex(x1, y, "#chi^{2}/#nu");
ltx2->DrawLatex(x2, y, Form("%7.3f", (fNu > 0 ? fChi2 / fNu : -1)));
y -= dy;
const Char_t* pn[] = { "C", "#Delta", "#xi", "#sigma" };
Double_t pv[] = { fC, fDelta, fXi, fSigma };
Double_t pe[] = { fEC, fEDelta, fEXi, fESigma };
for (Int_t i = 0; i < 4; i++) {
ltx1->DrawLatex(x1, y, pn[i]);
ltx2->DrawLatex(x2, y, Form("%6.4f#pm%6.4f", pv[i], pe[i]));
y -= dy;
}
for (Int_t i=2; i <= fN; i++) {
if (i > maxW) {
ltx1->SetTextColor(kRed+3);
ltx2->SetTextColor(kRed+3);
}
ltx1->DrawLatex(x1, y, Form("a_{%d}", i));
ltx2->DrawLatex(x2, y, Form("%6.4f#pm%6.4f", fA[i-2], fEA[i-2]));
y -= dy;
}
}
if (peak) {
TLine* pl = new TLine(fDelta, 0.01*max, fDelta, 1.5*max);
pl->SetLineStyle(2);
pl->SetLineColor(kBlack);
pl->Draw();
}
if (!comp) {
gPad->cd();
return;
}
Double_t min = max;
opt.Append(" same");
for (Int_t i=1; i <= fN; i++) {
if (good && i > maxW) break;
TF1* f = AliLandauGaus::MakeFi(fC*(i == 1 ? 1 : fA[i-2]),
fDelta, fXi,
fSigma, fSigmaN,
i, 0.01, 10);
f->SetLineWidth(2);
f->SetLineStyle(i > maxW ? 2 : 1);
min = TMath::Min(f->GetMaximum(), min);
f->DrawCopy(opt.Data());
if (l) l->AddEntry(f, Form("%d MIP%s", i, (i>1 ? "s" : "")), "l");
cleanup.Add(f);
}
min /= 100;
if (max <= 0) max = 0.1;
if (min <= 0) min = 1e-4;
cpy->SetMaximum(max);
cpy->SetMinimum(min);
cpy->GetHistogram()->SetMaximum(max);
cpy->GetHistogram()->SetMinimum(min);
cpy->GetHistogram()->GetYaxis()->SetRangeUser(min, max);
if (l) l->Draw();
gPad->cd();
}
#define CHECKPAR(V,E,T) ((V > 0) && (E / V < T))
Double_t
AliFMDCorrELossFit::ELossFit::GetLowerBound(Double_t f) const
{
return f * fDelta;
}
Double_t
AliFMDCorrELossFit::ELossFit::GetLowerBound(Double_t f,
Bool_t includeSigma) const
{
return fDelta - f * (fXi + (includeSigma ? fSigma : 0));
}
void
AliFMDCorrELossFit::ELossFit::CalculateQuality(Double_t maxChi2nu,
Double_t maxRelError,
Double_t leastWeight)
{
Double_t decline = maxChi2nu;
Int_t qual = 0;
if (fNu > 0) {
Double_t red = fChi2 / fNu;
if (red < maxChi2nu) qual += 4;
else {
Int_t q = Int_t((maxChi2nu+decline - red) / decline * 4);
if (q > 0) qual += q;
}
}
if (CHECKPAR(fDelta, fEDelta, maxRelError)) qual++;
if (CHECKPAR(fXi, fEXi, maxRelError)) qual++;
if (CHECKPAR(fSigma, fESigma, maxRelError)) qual++;
if (CHECKPAR(fSigmaN, fESigmaN, maxRelError)) qual++;
if (fSigma > 10*fXi) qual -= 4;
qual += FindMaxWeight(2*maxRelError, leastWeight, fN);
fQuality = qual;
}
AliFMDCorrELossFit::AliFMDCorrELossFit()
: TObject(),
fRings(),
fEtaAxis(0,0,0),
fLowCut(0),
fCache(0)
{
fRings.SetOwner(kTRUE);
fEtaAxis.SetTitle("#eta");
fEtaAxis.SetName("etaAxis");
fRings.SetName("rings");
}
AliFMDCorrELossFit::AliFMDCorrELossFit(const AliFMDCorrELossFit& o)
: TObject(o),
fRings(o.fRings),
fEtaAxis(o.fEtaAxis.GetNbins(),o.fEtaAxis.GetXmin(),o.fEtaAxis.GetXmax()),
fLowCut(0),
fCache(0)
{
fEtaAxis.SetTitle("#eta");
fEtaAxis.SetName("etaAxis");
}
AliFMDCorrELossFit::~AliFMDCorrELossFit()
{
fRings.Clear();
}
AliFMDCorrELossFit&
AliFMDCorrELossFit::operator=(const AliFMDCorrELossFit& o)
{
if (&o == this) return *this;
fRings = o.fRings;
fLowCut = o.fLowCut;
fCache = o.fCache;
SetEtaAxis(o.fEtaAxis.GetNbins(), o.fEtaAxis.GetXmin(), o.fEtaAxis.GetXmax());
return *this;
}
#define CACHE(BIN,IDX,OFFSET) fCache[IDX*OFFSET+BIN-1]
#define CACHEDR(BIN,D,R,OFFSET) \
CACHE(BIN,(D == 1 ? 0 : (D - 2) * 2 + 1 + (R=='I' || R=='i' ? 0 : 1)),OFFSET)
void
AliFMDCorrELossFit::CacheBins(UShort_t minQuality) const
{
AliLandauGaus::EnableSigmaShift(TestBit(kHasShift));
if (fCache.GetSize() > 0) return;
Int_t nRings = fRings.GetEntriesFast();
Int_t offset = fEtaAxis.GetNbins();
fCache.Set(nRings*offset);
fCache.Reset(-1);
for (Int_t i = 0; i < nRings; i++) {
TObjArray* ringArray = static_cast<TObjArray*>(fRings.At(i));
Int_t nFits = 0;
Int_t nGood = 0;
Int_t minBin = offset+1;
Int_t maxBin = -1;
Int_t realMinBin = offset+1;
Int_t realMaxBin = -1;
for (Int_t j = 1; j < ringArray->GetEntriesFast(); j++) {
ELossFit* fit = static_cast<ELossFit*>(ringArray->At(j));
if (!fit) continue;
nFits++;
realMinBin = TMath::Min(j, realMinBin);
realMaxBin = TMath::Max(j, realMaxBin);
fit->CalculateQuality(AliFMDCorrELossFit::ELossFit::fgMaxChi2nu,
AliFMDCorrELossFit::ELossFit::fgMaxRelError,
AliFMDCorrELossFit::ELossFit::fgLeastWeight);
if (minQuality > 0 && fit->fQuality < minQuality) continue;
nGood++;
CACHE(j,i,offset) = j;
minBin = TMath::Min(j, minBin);
maxBin = TMath::Max(j, maxBin);
}
AliInfoF("Out of %d bins, %d had fits, of which %d are good (%5.1f%%)",
offset, nFits, nGood, (nFits > 0 ? 100*float(nGood)/nFits : 0));
realMinBin = TMath::Max(1, realMinBin-1);
realMaxBin = TMath::Min(offset, realMaxBin+1);
for (Int_t j = realMinBin; j <= realMaxBin; j++) {
if (CACHE(j,i,offset) > 0) continue;
Int_t nK = TMath::Max(realMaxBin - j, j - realMinBin);
Int_t found = -1;
for (Int_t k = 1; k <= nK; k++) {
Int_t left = j - k;
Int_t right = j + k;
if (left > realMinBin &&
CACHE(left,i,offset) == left) found = left;
else if (right < realMaxBin &&
CACHE(right,i,offset) == right) found = right;
if (found > 0) break;
}
if (found) CACHE(j,i,offset) = CACHE(found,i,offset);
else AliWarningF("No fit found for etabin=%d in ring=%d", j, i);
}
}
}
Int_t
AliFMDCorrELossFit::FindEtaBin(Double_t eta) const
{
if (TMath::Abs(fEtaAxis.GetXmin() - fEtaAxis.GetXmax()) < 1e-6
|| fEtaAxis.GetNbins() == 0) {
AliWarning("No eta axis defined");
return -1;
}
Int_t bin = const_cast<TAxis&>(fEtaAxis).FindBin(eta);
if (bin <= 0 || bin > fEtaAxis.GetNbins()) return 0;
return bin;
}
Bool_t
AliFMDCorrELossFit::SetFit(UShort_t d, Char_t r, Int_t etaBin, ELossFit* fit)
{
TObjArray* ringArray = GetOrMakeRingArray(d, r);
if (!ringArray) {
AliError(Form("Failed to make ring array for FMD%d%c", d, r));
return kFALSE;
}
if (etaBin <= 0 || etaBin >= fEtaAxis.GetNbins()+1) {
AliError(Form("bin=%d is out of range [%d,%d]",
etaBin, 1, fEtaAxis.GetNbins()));
return kFALSE;
}
ringArray->AddAtAndExpand(fit, etaBin);
return kTRUE;
}
Bool_t
AliFMDCorrELossFit::SetFit(UShort_t d, Char_t r, Double_t eta, ELossFit* fit)
{
Int_t bin = FindEtaBin(eta);
if (bin <= 0) {
AliError(Form("eta=%f is out of range [%f,%f]",
eta, fEtaAxis.GetXmin(), fEtaAxis.GetXmax()));
return kFALSE;
}
return SetFit(d, r, bin, fit);
}
Bool_t
AliFMDCorrELossFit::SetFit(UShort_t d, Char_t r,
Double_t eta,
Int_t quality,UShort_t n,
Double_t chi2, UShort_t nu,
Double_t c, Double_t ec,
Double_t delta, Double_t edelta,
Double_t xi, Double_t exi,
Double_t sigma, Double_t esigma,
Double_t sigman, Double_t esigman,
Double_t* a, Double_t* ea)
{
ELossFit* e = new ELossFit(quality, n,
chi2, nu,
c, ec,
delta, edelta,
xi, exi,
sigma, esigma,
sigman, esigman,
a, ea);
if (!SetFit(d, r, eta, e)) {
delete e;
return kFALSE;
}
return kTRUE;
}
Bool_t
AliFMDCorrELossFit::SetFit(UShort_t d, Char_t r, Double_t eta,
Int_t quality, const TF1& f)
{
ELossFit* e = new ELossFit(quality, f);
if (!SetFit(d, r, eta, e)) {
delete e;
return kFALSE;
}
return kTRUE;
}
AliFMDCorrELossFit::ELossFit*
AliFMDCorrELossFit::GetFit(UShort_t d, Char_t r, Int_t etabin) const
{
TObjArray* ringArray = GetRingArray(d, r);
if (!ringArray) return 0;
if (etabin <= 0 || etabin >= fEtaAxis.GetNbins()) return 0;
if (etabin > ringArray->GetEntriesFast()) return 0;
else if (etabin >= ringArray->GetEntriesFast()) etabin--;
else if (!ringArray->At(etabin)) etabin++;
return static_cast<ELossFit*>(ringArray->At(etabin));
}
AliFMDCorrELossFit::ELossFit*
AliFMDCorrELossFit::GetFit(UShort_t d, Char_t r, Double_t eta) const
{
Int_t etabin = FindEtaBin(eta);
return GetFit(d, r, etabin);
}
AliFMDCorrELossFit::ELossFit*
AliFMDCorrELossFit::FindFit(UShort_t d, Char_t r, Int_t etabin,
UShort_t minQ) const
{
if (etabin <= 0 || etabin >= fEtaAxis.GetNbins()) {
return 0;
}
TObjArray* ringArray = GetRingArray(d, r);
if (!ringArray) {
AliError(Form("Failed to make ring array for FMD%d%c", d, r));
return 0;
}
DMSG(fDebug, 10, "Got ringArray %s for FMD%d%c", ringArray->GetName(), d, r);
if (fCache.GetSize() <= 0) CacheBins(minQ);
#if 0
Int_t idx = (d == 1 ? 0 :
(d - 2) * 2 + 1 + (r=='I' || r=='i' ? 0 : 1));
#endif
Int_t bin = CACHEDR(etabin, d, r, fEtaAxis.GetNbins());
if (bin < 0 || bin > ringArray->GetEntriesFast()) return 0;
return static_cast<ELossFit*>(ringArray->At(bin));
}
AliFMDCorrELossFit::ELossFit*
AliFMDCorrELossFit::FindFit(UShort_t d, Char_t r, Double_t eta,
UShort_t minQ) const
{
Int_t etabin = FindEtaBin(eta);
return FindFit(d, r, etabin, minQ);
}
TObjArray*
AliFMDCorrELossFit::GetRingArray(UShort_t d, Char_t r) const
{
Int_t idx = -1;
switch (d) {
case 1: idx = 0; break;
case 2: idx = (r == 'i' || r == 'I') ? 1 : 2; break;
case 3: idx = (r == 'i' || r == 'I') ? 3 : 4; break;
}
if (idx < 0 || idx >= fRings.GetEntriesFast()) return 0;
return static_cast<TObjArray*>(fRings.At(idx));
}
TObjArray*
AliFMDCorrELossFit::GetOrMakeRingArray(UShort_t d, Char_t r)
{
Int_t idx = -1;
switch (d) {
case 1: idx = 0; break;
case 2: idx = (r == 'i' || r == 'I') ? 1 : 2; break;
case 3: idx = (r == 'o' || r == 'I') ? 3 : 4; break;
}
if (idx < 0) return 0;
if (idx >= fRings.GetEntriesFast() || !fRings.At(idx)) {
TObjArray* a = new TObjArray(0);
a->SetName(Form("FMD%d%c", d, r));
a->SetOwner();
fRings.AddAtAndExpand(a, idx);
}
return static_cast<TObjArray*>(fRings.At(idx));
}
Double_t
AliFMDCorrELossFit::GetLowerBound(UShort_t d, Char_t r, Int_t etabin,
Double_t f) const
{
ELossFit* fit = FindFit(d, r, etabin, 20);
if (!fit) return -1024;
return fit->GetLowerBound(f);
}
Double_t
AliFMDCorrELossFit::GetLowerBound(UShort_t d, Char_t r, Double_t eta,
Double_t f) const
{
Int_t bin = FindEtaBin(eta);
if (bin <= 0) return -1024;
return GetLowerBound(d, r, Int_t(bin), f);
}
Double_t
AliFMDCorrELossFit::GetLowerBound(UShort_t d, Char_t r, Int_t etabin,
Double_t p, Bool_t) const
{
DGUARD(fDebug, 10, "Get probability cut for FMD%d%c etabin=%d", d, r, etabin);
ELossFit* fit = FindFit(d, r, etabin, 20);
if (!fit) return -1024;
return fit->FindProbabilityCut(p);
}
Double_t
AliFMDCorrELossFit::GetLowerBound(UShort_t d, Char_t r, Double_t eta,
Double_t p, Bool_t dummy) const
{
DGUARD(fDebug, 10, "Get probability cut for FMD%d%c eta=%8.4f", d, r, eta);
Int_t bin = FindEtaBin(eta);
DMSG(fDebug, 10, "bin=%4d", bin);
if (bin <= 0) return -1024;
return GetLowerBound(d, r, Int_t(bin), p, dummy);
}
Double_t
AliFMDCorrELossFit::GetLowerBound(UShort_t d, Char_t r, Int_t etabin,
Double_t f, Bool_t showErrors,
Bool_t includeSigma) const
{
ELossFit* fit = FindFit(d, r, etabin, 20);
if (!fit) {
if (showErrors) {
AliWarning(Form("No fit for FMD%d%c @ etabin=%d", d, r, etabin));
}
return -1024;
}
return fit->GetLowerBound(f, includeSigma);
}
Double_t
AliFMDCorrELossFit::GetLowerBound(UShort_t d, Char_t r, Double_t eta,
Double_t f, Bool_t showErrors,
Bool_t includeSigma) const
{
Int_t bin = FindEtaBin(eta);
if (bin <= 0) {
if (showErrors)
AliError(Form("eta=%f out of bounds for FMD%d%c", eta, d, r));
return -1024;
}
return GetLowerBound(d, r, bin, f, showErrors, includeSigma);
}
namespace {
TH1D* MakeHist(const TAxis& axis, const char* name, const char* title,
Int_t color)
{
TH1D* h = new TH1D(Form("%s_%s", name, title),
Form("%s %s", name, title),
axis.GetNbins(), axis.GetXmin(), axis.GetXmax());
h->SetDirectory(0);
h->SetMarkerStyle(20);
h->SetMarkerColor(color);
h->SetMarkerSize(0.5);
h->SetFillColor(color);
h->SetFillStyle(3001);
h->SetLineColor(color);
return h;
}
}
#define IDX2RING(I) (i == 0 || i == 1 || i == 3 ? 'I' : 'O')
#define IDX2DET(I) (i == 0 ? 1 : (i == 1 || i == 2 ? 2 : 3))
TList*
AliFMDCorrELossFit::GetStacks(Bool_t err,
Bool_t rel,
Bool_t good,
UShort_t maxN) const
{
Int_t nRings = fRings.GetEntriesFast();
enum {
kChi2nu = 0,
kC = 1,
kDelta = 2,
kXi = 3,
kSigma = 4,
kN = 5
};
THStack* sChi2nu;
THStack* sC;
THStack* sDelta;
THStack* sXi;
THStack* sSigma;
THStack* n;
TList* stacks = new TList;
stacks->AddAt(sChi2nu= new THStack("chi2", "#chi^{2}/#nu"), kChi2nu);
stacks->AddAt(sC = new THStack("c", "C"), kC);
stacks->AddAt(sDelta = new THStack("delta", "#Delta_{mp}"), kDelta);
stacks->AddAt(sXi = new THStack("xi", "#xi"), kXi);
stacks->AddAt(sSigma = new THStack("sigma", "#sigma"), kSigma);
stacks->AddAt(n = new THStack("n", "N"), kN);
if (rel) {
sChi2nu->SetName("qual");
sChi2nu->SetTitle("Quality");
n->SetName("good");
n->SetTitle("Bin map");
}
for (Int_t i = 1; i <= maxN; i++) {
stacks->AddAt(new THStack(Form("a_%02d", i+1), Form("a_{%d}", i+1)), kN+i);
}
for (Int_t i = 0; i < nRings; i++) {
if (!fRings.At(i)) continue;
TObjArray* a = static_cast<TObjArray*>(fRings.At(i));
Int_t nFits = a->GetEntriesFast();
UShort_t d = IDX2DET(i);
Char_t r = IDX2RING(i);
Int_t color = AliForwardUtil::RingColor(d, r);
TH1* hChi = MakeHist(fEtaAxis,a->GetName(), "chi2", color);
TH1* hC = MakeHist(fEtaAxis,a->GetName(), "c", color);
TH1* hDelta = MakeHist(fEtaAxis,a->GetName(), "delta", color);
TH1* hXi = MakeHist(fEtaAxis,a->GetName(), "xi", color);
TH1* hSigma = MakeHist(fEtaAxis,a->GetName(), "sigma", color);
TH1* hN = MakeHist(fEtaAxis,a->GetName(), "n", color);
TH1* hA[maxN];
const char* ho = (rel || !err ? "hist" : "e");
sChi2nu->Add(hChi, "hist");
sC ->Add(hC, ho);
sDelta ->Add(hDelta, ho);
sXi ->Add(hXi, ho);
sSigma ->Add(hSigma, ho);
n ->Add(hN, "hist");
hChi->SetFillColor(color);
hChi->SetFillStyle(3001);
hN->SetFillColor(color);
hN->SetFillStyle(3001);
for (Int_t k = 1; k <= maxN; k++) {
hA[k-1] = MakeHist(fEtaAxis,a->GetName(), Form("a%02d",k+1), color);
static_cast<THStack*>(stacks->At(kN+k))->Add(hA[k-1], ho);
}
if (good) {
for (Int_t j = 1; j <= fEtaAxis.GetNbins(); j++) {
ELossFit* f = FindFit(d, r, j, 20);
if (!f) continue;
UpdateStackHist(f, rel, j, hChi, hN, hC, hDelta, hXi, hSigma, maxN, hA);
}
}
else {
for (Int_t j = 0; j < nFits; j++) {
ELossFit* f = static_cast<ELossFit*>(a->At(j));
if (!f) continue;
UpdateStackHist(f, rel, CACHE(j,i,fEtaAxis.GetNbins()),
hChi, hN, hC, hDelta, hXi, hSigma, maxN, hA);
}
}
}
return stacks;
}
void
AliFMDCorrELossFit::UpdateStackHist(ELossFit* f, Bool_t rel,
Int_t used,
TH1* hChi, TH1* hN,
TH1* hC, TH1* hDelta,
TH1* hXi, TH1* hSigma,
Int_t maxN, TH1** hA) const
{
Int_t b =f->fBin;
Double_t chi2nu =(rel ? f->fQuality : (f->fNu <= 0 ? 0 : f->fChi2 / f->fNu));
Double_t c =(rel ? (f->fC >0 ?f->fEC /f->fC :0) : f->fC);
Double_t delta =(rel ? (f->fDelta >0 ?f->fEDelta /f->fDelta :0) : f->fDelta);
Double_t xi =(rel ? (f->fXi >0 ?f->fEXi /f->fXi :0) : f->fXi);
Double_t sigma =(rel ? (f->fSigma >0 ?f->fESigma /f->fSigma :0) : f->fSigma);
Int_t w =(rel ? used : f->FindMaxWeight());
hChi ->SetBinContent(b, chi2nu);
hN ->SetBinContent(b, w);
hC ->SetBinContent(b, c);
hDelta ->SetBinContent(b, delta);
hXi ->SetBinContent(b, xi);
hSigma ->SetBinContent(b, sigma);
if (!rel) {
hC ->SetBinError(b, f->fEC);
hDelta ->SetBinError(b, f->fEDelta);
hXi ->SetBinError(b, f->fEXi);
hSigma ->SetBinError(b, f->fESigma);
}
for (Int_t k = 0; k < f->fN-1 && k < maxN; k++) {
Double_t a = (rel ? (f->fA[k] > 0 ? f->fEA[k] / f->fA[k] : 0) : f->fA[k]);
hA[k]->SetBinContent(b, a);
if (!rel) hA[k]->SetBinError(b, f->fEA[k]);
}
}
void
AliFMDCorrELossFit::Draw(Option_t* option)
{
TString opt(Form("nostack %s", option));
opt.ToLower();
Bool_t rel = (opt.Contains("relative"));
Bool_t err = (opt.Contains("error"));
Bool_t clr = (opt.Contains("clear"));
Bool_t gdd = (opt.Contains("good"));
if (rel) opt.ReplaceAll("relative","");
if (err) opt.ReplaceAll("error","");
if (clr) opt.ReplaceAll("clear", "");
if (gdd) opt.ReplaceAll("good", "");
UShort_t maxN = 0;
Int_t nRings = fRings.GetEntriesFast();
for (Int_t i = 0; i < nRings; i++) {
if (!fRings.At(i)) continue;
TObjArray* a = static_cast<TObjArray*>(fRings.At(i));
Int_t nFits = a->GetEntriesFast();
for (Int_t j = 0; j < nFits; j++) {
ELossFit* fit = static_cast<ELossFit*>(a->At(j));
if (!fit) continue;
maxN = TMath::Max(maxN, UShort_t(fit->fN));
}
}
Int_t nPad = 6+maxN-1;
TVirtualPad* pad = gPad;
if (clr) {
pad->Clear();
pad->SetTopMargin(0.02);
pad->SetRightMargin(0.02);
pad->SetBottomMargin(0.15);
pad->SetLeftMargin(0.10);
}
pad->Divide(2, (nPad+1)/2, 0.1, 0, 0);
TList* stacks = GetStacks(err, rel, gdd, maxN);
Int_t nPad2 = (nPad+1) / 2;
for (Int_t i = 0; i < nPad; i++) {
Int_t iPad = 1 + i/nPad2 + 2 * (i % nPad2);
TVirtualPad* p = pad->cd(iPad);
p->SetLeftMargin(.15);
p->SetFillColor(0);
p->SetFillStyle(0);
p->SetGridx();
p->SetGridy();
if (rel && i != 0 && i != 6 && i != 5 && i != 4) p->SetLogy();
THStack* stack = static_cast<THStack*>(stacks->At(i));
if (!stack->GetHists() || stack->GetHists()->GetEntries() <= 0) {
AliWarningF("No histograms in %s", stack->GetName());
continue;
}
stack->Draw(opt.Data());
TString tit(stack->GetTitle());
if (rel && i != 0 && i != 5)
tit = Form("#delta %s/%s", tit.Data(), tit.Data());
TH1* hist = stack->GetHistogram();
TAxis* yaxis = hist->GetYaxis();
yaxis->SetTitle(tit.Data());
yaxis->SetTitleSize(0.15);
yaxis->SetLabelSize(0.08);
yaxis->SetTitleOffset(0.35);
yaxis->SetTitleFont(132);
yaxis->SetLabelFont(132);
yaxis->SetNdivisions(5);
TAxis* xaxis = stack->GetHistogram()->GetXaxis();
xaxis->SetTitle("#eta");
xaxis->SetTitleSize(0.15);
xaxis->SetLabelSize(0.08);
xaxis->SetTitleOffset(0.35);
xaxis->SetTitleFont(132);
xaxis->SetLabelFont(132);
xaxis->SetNdivisions(10);
stack->Draw(opt.Data());
}
pad->cd();
}
void
AliFMDCorrELossFit::Print(Option_t* option) const
{
TString opt(option);
opt.ToUpper();
Int_t nRings = fRings.GetEntriesFast();
bool recurse = opt.Contains("R");
bool cache = opt.Contains("C") && fCache.GetSize() > 0;
Int_t nBins = fEtaAxis.GetNbins();
std::cout << "Low cut in fit range: " << fLowCut << "\n"
<< "Eta axis: " << nBins
<< " bins, range [" << fEtaAxis.GetXmin() << ","
<< fEtaAxis.GetXmax() << "]" << std::endl;
for (Int_t i = 0; i < nRings; i++) {
if (!fRings.At(i)) continue;
TObjArray* a = static_cast<TObjArray*>(fRings.At(i));
Int_t nFits = a->GetEntriesFast();
std::cout << a->GetName() << " [" << nFits << " entries]"
<< (recurse ? ":\n" : "\t");
Int_t min = fEtaAxis.GetNbins()+1;
Int_t max = 0;
for (Int_t j = 0; j < nFits; j++) {
if (!a->At(j)) continue;
min = TMath::Min(j, min);
max = TMath::Max(j, max);
if (recurse) {
std::cout << "Bin # " << j << "\t";
ELossFit* fit = static_cast<ELossFit*>(a->At(j));
fit->Print(option);
}
}
if (!recurse)
std::cout << " bin range: " << std::setw(3) << min
<< "-" << std::setw(3) << max << " " << std::setw(3)
<< (max-min+1) << " bins" << std::endl;
}
if (!cache) return;
std::cout << " eta bin | Fit bin \n"
<< " # range | FMD1i FMD2i FMD2o FMD3i FMD3o"
<< std::endl;
size_t oldPrec = std::cout.precision();
std::cout.precision(3);
for (Int_t i = 1; i <= nBins; i++) {
std::cout << std::setw(4) << i << " "
<< std::setw(5) << std::showpos << fEtaAxis.GetBinLowEdge(i)
<< " - " << std::setw(5) << fEtaAxis.GetBinUpEdge(i)
<< std::noshowpos << " | ";
for (Int_t j = 0; j < 5; j++) {
Int_t bin = CACHE(i,j,nBins);
if (bin <= 0) std::cout << " ";
else std::cout << std::setw(5) << bin
<< (bin == i ? ' ' : '*') << ' ';
}
std::cout << std::endl;
}
std::cout.precision(oldPrec);
}
void
AliFMDCorrELossFit::Browse(TBrowser* b)
{
b->Add(&fRings);
b->Add(&fEtaAxis);
}
AliFMDCorrELossFit.cxx:10 AliFMDCorrELossFit.cxx:11 AliFMDCorrELossFit.cxx:12 AliFMDCorrELossFit.cxx:13 AliFMDCorrELossFit.cxx:14 AliFMDCorrELossFit.cxx:15 AliFMDCorrELossFit.cxx:16 AliFMDCorrELossFit.cxx:17 AliFMDCorrELossFit.cxx:18 AliFMDCorrELossFit.cxx:19 AliFMDCorrELossFit.cxx:20 AliFMDCorrELossFit.cxx:21 AliFMDCorrELossFit.cxx:22 AliFMDCorrELossFit.cxx:23 AliFMDCorrELossFit.cxx:24 AliFMDCorrELossFit.cxx:25 AliFMDCorrELossFit.cxx:26 AliFMDCorrELossFit.cxx:27 AliFMDCorrELossFit.cxx:28 AliFMDCorrELossFit.cxx:29 AliFMDCorrELossFit.cxx:30 AliFMDCorrELossFit.cxx:31 AliFMDCorrELossFit.cxx:32 AliFMDCorrELossFit.cxx:33 AliFMDCorrELossFit.cxx:34 AliFMDCorrELossFit.cxx:35 AliFMDCorrELossFit.cxx:36 AliFMDCorrELossFit.cxx:37 AliFMDCorrELossFit.cxx:38 AliFMDCorrELossFit.cxx:39 AliFMDCorrELossFit.cxx:40 AliFMDCorrELossFit.cxx:41 AliFMDCorrELossFit.cxx:42 AliFMDCorrELossFit.cxx:43 AliFMDCorrELossFit.cxx:44 AliFMDCorrELossFit.cxx:45 AliFMDCorrELossFit.cxx:46 AliFMDCorrELossFit.cxx:47 AliFMDCorrELossFit.cxx:48 AliFMDCorrELossFit.cxx:49 AliFMDCorrELossFit.cxx:50 AliFMDCorrELossFit.cxx:51 AliFMDCorrELossFit.cxx:52 AliFMDCorrELossFit.cxx:53 AliFMDCorrELossFit.cxx:54 AliFMDCorrELossFit.cxx:55 AliFMDCorrELossFit.cxx:56 AliFMDCorrELossFit.cxx:57 AliFMDCorrELossFit.cxx:58 AliFMDCorrELossFit.cxx:59 AliFMDCorrELossFit.cxx:60 AliFMDCorrELossFit.cxx:61 AliFMDCorrELossFit.cxx:62 AliFMDCorrELossFit.cxx:63 AliFMDCorrELossFit.cxx:64 AliFMDCorrELossFit.cxx:65 AliFMDCorrELossFit.cxx:66 AliFMDCorrELossFit.cxx:67 AliFMDCorrELossFit.cxx:68 AliFMDCorrELossFit.cxx:69 AliFMDCorrELossFit.cxx:70 AliFMDCorrELossFit.cxx:71 AliFMDCorrELossFit.cxx:72 AliFMDCorrELossFit.cxx:73 AliFMDCorrELossFit.cxx:74 AliFMDCorrELossFit.cxx:75 AliFMDCorrELossFit.cxx:76 AliFMDCorrELossFit.cxx:77 AliFMDCorrELossFit.cxx:78 AliFMDCorrELossFit.cxx:79 AliFMDCorrELossFit.cxx:80 AliFMDCorrELossFit.cxx:81 AliFMDCorrELossFit.cxx:82 AliFMDCorrELossFit.cxx:83 AliFMDCorrELossFit.cxx:84 AliFMDCorrELossFit.cxx:85 AliFMDCorrELossFit.cxx:86 AliFMDCorrELossFit.cxx:87 AliFMDCorrELossFit.cxx:88 AliFMDCorrELossFit.cxx:89 AliFMDCorrELossFit.cxx:90 AliFMDCorrELossFit.cxx:91 AliFMDCorrELossFit.cxx:92 AliFMDCorrELossFit.cxx:93 AliFMDCorrELossFit.cxx:94 AliFMDCorrELossFit.cxx:95 AliFMDCorrELossFit.cxx:96 AliFMDCorrELossFit.cxx:97 AliFMDCorrELossFit.cxx:98 AliFMDCorrELossFit.cxx:99 AliFMDCorrELossFit.cxx:100 AliFMDCorrELossFit.cxx:101 AliFMDCorrELossFit.cxx:102 AliFMDCorrELossFit.cxx:103 AliFMDCorrELossFit.cxx:104 AliFMDCorrELossFit.cxx:105 AliFMDCorrELossFit.cxx:106 AliFMDCorrELossFit.cxx:107 AliFMDCorrELossFit.cxx:108 AliFMDCorrELossFit.cxx:109 AliFMDCorrELossFit.cxx:110 AliFMDCorrELossFit.cxx:111 AliFMDCorrELossFit.cxx:112 AliFMDCorrELossFit.cxx:113 AliFMDCorrELossFit.cxx:114 AliFMDCorrELossFit.cxx:115 AliFMDCorrELossFit.cxx:116 AliFMDCorrELossFit.cxx:117 AliFMDCorrELossFit.cxx:118 AliFMDCorrELossFit.cxx:119 AliFMDCorrELossFit.cxx:120 AliFMDCorrELossFit.cxx:121 AliFMDCorrELossFit.cxx:122 AliFMDCorrELossFit.cxx:123 AliFMDCorrELossFit.cxx:124 AliFMDCorrELossFit.cxx:125 AliFMDCorrELossFit.cxx:126 AliFMDCorrELossFit.cxx:127 AliFMDCorrELossFit.cxx:128 AliFMDCorrELossFit.cxx:129 AliFMDCorrELossFit.cxx:130 AliFMDCorrELossFit.cxx:131 AliFMDCorrELossFit.cxx:132 AliFMDCorrELossFit.cxx:133 AliFMDCorrELossFit.cxx:134 AliFMDCorrELossFit.cxx:135 AliFMDCorrELossFit.cxx:136 AliFMDCorrELossFit.cxx:137 AliFMDCorrELossFit.cxx:138 AliFMDCorrELossFit.cxx:139 AliFMDCorrELossFit.cxx:140 AliFMDCorrELossFit.cxx:141 AliFMDCorrELossFit.cxx:142 AliFMDCorrELossFit.cxx:143 AliFMDCorrELossFit.cxx:144 AliFMDCorrELossFit.cxx:145 AliFMDCorrELossFit.cxx:146 AliFMDCorrELossFit.cxx:147 AliFMDCorrELossFit.cxx:148 AliFMDCorrELossFit.cxx:149 AliFMDCorrELossFit.cxx:150 AliFMDCorrELossFit.cxx:151 AliFMDCorrELossFit.cxx:152 AliFMDCorrELossFit.cxx:153 AliFMDCorrELossFit.cxx:154 AliFMDCorrELossFit.cxx:155 AliFMDCorrELossFit.cxx:156 AliFMDCorrELossFit.cxx:157 AliFMDCorrELossFit.cxx:158 AliFMDCorrELossFit.cxx:159 AliFMDCorrELossFit.cxx:160 AliFMDCorrELossFit.cxx:161 AliFMDCorrELossFit.cxx:162 AliFMDCorrELossFit.cxx:163 AliFMDCorrELossFit.cxx:164 AliFMDCorrELossFit.cxx:165 AliFMDCorrELossFit.cxx:166 AliFMDCorrELossFit.cxx:167 AliFMDCorrELossFit.cxx:168 AliFMDCorrELossFit.cxx:169 AliFMDCorrELossFit.cxx:170 AliFMDCorrELossFit.cxx:171 AliFMDCorrELossFit.cxx:172 AliFMDCorrELossFit.cxx:173 AliFMDCorrELossFit.cxx:174 AliFMDCorrELossFit.cxx:175 AliFMDCorrELossFit.cxx:176 AliFMDCorrELossFit.cxx:177 AliFMDCorrELossFit.cxx:178 AliFMDCorrELossFit.cxx:179 AliFMDCorrELossFit.cxx:180 AliFMDCorrELossFit.cxx:181 AliFMDCorrELossFit.cxx:182 AliFMDCorrELossFit.cxx:183 AliFMDCorrELossFit.cxx:184 AliFMDCorrELossFit.cxx:185 AliFMDCorrELossFit.cxx:186 AliFMDCorrELossFit.cxx:187 AliFMDCorrELossFit.cxx:188 AliFMDCorrELossFit.cxx:189 AliFMDCorrELossFit.cxx:190 AliFMDCorrELossFit.cxx:191 AliFMDCorrELossFit.cxx:192 AliFMDCorrELossFit.cxx:193 AliFMDCorrELossFit.cxx:194 AliFMDCorrELossFit.cxx:195 AliFMDCorrELossFit.cxx:196 AliFMDCorrELossFit.cxx:197 AliFMDCorrELossFit.cxx:198 AliFMDCorrELossFit.cxx:199 AliFMDCorrELossFit.cxx:200 AliFMDCorrELossFit.cxx:201 AliFMDCorrELossFit.cxx:202 AliFMDCorrELossFit.cxx:203 AliFMDCorrELossFit.cxx:204 AliFMDCorrELossFit.cxx:205 AliFMDCorrELossFit.cxx:206 AliFMDCorrELossFit.cxx:207 AliFMDCorrELossFit.cxx:208 AliFMDCorrELossFit.cxx:209 AliFMDCorrELossFit.cxx:210 AliFMDCorrELossFit.cxx:211 AliFMDCorrELossFit.cxx:212 AliFMDCorrELossFit.cxx:213 AliFMDCorrELossFit.cxx:214 AliFMDCorrELossFit.cxx:215 AliFMDCorrELossFit.cxx:216 AliFMDCorrELossFit.cxx:217 AliFMDCorrELossFit.cxx:218 AliFMDCorrELossFit.cxx:219 AliFMDCorrELossFit.cxx:220 AliFMDCorrELossFit.cxx:221 AliFMDCorrELossFit.cxx:222 AliFMDCorrELossFit.cxx:223 AliFMDCorrELossFit.cxx:224 AliFMDCorrELossFit.cxx:225 AliFMDCorrELossFit.cxx:226 AliFMDCorrELossFit.cxx:227 AliFMDCorrELossFit.cxx:228 AliFMDCorrELossFit.cxx:229 AliFMDCorrELossFit.cxx:230 AliFMDCorrELossFit.cxx:231 AliFMDCorrELossFit.cxx:232 AliFMDCorrELossFit.cxx:233 AliFMDCorrELossFit.cxx:234 AliFMDCorrELossFit.cxx:235 AliFMDCorrELossFit.cxx:236 AliFMDCorrELossFit.cxx:237 AliFMDCorrELossFit.cxx:238 AliFMDCorrELossFit.cxx:239 AliFMDCorrELossFit.cxx:240 AliFMDCorrELossFit.cxx:241 AliFMDCorrELossFit.cxx:242 AliFMDCorrELossFit.cxx:243 AliFMDCorrELossFit.cxx:244 AliFMDCorrELossFit.cxx:245 AliFMDCorrELossFit.cxx:246 AliFMDCorrELossFit.cxx:247 AliFMDCorrELossFit.cxx:248 AliFMDCorrELossFit.cxx:249 AliFMDCorrELossFit.cxx:250 AliFMDCorrELossFit.cxx:251 AliFMDCorrELossFit.cxx:252 AliFMDCorrELossFit.cxx:253 AliFMDCorrELossFit.cxx:254 AliFMDCorrELossFit.cxx:255 AliFMDCorrELossFit.cxx:256 AliFMDCorrELossFit.cxx:257 AliFMDCorrELossFit.cxx:258 AliFMDCorrELossFit.cxx:259 AliFMDCorrELossFit.cxx:260 AliFMDCorrELossFit.cxx:261 AliFMDCorrELossFit.cxx:262 AliFMDCorrELossFit.cxx:263 AliFMDCorrELossFit.cxx:264 AliFMDCorrELossFit.cxx:265 AliFMDCorrELossFit.cxx:266 AliFMDCorrELossFit.cxx:267 AliFMDCorrELossFit.cxx:268 AliFMDCorrELossFit.cxx:269 AliFMDCorrELossFit.cxx:270 AliFMDCorrELossFit.cxx:271 AliFMDCorrELossFit.cxx:272 AliFMDCorrELossFit.cxx:273 AliFMDCorrELossFit.cxx:274 AliFMDCorrELossFit.cxx:275 AliFMDCorrELossFit.cxx:276 AliFMDCorrELossFit.cxx:277 AliFMDCorrELossFit.cxx:278 AliFMDCorrELossFit.cxx:279 AliFMDCorrELossFit.cxx:280 AliFMDCorrELossFit.cxx:281 AliFMDCorrELossFit.cxx:282 AliFMDCorrELossFit.cxx:283 AliFMDCorrELossFit.cxx:284 AliFMDCorrELossFit.cxx:285 AliFMDCorrELossFit.cxx:286 AliFMDCorrELossFit.cxx:287 AliFMDCorrELossFit.cxx:288 AliFMDCorrELossFit.cxx:289 AliFMDCorrELossFit.cxx:290 AliFMDCorrELossFit.cxx:291 AliFMDCorrELossFit.cxx:292 AliFMDCorrELossFit.cxx:293 AliFMDCorrELossFit.cxx:294 AliFMDCorrELossFit.cxx:295 AliFMDCorrELossFit.cxx:296 AliFMDCorrELossFit.cxx:297 AliFMDCorrELossFit.cxx:298 AliFMDCorrELossFit.cxx:299 AliFMDCorrELossFit.cxx:300 AliFMDCorrELossFit.cxx:301 AliFMDCorrELossFit.cxx:302 AliFMDCorrELossFit.cxx:303 AliFMDCorrELossFit.cxx:304 AliFMDCorrELossFit.cxx:305 AliFMDCorrELossFit.cxx:306 AliFMDCorrELossFit.cxx:307 AliFMDCorrELossFit.cxx:308 AliFMDCorrELossFit.cxx:309 AliFMDCorrELossFit.cxx:310 AliFMDCorrELossFit.cxx:311 AliFMDCorrELossFit.cxx:312 AliFMDCorrELossFit.cxx:313 AliFMDCorrELossFit.cxx:314 AliFMDCorrELossFit.cxx:315 AliFMDCorrELossFit.cxx:316 AliFMDCorrELossFit.cxx:317 AliFMDCorrELossFit.cxx:318 AliFMDCorrELossFit.cxx:319 AliFMDCorrELossFit.cxx:320 AliFMDCorrELossFit.cxx:321 AliFMDCorrELossFit.cxx:322 AliFMDCorrELossFit.cxx:323 AliFMDCorrELossFit.cxx:324 AliFMDCorrELossFit.cxx:325 AliFMDCorrELossFit.cxx:326 AliFMDCorrELossFit.cxx:327 AliFMDCorrELossFit.cxx:328 AliFMDCorrELossFit.cxx:329 AliFMDCorrELossFit.cxx:330 AliFMDCorrELossFit.cxx:331 AliFMDCorrELossFit.cxx:332 AliFMDCorrELossFit.cxx:333 AliFMDCorrELossFit.cxx:334 AliFMDCorrELossFit.cxx:335 AliFMDCorrELossFit.cxx:336 AliFMDCorrELossFit.cxx:337 AliFMDCorrELossFit.cxx:338 AliFMDCorrELossFit.cxx:339 AliFMDCorrELossFit.cxx:340 AliFMDCorrELossFit.cxx:341 AliFMDCorrELossFit.cxx:342 AliFMDCorrELossFit.cxx:343 AliFMDCorrELossFit.cxx:344 AliFMDCorrELossFit.cxx:345 AliFMDCorrELossFit.cxx:346 AliFMDCorrELossFit.cxx:347 AliFMDCorrELossFit.cxx:348 AliFMDCorrELossFit.cxx:349 AliFMDCorrELossFit.cxx:350 AliFMDCorrELossFit.cxx:351 AliFMDCorrELossFit.cxx:352 AliFMDCorrELossFit.cxx:353 AliFMDCorrELossFit.cxx:354 AliFMDCorrELossFit.cxx:355 AliFMDCorrELossFit.cxx:356 AliFMDCorrELossFit.cxx:357 AliFMDCorrELossFit.cxx:358 AliFMDCorrELossFit.cxx:359 AliFMDCorrELossFit.cxx:360 AliFMDCorrELossFit.cxx:361 AliFMDCorrELossFit.cxx:362 AliFMDCorrELossFit.cxx:363 AliFMDCorrELossFit.cxx:364 AliFMDCorrELossFit.cxx:365 AliFMDCorrELossFit.cxx:366 AliFMDCorrELossFit.cxx:367 AliFMDCorrELossFit.cxx:368 AliFMDCorrELossFit.cxx:369 AliFMDCorrELossFit.cxx:370 AliFMDCorrELossFit.cxx:371 AliFMDCorrELossFit.cxx:372 AliFMDCorrELossFit.cxx:373 AliFMDCorrELossFit.cxx:374 AliFMDCorrELossFit.cxx:375 AliFMDCorrELossFit.cxx:376 AliFMDCorrELossFit.cxx:377 AliFMDCorrELossFit.cxx:378 AliFMDCorrELossFit.cxx:379 AliFMDCorrELossFit.cxx:380 AliFMDCorrELossFit.cxx:381 AliFMDCorrELossFit.cxx:382 AliFMDCorrELossFit.cxx:383 AliFMDCorrELossFit.cxx:384 AliFMDCorrELossFit.cxx:385 AliFMDCorrELossFit.cxx:386 AliFMDCorrELossFit.cxx:387 AliFMDCorrELossFit.cxx:388 AliFMDCorrELossFit.cxx:389 AliFMDCorrELossFit.cxx:390 AliFMDCorrELossFit.cxx:391 AliFMDCorrELossFit.cxx:392 AliFMDCorrELossFit.cxx:393 AliFMDCorrELossFit.cxx:394 AliFMDCorrELossFit.cxx:395 AliFMDCorrELossFit.cxx:396 AliFMDCorrELossFit.cxx:397 AliFMDCorrELossFit.cxx:398 AliFMDCorrELossFit.cxx:399 AliFMDCorrELossFit.cxx:400 AliFMDCorrELossFit.cxx:401 AliFMDCorrELossFit.cxx:402 AliFMDCorrELossFit.cxx:403 AliFMDCorrELossFit.cxx:404 AliFMDCorrELossFit.cxx:405 AliFMDCorrELossFit.cxx:406 AliFMDCorrELossFit.cxx:407 AliFMDCorrELossFit.cxx:408 AliFMDCorrELossFit.cxx:409 AliFMDCorrELossFit.cxx:410 AliFMDCorrELossFit.cxx:411 AliFMDCorrELossFit.cxx:412 AliFMDCorrELossFit.cxx:413 AliFMDCorrELossFit.cxx:414 AliFMDCorrELossFit.cxx:415 AliFMDCorrELossFit.cxx:416 AliFMDCorrELossFit.cxx:417 AliFMDCorrELossFit.cxx:418 AliFMDCorrELossFit.cxx:419 AliFMDCorrELossFit.cxx:420 AliFMDCorrELossFit.cxx:421 AliFMDCorrELossFit.cxx:422 AliFMDCorrELossFit.cxx:423 AliFMDCorrELossFit.cxx:424 AliFMDCorrELossFit.cxx:425 AliFMDCorrELossFit.cxx:426 AliFMDCorrELossFit.cxx:427 AliFMDCorrELossFit.cxx:428 AliFMDCorrELossFit.cxx:429 AliFMDCorrELossFit.cxx:430 AliFMDCorrELossFit.cxx:431 AliFMDCorrELossFit.cxx:432 AliFMDCorrELossFit.cxx:433 AliFMDCorrELossFit.cxx:434 AliFMDCorrELossFit.cxx:435 AliFMDCorrELossFit.cxx:436 AliFMDCorrELossFit.cxx:437 AliFMDCorrELossFit.cxx:438 AliFMDCorrELossFit.cxx:439 AliFMDCorrELossFit.cxx:440 AliFMDCorrELossFit.cxx:441 AliFMDCorrELossFit.cxx:442 AliFMDCorrELossFit.cxx:443 AliFMDCorrELossFit.cxx:444 AliFMDCorrELossFit.cxx:445 AliFMDCorrELossFit.cxx:446 AliFMDCorrELossFit.cxx:447 AliFMDCorrELossFit.cxx:448 AliFMDCorrELossFit.cxx:449 AliFMDCorrELossFit.cxx:450 AliFMDCorrELossFit.cxx:451 AliFMDCorrELossFit.cxx:452 AliFMDCorrELossFit.cxx:453 AliFMDCorrELossFit.cxx:454 AliFMDCorrELossFit.cxx:455 AliFMDCorrELossFit.cxx:456 AliFMDCorrELossFit.cxx:457 AliFMDCorrELossFit.cxx:458 AliFMDCorrELossFit.cxx:459 AliFMDCorrELossFit.cxx:460 AliFMDCorrELossFit.cxx:461 AliFMDCorrELossFit.cxx:462 AliFMDCorrELossFit.cxx:463 AliFMDCorrELossFit.cxx:464 AliFMDCorrELossFit.cxx:465 AliFMDCorrELossFit.cxx:466 AliFMDCorrELossFit.cxx:467 AliFMDCorrELossFit.cxx:468 AliFMDCorrELossFit.cxx:469 AliFMDCorrELossFit.cxx:470 AliFMDCorrELossFit.cxx:471 AliFMDCorrELossFit.cxx:472 AliFMDCorrELossFit.cxx:473 AliFMDCorrELossFit.cxx:474 AliFMDCorrELossFit.cxx:475 AliFMDCorrELossFit.cxx:476 AliFMDCorrELossFit.cxx:477 AliFMDCorrELossFit.cxx:478 AliFMDCorrELossFit.cxx:479 AliFMDCorrELossFit.cxx:480 AliFMDCorrELossFit.cxx:481 AliFMDCorrELossFit.cxx:482 AliFMDCorrELossFit.cxx:483 AliFMDCorrELossFit.cxx:484 AliFMDCorrELossFit.cxx:485 AliFMDCorrELossFit.cxx:486 AliFMDCorrELossFit.cxx:487 AliFMDCorrELossFit.cxx:488 AliFMDCorrELossFit.cxx:489 AliFMDCorrELossFit.cxx:490 AliFMDCorrELossFit.cxx:491 AliFMDCorrELossFit.cxx:492 AliFMDCorrELossFit.cxx:493 AliFMDCorrELossFit.cxx:494 AliFMDCorrELossFit.cxx:495 AliFMDCorrELossFit.cxx:496 AliFMDCorrELossFit.cxx:497 AliFMDCorrELossFit.cxx:498 AliFMDCorrELossFit.cxx:499 AliFMDCorrELossFit.cxx:500 AliFMDCorrELossFit.cxx:501 AliFMDCorrELossFit.cxx:502 AliFMDCorrELossFit.cxx:503 AliFMDCorrELossFit.cxx:504 AliFMDCorrELossFit.cxx:505 AliFMDCorrELossFit.cxx:506 AliFMDCorrELossFit.cxx:507 AliFMDCorrELossFit.cxx:508 AliFMDCorrELossFit.cxx:509 AliFMDCorrELossFit.cxx:510 AliFMDCorrELossFit.cxx:511 AliFMDCorrELossFit.cxx:512 AliFMDCorrELossFit.cxx:513 AliFMDCorrELossFit.cxx:514 AliFMDCorrELossFit.cxx:515 AliFMDCorrELossFit.cxx:516 AliFMDCorrELossFit.cxx:517 AliFMDCorrELossFit.cxx:518 AliFMDCorrELossFit.cxx:519 AliFMDCorrELossFit.cxx:520 AliFMDCorrELossFit.cxx:521 AliFMDCorrELossFit.cxx:522 AliFMDCorrELossFit.cxx:523 AliFMDCorrELossFit.cxx:524 AliFMDCorrELossFit.cxx:525 AliFMDCorrELossFit.cxx:526 AliFMDCorrELossFit.cxx:527 AliFMDCorrELossFit.cxx:528 AliFMDCorrELossFit.cxx:529 AliFMDCorrELossFit.cxx:530 AliFMDCorrELossFit.cxx:531 AliFMDCorrELossFit.cxx:532 AliFMDCorrELossFit.cxx:533 AliFMDCorrELossFit.cxx:534 AliFMDCorrELossFit.cxx:535 AliFMDCorrELossFit.cxx:536 AliFMDCorrELossFit.cxx:537 AliFMDCorrELossFit.cxx:538 AliFMDCorrELossFit.cxx:539 AliFMDCorrELossFit.cxx:540 AliFMDCorrELossFit.cxx:541 AliFMDCorrELossFit.cxx:542 AliFMDCorrELossFit.cxx:543 AliFMDCorrELossFit.cxx:544 AliFMDCorrELossFit.cxx:545 AliFMDCorrELossFit.cxx:546 AliFMDCorrELossFit.cxx:547 AliFMDCorrELossFit.cxx:548 AliFMDCorrELossFit.cxx:549 AliFMDCorrELossFit.cxx:550 AliFMDCorrELossFit.cxx:551 AliFMDCorrELossFit.cxx:552 AliFMDCorrELossFit.cxx:553 AliFMDCorrELossFit.cxx:554 AliFMDCorrELossFit.cxx:555 AliFMDCorrELossFit.cxx:556 AliFMDCorrELossFit.cxx:557 AliFMDCorrELossFit.cxx:558 AliFMDCorrELossFit.cxx:559 AliFMDCorrELossFit.cxx:560 AliFMDCorrELossFit.cxx:561 AliFMDCorrELossFit.cxx:562 AliFMDCorrELossFit.cxx:563 AliFMDCorrELossFit.cxx:564 AliFMDCorrELossFit.cxx:565 AliFMDCorrELossFit.cxx:566 AliFMDCorrELossFit.cxx:567 AliFMDCorrELossFit.cxx:568 AliFMDCorrELossFit.cxx:569 AliFMDCorrELossFit.cxx:570 AliFMDCorrELossFit.cxx:571 AliFMDCorrELossFit.cxx:572 AliFMDCorrELossFit.cxx:573 AliFMDCorrELossFit.cxx:574 AliFMDCorrELossFit.cxx:575 AliFMDCorrELossFit.cxx:576 AliFMDCorrELossFit.cxx:577 AliFMDCorrELossFit.cxx:578 AliFMDCorrELossFit.cxx:579 AliFMDCorrELossFit.cxx:580 AliFMDCorrELossFit.cxx:581 AliFMDCorrELossFit.cxx:582 AliFMDCorrELossFit.cxx:583 AliFMDCorrELossFit.cxx:584 AliFMDCorrELossFit.cxx:585 AliFMDCorrELossFit.cxx:586 AliFMDCorrELossFit.cxx:587 AliFMDCorrELossFit.cxx:588 AliFMDCorrELossFit.cxx:589 AliFMDCorrELossFit.cxx:590 AliFMDCorrELossFit.cxx:591 AliFMDCorrELossFit.cxx:592 AliFMDCorrELossFit.cxx:593 AliFMDCorrELossFit.cxx:594 AliFMDCorrELossFit.cxx:595 AliFMDCorrELossFit.cxx:596 AliFMDCorrELossFit.cxx:597 AliFMDCorrELossFit.cxx:598 AliFMDCorrELossFit.cxx:599 AliFMDCorrELossFit.cxx:600 AliFMDCorrELossFit.cxx:601 AliFMDCorrELossFit.cxx:602 AliFMDCorrELossFit.cxx:603 AliFMDCorrELossFit.cxx:604 AliFMDCorrELossFit.cxx:605 AliFMDCorrELossFit.cxx:606 AliFMDCorrELossFit.cxx:607 AliFMDCorrELossFit.cxx:608 AliFMDCorrELossFit.cxx:609 AliFMDCorrELossFit.cxx:610 AliFMDCorrELossFit.cxx:611 AliFMDCorrELossFit.cxx:612 AliFMDCorrELossFit.cxx:613 AliFMDCorrELossFit.cxx:614 AliFMDCorrELossFit.cxx:615 AliFMDCorrELossFit.cxx:616 AliFMDCorrELossFit.cxx:617 AliFMDCorrELossFit.cxx:618 AliFMDCorrELossFit.cxx:619 AliFMDCorrELossFit.cxx:620 AliFMDCorrELossFit.cxx:621 AliFMDCorrELossFit.cxx:622 AliFMDCorrELossFit.cxx:623 AliFMDCorrELossFit.cxx:624 AliFMDCorrELossFit.cxx:625 AliFMDCorrELossFit.cxx:626 AliFMDCorrELossFit.cxx:627 AliFMDCorrELossFit.cxx:628 AliFMDCorrELossFit.cxx:629 AliFMDCorrELossFit.cxx:630 AliFMDCorrELossFit.cxx:631 AliFMDCorrELossFit.cxx:632 AliFMDCorrELossFit.cxx:633 AliFMDCorrELossFit.cxx:634 AliFMDCorrELossFit.cxx:635 AliFMDCorrELossFit.cxx:636 AliFMDCorrELossFit.cxx:637 AliFMDCorrELossFit.cxx:638 AliFMDCorrELossFit.cxx:639 AliFMDCorrELossFit.cxx:640 AliFMDCorrELossFit.cxx:641 AliFMDCorrELossFit.cxx:642 AliFMDCorrELossFit.cxx:643 AliFMDCorrELossFit.cxx:644 AliFMDCorrELossFit.cxx:645 AliFMDCorrELossFit.cxx:646 AliFMDCorrELossFit.cxx:647 AliFMDCorrELossFit.cxx:648 AliFMDCorrELossFit.cxx:649 AliFMDCorrELossFit.cxx:650 AliFMDCorrELossFit.cxx:651 AliFMDCorrELossFit.cxx:652 AliFMDCorrELossFit.cxx:653 AliFMDCorrELossFit.cxx:654 AliFMDCorrELossFit.cxx:655 AliFMDCorrELossFit.cxx:656 AliFMDCorrELossFit.cxx:657 AliFMDCorrELossFit.cxx:658 AliFMDCorrELossFit.cxx:659 AliFMDCorrELossFit.cxx:660 AliFMDCorrELossFit.cxx:661 AliFMDCorrELossFit.cxx:662 AliFMDCorrELossFit.cxx:663 AliFMDCorrELossFit.cxx:664 AliFMDCorrELossFit.cxx:665 AliFMDCorrELossFit.cxx:666 AliFMDCorrELossFit.cxx:667 AliFMDCorrELossFit.cxx:668 AliFMDCorrELossFit.cxx:669 AliFMDCorrELossFit.cxx:670 AliFMDCorrELossFit.cxx:671 AliFMDCorrELossFit.cxx:672 AliFMDCorrELossFit.cxx:673 AliFMDCorrELossFit.cxx:674 AliFMDCorrELossFit.cxx:675 AliFMDCorrELossFit.cxx:676 AliFMDCorrELossFit.cxx:677 AliFMDCorrELossFit.cxx:678 AliFMDCorrELossFit.cxx:679 AliFMDCorrELossFit.cxx:680 AliFMDCorrELossFit.cxx:681 AliFMDCorrELossFit.cxx:682 AliFMDCorrELossFit.cxx:683 AliFMDCorrELossFit.cxx:684 AliFMDCorrELossFit.cxx:685 AliFMDCorrELossFit.cxx:686 AliFMDCorrELossFit.cxx:687 AliFMDCorrELossFit.cxx:688 AliFMDCorrELossFit.cxx:689 AliFMDCorrELossFit.cxx:690 AliFMDCorrELossFit.cxx:691 AliFMDCorrELossFit.cxx:692 AliFMDCorrELossFit.cxx:693 AliFMDCorrELossFit.cxx:694 AliFMDCorrELossFit.cxx:695 AliFMDCorrELossFit.cxx:696 AliFMDCorrELossFit.cxx:697 AliFMDCorrELossFit.cxx:698 AliFMDCorrELossFit.cxx:699 AliFMDCorrELossFit.cxx:700 AliFMDCorrELossFit.cxx:701 AliFMDCorrELossFit.cxx:702 AliFMDCorrELossFit.cxx:703 AliFMDCorrELossFit.cxx:704 AliFMDCorrELossFit.cxx:705 AliFMDCorrELossFit.cxx:706 AliFMDCorrELossFit.cxx:707 AliFMDCorrELossFit.cxx:708 AliFMDCorrELossFit.cxx:709 AliFMDCorrELossFit.cxx:710 AliFMDCorrELossFit.cxx:711 AliFMDCorrELossFit.cxx:712 AliFMDCorrELossFit.cxx:713 AliFMDCorrELossFit.cxx:714 AliFMDCorrELossFit.cxx:715 AliFMDCorrELossFit.cxx:716 AliFMDCorrELossFit.cxx:717 AliFMDCorrELossFit.cxx:718 AliFMDCorrELossFit.cxx:719 AliFMDCorrELossFit.cxx:720 AliFMDCorrELossFit.cxx:721 AliFMDCorrELossFit.cxx:722 AliFMDCorrELossFit.cxx:723 AliFMDCorrELossFit.cxx:724 AliFMDCorrELossFit.cxx:725 AliFMDCorrELossFit.cxx:726 AliFMDCorrELossFit.cxx:727 AliFMDCorrELossFit.cxx:728 AliFMDCorrELossFit.cxx:729 AliFMDCorrELossFit.cxx:730 AliFMDCorrELossFit.cxx:731 AliFMDCorrELossFit.cxx:732 AliFMDCorrELossFit.cxx:733 AliFMDCorrELossFit.cxx:734 AliFMDCorrELossFit.cxx:735 AliFMDCorrELossFit.cxx:736 AliFMDCorrELossFit.cxx:737 AliFMDCorrELossFit.cxx:738 AliFMDCorrELossFit.cxx:739 AliFMDCorrELossFit.cxx:740 AliFMDCorrELossFit.cxx:741 AliFMDCorrELossFit.cxx:742 AliFMDCorrELossFit.cxx:743 AliFMDCorrELossFit.cxx:744 AliFMDCorrELossFit.cxx:745 AliFMDCorrELossFit.cxx:746 AliFMDCorrELossFit.cxx:747 AliFMDCorrELossFit.cxx:748 AliFMDCorrELossFit.cxx:749 AliFMDCorrELossFit.cxx:750 AliFMDCorrELossFit.cxx:751 AliFMDCorrELossFit.cxx:752 AliFMDCorrELossFit.cxx:753 AliFMDCorrELossFit.cxx:754 AliFMDCorrELossFit.cxx:755 AliFMDCorrELossFit.cxx:756 AliFMDCorrELossFit.cxx:757 AliFMDCorrELossFit.cxx:758 AliFMDCorrELossFit.cxx:759 AliFMDCorrELossFit.cxx:760 AliFMDCorrELossFit.cxx:761 AliFMDCorrELossFit.cxx:762 AliFMDCorrELossFit.cxx:763 AliFMDCorrELossFit.cxx:764 AliFMDCorrELossFit.cxx:765 AliFMDCorrELossFit.cxx:766 AliFMDCorrELossFit.cxx:767 AliFMDCorrELossFit.cxx:768 AliFMDCorrELossFit.cxx:769 AliFMDCorrELossFit.cxx:770 AliFMDCorrELossFit.cxx:771 AliFMDCorrELossFit.cxx:772 AliFMDCorrELossFit.cxx:773 AliFMDCorrELossFit.cxx:774 AliFMDCorrELossFit.cxx:775 AliFMDCorrELossFit.cxx:776 AliFMDCorrELossFit.cxx:777 AliFMDCorrELossFit.cxx:778 AliFMDCorrELossFit.cxx:779 AliFMDCorrELossFit.cxx:780 AliFMDCorrELossFit.cxx:781 AliFMDCorrELossFit.cxx:782 AliFMDCorrELossFit.cxx:783 AliFMDCorrELossFit.cxx:784 AliFMDCorrELossFit.cxx:785 AliFMDCorrELossFit.cxx:786 AliFMDCorrELossFit.cxx:787 AliFMDCorrELossFit.cxx:788 AliFMDCorrELossFit.cxx:789 AliFMDCorrELossFit.cxx:790 AliFMDCorrELossFit.cxx:791 AliFMDCorrELossFit.cxx:792 AliFMDCorrELossFit.cxx:793 AliFMDCorrELossFit.cxx:794 AliFMDCorrELossFit.cxx:795 AliFMDCorrELossFit.cxx:796 AliFMDCorrELossFit.cxx:797 AliFMDCorrELossFit.cxx:798 AliFMDCorrELossFit.cxx:799 AliFMDCorrELossFit.cxx:800 AliFMDCorrELossFit.cxx:801 AliFMDCorrELossFit.cxx:802 AliFMDCorrELossFit.cxx:803 AliFMDCorrELossFit.cxx:804 AliFMDCorrELossFit.cxx:805 AliFMDCorrELossFit.cxx:806 AliFMDCorrELossFit.cxx:807 AliFMDCorrELossFit.cxx:808 AliFMDCorrELossFit.cxx:809 AliFMDCorrELossFit.cxx:810 AliFMDCorrELossFit.cxx:811 AliFMDCorrELossFit.cxx:812 AliFMDCorrELossFit.cxx:813 AliFMDCorrELossFit.cxx:814 AliFMDCorrELossFit.cxx:815 AliFMDCorrELossFit.cxx:816 AliFMDCorrELossFit.cxx:817 AliFMDCorrELossFit.cxx:818 AliFMDCorrELossFit.cxx:819 AliFMDCorrELossFit.cxx:820 AliFMDCorrELossFit.cxx:821 AliFMDCorrELossFit.cxx:822 AliFMDCorrELossFit.cxx:823 AliFMDCorrELossFit.cxx:824 AliFMDCorrELossFit.cxx:825 AliFMDCorrELossFit.cxx:826 AliFMDCorrELossFit.cxx:827 AliFMDCorrELossFit.cxx:828 AliFMDCorrELossFit.cxx:829 AliFMDCorrELossFit.cxx:830 AliFMDCorrELossFit.cxx:831 AliFMDCorrELossFit.cxx:832 AliFMDCorrELossFit.cxx:833 AliFMDCorrELossFit.cxx:834 AliFMDCorrELossFit.cxx:835 AliFMDCorrELossFit.cxx:836 AliFMDCorrELossFit.cxx:837 AliFMDCorrELossFit.cxx:838 AliFMDCorrELossFit.cxx:839 AliFMDCorrELossFit.cxx:840 AliFMDCorrELossFit.cxx:841 AliFMDCorrELossFit.cxx:842 AliFMDCorrELossFit.cxx:843 AliFMDCorrELossFit.cxx:844 AliFMDCorrELossFit.cxx:845 AliFMDCorrELossFit.cxx:846 AliFMDCorrELossFit.cxx:847 AliFMDCorrELossFit.cxx:848 AliFMDCorrELossFit.cxx:849 AliFMDCorrELossFit.cxx:850 AliFMDCorrELossFit.cxx:851 AliFMDCorrELossFit.cxx:852 AliFMDCorrELossFit.cxx:853 AliFMDCorrELossFit.cxx:854 AliFMDCorrELossFit.cxx:855 AliFMDCorrELossFit.cxx:856 AliFMDCorrELossFit.cxx:857 AliFMDCorrELossFit.cxx:858 AliFMDCorrELossFit.cxx:859 AliFMDCorrELossFit.cxx:860 AliFMDCorrELossFit.cxx:861 AliFMDCorrELossFit.cxx:862 AliFMDCorrELossFit.cxx:863 AliFMDCorrELossFit.cxx:864 AliFMDCorrELossFit.cxx:865 AliFMDCorrELossFit.cxx:866 AliFMDCorrELossFit.cxx:867 AliFMDCorrELossFit.cxx:868 AliFMDCorrELossFit.cxx:869 AliFMDCorrELossFit.cxx:870 AliFMDCorrELossFit.cxx:871 AliFMDCorrELossFit.cxx:872 AliFMDCorrELossFit.cxx:873 AliFMDCorrELossFit.cxx:874 AliFMDCorrELossFit.cxx:875 AliFMDCorrELossFit.cxx:876 AliFMDCorrELossFit.cxx:877 AliFMDCorrELossFit.cxx:878 AliFMDCorrELossFit.cxx:879 AliFMDCorrELossFit.cxx:880 AliFMDCorrELossFit.cxx:881 AliFMDCorrELossFit.cxx:882 AliFMDCorrELossFit.cxx:883 AliFMDCorrELossFit.cxx:884 AliFMDCorrELossFit.cxx:885 AliFMDCorrELossFit.cxx:886 AliFMDCorrELossFit.cxx:887 AliFMDCorrELossFit.cxx:888 AliFMDCorrELossFit.cxx:889 AliFMDCorrELossFit.cxx:890 AliFMDCorrELossFit.cxx:891 AliFMDCorrELossFit.cxx:892 AliFMDCorrELossFit.cxx:893 AliFMDCorrELossFit.cxx:894 AliFMDCorrELossFit.cxx:895 AliFMDCorrELossFit.cxx:896 AliFMDCorrELossFit.cxx:897 AliFMDCorrELossFit.cxx:898 AliFMDCorrELossFit.cxx:899 AliFMDCorrELossFit.cxx:900 AliFMDCorrELossFit.cxx:901 AliFMDCorrELossFit.cxx:902 AliFMDCorrELossFit.cxx:903 AliFMDCorrELossFit.cxx:904 AliFMDCorrELossFit.cxx:905 AliFMDCorrELossFit.cxx:906 AliFMDCorrELossFit.cxx:907 AliFMDCorrELossFit.cxx:908 AliFMDCorrELossFit.cxx:909 AliFMDCorrELossFit.cxx:910 AliFMDCorrELossFit.cxx:911 AliFMDCorrELossFit.cxx:912 AliFMDCorrELossFit.cxx:913 AliFMDCorrELossFit.cxx:914 AliFMDCorrELossFit.cxx:915 AliFMDCorrELossFit.cxx:916 AliFMDCorrELossFit.cxx:917 AliFMDCorrELossFit.cxx:918 AliFMDCorrELossFit.cxx:919 AliFMDCorrELossFit.cxx:920 AliFMDCorrELossFit.cxx:921 AliFMDCorrELossFit.cxx:922 AliFMDCorrELossFit.cxx:923 AliFMDCorrELossFit.cxx:924 AliFMDCorrELossFit.cxx:925 AliFMDCorrELossFit.cxx:926 AliFMDCorrELossFit.cxx:927 AliFMDCorrELossFit.cxx:928 AliFMDCorrELossFit.cxx:929 AliFMDCorrELossFit.cxx:930 AliFMDCorrELossFit.cxx:931 AliFMDCorrELossFit.cxx:932 AliFMDCorrELossFit.cxx:933 AliFMDCorrELossFit.cxx:934 AliFMDCorrELossFit.cxx:935 AliFMDCorrELossFit.cxx:936 AliFMDCorrELossFit.cxx:937 AliFMDCorrELossFit.cxx:938 AliFMDCorrELossFit.cxx:939 AliFMDCorrELossFit.cxx:940 AliFMDCorrELossFit.cxx:941 AliFMDCorrELossFit.cxx:942 AliFMDCorrELossFit.cxx:943 AliFMDCorrELossFit.cxx:944 AliFMDCorrELossFit.cxx:945 AliFMDCorrELossFit.cxx:946 AliFMDCorrELossFit.cxx:947 AliFMDCorrELossFit.cxx:948 AliFMDCorrELossFit.cxx:949 AliFMDCorrELossFit.cxx:950 AliFMDCorrELossFit.cxx:951 AliFMDCorrELossFit.cxx:952 AliFMDCorrELossFit.cxx:953 AliFMDCorrELossFit.cxx:954 AliFMDCorrELossFit.cxx:955 AliFMDCorrELossFit.cxx:956 AliFMDCorrELossFit.cxx:957 AliFMDCorrELossFit.cxx:958 AliFMDCorrELossFit.cxx:959 AliFMDCorrELossFit.cxx:960 AliFMDCorrELossFit.cxx:961 AliFMDCorrELossFit.cxx:962 AliFMDCorrELossFit.cxx:963 AliFMDCorrELossFit.cxx:964 AliFMDCorrELossFit.cxx:965 AliFMDCorrELossFit.cxx:966 AliFMDCorrELossFit.cxx:967 AliFMDCorrELossFit.cxx:968 AliFMDCorrELossFit.cxx:969 AliFMDCorrELossFit.cxx:970 AliFMDCorrELossFit.cxx:971 AliFMDCorrELossFit.cxx:972 AliFMDCorrELossFit.cxx:973 AliFMDCorrELossFit.cxx:974 AliFMDCorrELossFit.cxx:975 AliFMDCorrELossFit.cxx:976 AliFMDCorrELossFit.cxx:977 AliFMDCorrELossFit.cxx:978 AliFMDCorrELossFit.cxx:979 AliFMDCorrELossFit.cxx:980 AliFMDCorrELossFit.cxx:981 AliFMDCorrELossFit.cxx:982 AliFMDCorrELossFit.cxx:983 AliFMDCorrELossFit.cxx:984 AliFMDCorrELossFit.cxx:985 AliFMDCorrELossFit.cxx:986 AliFMDCorrELossFit.cxx:987 AliFMDCorrELossFit.cxx:988 AliFMDCorrELossFit.cxx:989 AliFMDCorrELossFit.cxx:990 AliFMDCorrELossFit.cxx:991 AliFMDCorrELossFit.cxx:992 AliFMDCorrELossFit.cxx:993 AliFMDCorrELossFit.cxx:994 AliFMDCorrELossFit.cxx:995 AliFMDCorrELossFit.cxx:996 AliFMDCorrELossFit.cxx:997 AliFMDCorrELossFit.cxx:998 AliFMDCorrELossFit.cxx:999 AliFMDCorrELossFit.cxx:1000 AliFMDCorrELossFit.cxx:1001 AliFMDCorrELossFit.cxx:1002 AliFMDCorrELossFit.cxx:1003 AliFMDCorrELossFit.cxx:1004 AliFMDCorrELossFit.cxx:1005 AliFMDCorrELossFit.cxx:1006 AliFMDCorrELossFit.cxx:1007 AliFMDCorrELossFit.cxx:1008 AliFMDCorrELossFit.cxx:1009 AliFMDCorrELossFit.cxx:1010 AliFMDCorrELossFit.cxx:1011 AliFMDCorrELossFit.cxx:1012 AliFMDCorrELossFit.cxx:1013 AliFMDCorrELossFit.cxx:1014 AliFMDCorrELossFit.cxx:1015 AliFMDCorrELossFit.cxx:1016 AliFMDCorrELossFit.cxx:1017 AliFMDCorrELossFit.cxx:1018 AliFMDCorrELossFit.cxx:1019 AliFMDCorrELossFit.cxx:1020 AliFMDCorrELossFit.cxx:1021 AliFMDCorrELossFit.cxx:1022 AliFMDCorrELossFit.cxx:1023 AliFMDCorrELossFit.cxx:1024 AliFMDCorrELossFit.cxx:1025 AliFMDCorrELossFit.cxx:1026 AliFMDCorrELossFit.cxx:1027 AliFMDCorrELossFit.cxx:1028 AliFMDCorrELossFit.cxx:1029 AliFMDCorrELossFit.cxx:1030 AliFMDCorrELossFit.cxx:1031 AliFMDCorrELossFit.cxx:1032 AliFMDCorrELossFit.cxx:1033 AliFMDCorrELossFit.cxx:1034 AliFMDCorrELossFit.cxx:1035 AliFMDCorrELossFit.cxx:1036 AliFMDCorrELossFit.cxx:1037 AliFMDCorrELossFit.cxx:1038 AliFMDCorrELossFit.cxx:1039 AliFMDCorrELossFit.cxx:1040 AliFMDCorrELossFit.cxx:1041 AliFMDCorrELossFit.cxx:1042 AliFMDCorrELossFit.cxx:1043 AliFMDCorrELossFit.cxx:1044 AliFMDCorrELossFit.cxx:1045 AliFMDCorrELossFit.cxx:1046 AliFMDCorrELossFit.cxx:1047 AliFMDCorrELossFit.cxx:1048 AliFMDCorrELossFit.cxx:1049 AliFMDCorrELossFit.cxx:1050 AliFMDCorrELossFit.cxx:1051 AliFMDCorrELossFit.cxx:1052 AliFMDCorrELossFit.cxx:1053 AliFMDCorrELossFit.cxx:1054 AliFMDCorrELossFit.cxx:1055 AliFMDCorrELossFit.cxx:1056 AliFMDCorrELossFit.cxx:1057 AliFMDCorrELossFit.cxx:1058 AliFMDCorrELossFit.cxx:1059 AliFMDCorrELossFit.cxx:1060 AliFMDCorrELossFit.cxx:1061 AliFMDCorrELossFit.cxx:1062 AliFMDCorrELossFit.cxx:1063 AliFMDCorrELossFit.cxx:1064 AliFMDCorrELossFit.cxx:1065 AliFMDCorrELossFit.cxx:1066 AliFMDCorrELossFit.cxx:1067 AliFMDCorrELossFit.cxx:1068 AliFMDCorrELossFit.cxx:1069 AliFMDCorrELossFit.cxx:1070 AliFMDCorrELossFit.cxx:1071 AliFMDCorrELossFit.cxx:1072 AliFMDCorrELossFit.cxx:1073 AliFMDCorrELossFit.cxx:1074 AliFMDCorrELossFit.cxx:1075 AliFMDCorrELossFit.cxx:1076 AliFMDCorrELossFit.cxx:1077 AliFMDCorrELossFit.cxx:1078 AliFMDCorrELossFit.cxx:1079 AliFMDCorrELossFit.cxx:1080 AliFMDCorrELossFit.cxx:1081 AliFMDCorrELossFit.cxx:1082 AliFMDCorrELossFit.cxx:1083 AliFMDCorrELossFit.cxx:1084 AliFMDCorrELossFit.cxx:1085 AliFMDCorrELossFit.cxx:1086 AliFMDCorrELossFit.cxx:1087 AliFMDCorrELossFit.cxx:1088 AliFMDCorrELossFit.cxx:1089 AliFMDCorrELossFit.cxx:1090 AliFMDCorrELossFit.cxx:1091 AliFMDCorrELossFit.cxx:1092 AliFMDCorrELossFit.cxx:1093 AliFMDCorrELossFit.cxx:1094 AliFMDCorrELossFit.cxx:1095 AliFMDCorrELossFit.cxx:1096 AliFMDCorrELossFit.cxx:1097 AliFMDCorrELossFit.cxx:1098 AliFMDCorrELossFit.cxx:1099 AliFMDCorrELossFit.cxx:1100 AliFMDCorrELossFit.cxx:1101 AliFMDCorrELossFit.cxx:1102 AliFMDCorrELossFit.cxx:1103 AliFMDCorrELossFit.cxx:1104 AliFMDCorrELossFit.cxx:1105 AliFMDCorrELossFit.cxx:1106 AliFMDCorrELossFit.cxx:1107 AliFMDCorrELossFit.cxx:1108 AliFMDCorrELossFit.cxx:1109 AliFMDCorrELossFit.cxx:1110 AliFMDCorrELossFit.cxx:1111 AliFMDCorrELossFit.cxx:1112 AliFMDCorrELossFit.cxx:1113 AliFMDCorrELossFit.cxx:1114 AliFMDCorrELossFit.cxx:1115 AliFMDCorrELossFit.cxx:1116 AliFMDCorrELossFit.cxx:1117 AliFMDCorrELossFit.cxx:1118 AliFMDCorrELossFit.cxx:1119 AliFMDCorrELossFit.cxx:1120 AliFMDCorrELossFit.cxx:1121 AliFMDCorrELossFit.cxx:1122 AliFMDCorrELossFit.cxx:1123 AliFMDCorrELossFit.cxx:1124 AliFMDCorrELossFit.cxx:1125 AliFMDCorrELossFit.cxx:1126 AliFMDCorrELossFit.cxx:1127 AliFMDCorrELossFit.cxx:1128 AliFMDCorrELossFit.cxx:1129 AliFMDCorrELossFit.cxx:1130 AliFMDCorrELossFit.cxx:1131 AliFMDCorrELossFit.cxx:1132 AliFMDCorrELossFit.cxx:1133 AliFMDCorrELossFit.cxx:1134 AliFMDCorrELossFit.cxx:1135 AliFMDCorrELossFit.cxx:1136 AliFMDCorrELossFit.cxx:1137 AliFMDCorrELossFit.cxx:1138 AliFMDCorrELossFit.cxx:1139 AliFMDCorrELossFit.cxx:1140 AliFMDCorrELossFit.cxx:1141 AliFMDCorrELossFit.cxx:1142 AliFMDCorrELossFit.cxx:1143 AliFMDCorrELossFit.cxx:1144 AliFMDCorrELossFit.cxx:1145 AliFMDCorrELossFit.cxx:1146 AliFMDCorrELossFit.cxx:1147 AliFMDCorrELossFit.cxx:1148 AliFMDCorrELossFit.cxx:1149 AliFMDCorrELossFit.cxx:1150 AliFMDCorrELossFit.cxx:1151 AliFMDCorrELossFit.cxx:1152 AliFMDCorrELossFit.cxx:1153 AliFMDCorrELossFit.cxx:1154 AliFMDCorrELossFit.cxx:1155 AliFMDCorrELossFit.cxx:1156 AliFMDCorrELossFit.cxx:1157 AliFMDCorrELossFit.cxx:1158 AliFMDCorrELossFit.cxx:1159 AliFMDCorrELossFit.cxx:1160 AliFMDCorrELossFit.cxx:1161 AliFMDCorrELossFit.cxx:1162 AliFMDCorrELossFit.cxx:1163 AliFMDCorrELossFit.cxx:1164 AliFMDCorrELossFit.cxx:1165 AliFMDCorrELossFit.cxx:1166 AliFMDCorrELossFit.cxx:1167 AliFMDCorrELossFit.cxx:1168 AliFMDCorrELossFit.cxx:1169 AliFMDCorrELossFit.cxx:1170 AliFMDCorrELossFit.cxx:1171 AliFMDCorrELossFit.cxx:1172 AliFMDCorrELossFit.cxx:1173 AliFMDCorrELossFit.cxx:1174 AliFMDCorrELossFit.cxx:1175 AliFMDCorrELossFit.cxx:1176 AliFMDCorrELossFit.cxx:1177 AliFMDCorrELossFit.cxx:1178 AliFMDCorrELossFit.cxx:1179 AliFMDCorrELossFit.cxx:1180 AliFMDCorrELossFit.cxx:1181 AliFMDCorrELossFit.cxx:1182 AliFMDCorrELossFit.cxx:1183 AliFMDCorrELossFit.cxx:1184 AliFMDCorrELossFit.cxx:1185 AliFMDCorrELossFit.cxx:1186 AliFMDCorrELossFit.cxx:1187 AliFMDCorrELossFit.cxx:1188 AliFMDCorrELossFit.cxx:1189 AliFMDCorrELossFit.cxx:1190 AliFMDCorrELossFit.cxx:1191 AliFMDCorrELossFit.cxx:1192 AliFMDCorrELossFit.cxx:1193 AliFMDCorrELossFit.cxx:1194 AliFMDCorrELossFit.cxx:1195 AliFMDCorrELossFit.cxx:1196 AliFMDCorrELossFit.cxx:1197 AliFMDCorrELossFit.cxx:1198 AliFMDCorrELossFit.cxx:1199 AliFMDCorrELossFit.cxx:1200 AliFMDCorrELossFit.cxx:1201 AliFMDCorrELossFit.cxx:1202 AliFMDCorrELossFit.cxx:1203 AliFMDCorrELossFit.cxx:1204 AliFMDCorrELossFit.cxx:1205 AliFMDCorrELossFit.cxx:1206 AliFMDCorrELossFit.cxx:1207 AliFMDCorrELossFit.cxx:1208 AliFMDCorrELossFit.cxx:1209 AliFMDCorrELossFit.cxx:1210 AliFMDCorrELossFit.cxx:1211 AliFMDCorrELossFit.cxx:1212 AliFMDCorrELossFit.cxx:1213 AliFMDCorrELossFit.cxx:1214 AliFMDCorrELossFit.cxx:1215 AliFMDCorrELossFit.cxx:1216 AliFMDCorrELossFit.cxx:1217 AliFMDCorrELossFit.cxx:1218 AliFMDCorrELossFit.cxx:1219 AliFMDCorrELossFit.cxx:1220 AliFMDCorrELossFit.cxx:1221 AliFMDCorrELossFit.cxx:1222 AliFMDCorrELossFit.cxx:1223 AliFMDCorrELossFit.cxx:1224 AliFMDCorrELossFit.cxx:1225 AliFMDCorrELossFit.cxx:1226 AliFMDCorrELossFit.cxx:1227 AliFMDCorrELossFit.cxx:1228 AliFMDCorrELossFit.cxx:1229 AliFMDCorrELossFit.cxx:1230 AliFMDCorrELossFit.cxx:1231 AliFMDCorrELossFit.cxx:1232 AliFMDCorrELossFit.cxx:1233 AliFMDCorrELossFit.cxx:1234 AliFMDCorrELossFit.cxx:1235 AliFMDCorrELossFit.cxx:1236 AliFMDCorrELossFit.cxx:1237 AliFMDCorrELossFit.cxx:1238 AliFMDCorrELossFit.cxx:1239 AliFMDCorrELossFit.cxx:1240 AliFMDCorrELossFit.cxx:1241 AliFMDCorrELossFit.cxx:1242 AliFMDCorrELossFit.cxx:1243 AliFMDCorrELossFit.cxx:1244 AliFMDCorrELossFit.cxx:1245 AliFMDCorrELossFit.cxx:1246 AliFMDCorrELossFit.cxx:1247 AliFMDCorrELossFit.cxx:1248 AliFMDCorrELossFit.cxx:1249 AliFMDCorrELossFit.cxx:1250 AliFMDCorrELossFit.cxx:1251 AliFMDCorrELossFit.cxx:1252 AliFMDCorrELossFit.cxx:1253 AliFMDCorrELossFit.cxx:1254 AliFMDCorrELossFit.cxx:1255 AliFMDCorrELossFit.cxx:1256 AliFMDCorrELossFit.cxx:1257 AliFMDCorrELossFit.cxx:1258 AliFMDCorrELossFit.cxx:1259 AliFMDCorrELossFit.cxx:1260 AliFMDCorrELossFit.cxx:1261 AliFMDCorrELossFit.cxx:1262 AliFMDCorrELossFit.cxx:1263 AliFMDCorrELossFit.cxx:1264 AliFMDCorrELossFit.cxx:1265 AliFMDCorrELossFit.cxx:1266 AliFMDCorrELossFit.cxx:1267 AliFMDCorrELossFit.cxx:1268 AliFMDCorrELossFit.cxx:1269 AliFMDCorrELossFit.cxx:1270 AliFMDCorrELossFit.cxx:1271 AliFMDCorrELossFit.cxx:1272 AliFMDCorrELossFit.cxx:1273 AliFMDCorrELossFit.cxx:1274 AliFMDCorrELossFit.cxx:1275 AliFMDCorrELossFit.cxx:1276 AliFMDCorrELossFit.cxx:1277 AliFMDCorrELossFit.cxx:1278 AliFMDCorrELossFit.cxx:1279 AliFMDCorrELossFit.cxx:1280 AliFMDCorrELossFit.cxx:1281 AliFMDCorrELossFit.cxx:1282 AliFMDCorrELossFit.cxx:1283 AliFMDCorrELossFit.cxx:1284 AliFMDCorrELossFit.cxx:1285 AliFMDCorrELossFit.cxx:1286 AliFMDCorrELossFit.cxx:1287 AliFMDCorrELossFit.cxx:1288 AliFMDCorrELossFit.cxx:1289 AliFMDCorrELossFit.cxx:1290 AliFMDCorrELossFit.cxx:1291 AliFMDCorrELossFit.cxx:1292 AliFMDCorrELossFit.cxx:1293 AliFMDCorrELossFit.cxx:1294 AliFMDCorrELossFit.cxx:1295 AliFMDCorrELossFit.cxx:1296 AliFMDCorrELossFit.cxx:1297 AliFMDCorrELossFit.cxx:1298 AliFMDCorrELossFit.cxx:1299 AliFMDCorrELossFit.cxx:1300 AliFMDCorrELossFit.cxx:1301 AliFMDCorrELossFit.cxx:1302 AliFMDCorrELossFit.cxx:1303 AliFMDCorrELossFit.cxx:1304 AliFMDCorrELossFit.cxx:1305 AliFMDCorrELossFit.cxx:1306 AliFMDCorrELossFit.cxx:1307 AliFMDCorrELossFit.cxx:1308 AliFMDCorrELossFit.cxx:1309 AliFMDCorrELossFit.cxx:1310 AliFMDCorrELossFit.cxx:1311 AliFMDCorrELossFit.cxx:1312 AliFMDCorrELossFit.cxx:1313 AliFMDCorrELossFit.cxx:1314 AliFMDCorrELossFit.cxx:1315 AliFMDCorrELossFit.cxx:1316 AliFMDCorrELossFit.cxx:1317 AliFMDCorrELossFit.cxx:1318 AliFMDCorrELossFit.cxx:1319 AliFMDCorrELossFit.cxx:1320 AliFMDCorrELossFit.cxx:1321 AliFMDCorrELossFit.cxx:1322 AliFMDCorrELossFit.cxx:1323 AliFMDCorrELossFit.cxx:1324 AliFMDCorrELossFit.cxx:1325 AliFMDCorrELossFit.cxx:1326 AliFMDCorrELossFit.cxx:1327 AliFMDCorrELossFit.cxx:1328 AliFMDCorrELossFit.cxx:1329 AliFMDCorrELossFit.cxx:1330 AliFMDCorrELossFit.cxx:1331 AliFMDCorrELossFit.cxx:1332 AliFMDCorrELossFit.cxx:1333 AliFMDCorrELossFit.cxx:1334 AliFMDCorrELossFit.cxx:1335 AliFMDCorrELossFit.cxx:1336 AliFMDCorrELossFit.cxx:1337 AliFMDCorrELossFit.cxx:1338 AliFMDCorrELossFit.cxx:1339 AliFMDCorrELossFit.cxx:1340 AliFMDCorrELossFit.cxx:1341 AliFMDCorrELossFit.cxx:1342 AliFMDCorrELossFit.cxx:1343 AliFMDCorrELossFit.cxx:1344 AliFMDCorrELossFit.cxx:1345 AliFMDCorrELossFit.cxx:1346 AliFMDCorrELossFit.cxx:1347 AliFMDCorrELossFit.cxx:1348 AliFMDCorrELossFit.cxx:1349 AliFMDCorrELossFit.cxx:1350 AliFMDCorrELossFit.cxx:1351 AliFMDCorrELossFit.cxx:1352 AliFMDCorrELossFit.cxx:1353 AliFMDCorrELossFit.cxx:1354 AliFMDCorrELossFit.cxx:1355 AliFMDCorrELossFit.cxx:1356 AliFMDCorrELossFit.cxx:1357 AliFMDCorrELossFit.cxx:1358 AliFMDCorrELossFit.cxx:1359 AliFMDCorrELossFit.cxx:1360 AliFMDCorrELossFit.cxx:1361 AliFMDCorrELossFit.cxx:1362 AliFMDCorrELossFit.cxx:1363 AliFMDCorrELossFit.cxx:1364 AliFMDCorrELossFit.cxx:1365 AliFMDCorrELossFit.cxx:1366 AliFMDCorrELossFit.cxx:1367 AliFMDCorrELossFit.cxx:1368 AliFMDCorrELossFit.cxx:1369 AliFMDCorrELossFit.cxx:1370 AliFMDCorrELossFit.cxx:1371 AliFMDCorrELossFit.cxx:1372 AliFMDCorrELossFit.cxx:1373 AliFMDCorrELossFit.cxx:1374 AliFMDCorrELossFit.cxx:1375 AliFMDCorrELossFit.cxx:1376 AliFMDCorrELossFit.cxx:1377 AliFMDCorrELossFit.cxx:1378 AliFMDCorrELossFit.cxx:1379 AliFMDCorrELossFit.cxx:1380 AliFMDCorrELossFit.cxx:1381 AliFMDCorrELossFit.cxx:1382 AliFMDCorrELossFit.cxx:1383 AliFMDCorrELossFit.cxx:1384 AliFMDCorrELossFit.cxx:1385 AliFMDCorrELossFit.cxx:1386 AliFMDCorrELossFit.cxx:1387 AliFMDCorrELossFit.cxx:1388 AliFMDCorrELossFit.cxx:1389 AliFMDCorrELossFit.cxx:1390 AliFMDCorrELossFit.cxx:1391 AliFMDCorrELossFit.cxx:1392 AliFMDCorrELossFit.cxx:1393 AliFMDCorrELossFit.cxx:1394 AliFMDCorrELossFit.cxx:1395 AliFMDCorrELossFit.cxx:1396 AliFMDCorrELossFit.cxx:1397 AliFMDCorrELossFit.cxx:1398 AliFMDCorrELossFit.cxx:1399 AliFMDCorrELossFit.cxx:1400 AliFMDCorrELossFit.cxx:1401 AliFMDCorrELossFit.cxx:1402 AliFMDCorrELossFit.cxx:1403 AliFMDCorrELossFit.cxx:1404 AliFMDCorrELossFit.cxx:1405 AliFMDCorrELossFit.cxx:1406 AliFMDCorrELossFit.cxx:1407 AliFMDCorrELossFit.cxx:1408 AliFMDCorrELossFit.cxx:1409 AliFMDCorrELossFit.cxx:1410 AliFMDCorrELossFit.cxx:1411 AliFMDCorrELossFit.cxx:1412 AliFMDCorrELossFit.cxx:1413 AliFMDCorrELossFit.cxx:1414 AliFMDCorrELossFit.cxx:1415 AliFMDCorrELossFit.cxx:1416 AliFMDCorrELossFit.cxx:1417 AliFMDCorrELossFit.cxx:1418 AliFMDCorrELossFit.cxx:1419 AliFMDCorrELossFit.cxx:1420 AliFMDCorrELossFit.cxx:1421 AliFMDCorrELossFit.cxx:1422 AliFMDCorrELossFit.cxx:1423 AliFMDCorrELossFit.cxx:1424 AliFMDCorrELossFit.cxx:1425 AliFMDCorrELossFit.cxx:1426 AliFMDCorrELossFit.cxx:1427 AliFMDCorrELossFit.cxx:1428 AliFMDCorrELossFit.cxx:1429 AliFMDCorrELossFit.cxx:1430 AliFMDCorrELossFit.cxx:1431 AliFMDCorrELossFit.cxx:1432 AliFMDCorrELossFit.cxx:1433 AliFMDCorrELossFit.cxx:1434 AliFMDCorrELossFit.cxx:1435 AliFMDCorrELossFit.cxx:1436 AliFMDCorrELossFit.cxx:1437 AliFMDCorrELossFit.cxx:1438 AliFMDCorrELossFit.cxx:1439 AliFMDCorrELossFit.cxx:1440 AliFMDCorrELossFit.cxx:1441 AliFMDCorrELossFit.cxx:1442 AliFMDCorrELossFit.cxx:1443 AliFMDCorrELossFit.cxx:1444 AliFMDCorrELossFit.cxx:1445 AliFMDCorrELossFit.cxx:1446 AliFMDCorrELossFit.cxx:1447 AliFMDCorrELossFit.cxx:1448 AliFMDCorrELossFit.cxx:1449 AliFMDCorrELossFit.cxx:1450 AliFMDCorrELossFit.cxx:1451 AliFMDCorrELossFit.cxx:1452 AliFMDCorrELossFit.cxx:1453 AliFMDCorrELossFit.cxx:1454 AliFMDCorrELossFit.cxx:1455 AliFMDCorrELossFit.cxx:1456 AliFMDCorrELossFit.cxx:1457 AliFMDCorrELossFit.cxx:1458 AliFMDCorrELossFit.cxx:1459 AliFMDCorrELossFit.cxx:1460 AliFMDCorrELossFit.cxx:1461 AliFMDCorrELossFit.cxx:1462 AliFMDCorrELossFit.cxx:1463 AliFMDCorrELossFit.cxx:1464 AliFMDCorrELossFit.cxx:1465 AliFMDCorrELossFit.cxx:1466 AliFMDCorrELossFit.cxx:1467 AliFMDCorrELossFit.cxx:1468 AliFMDCorrELossFit.cxx:1469 AliFMDCorrELossFit.cxx:1470 AliFMDCorrELossFit.cxx:1471 AliFMDCorrELossFit.cxx:1472 AliFMDCorrELossFit.cxx:1473 AliFMDCorrELossFit.cxx:1474 AliFMDCorrELossFit.cxx:1475 AliFMDCorrELossFit.cxx:1476 AliFMDCorrELossFit.cxx:1477 AliFMDCorrELossFit.cxx:1478 AliFMDCorrELossFit.cxx:1479 AliFMDCorrELossFit.cxx:1480 AliFMDCorrELossFit.cxx:1481 AliFMDCorrELossFit.cxx:1482 AliFMDCorrELossFit.cxx:1483 AliFMDCorrELossFit.cxx:1484 AliFMDCorrELossFit.cxx:1485 AliFMDCorrELossFit.cxx:1486 AliFMDCorrELossFit.cxx:1487 AliFMDCorrELossFit.cxx:1488 AliFMDCorrELossFit.cxx:1489 AliFMDCorrELossFit.cxx:1490 AliFMDCorrELossFit.cxx:1491 AliFMDCorrELossFit.cxx:1492 AliFMDCorrELossFit.cxx:1493 AliFMDCorrELossFit.cxx:1494 AliFMDCorrELossFit.cxx:1495 AliFMDCorrELossFit.cxx:1496 AliFMDCorrELossFit.cxx:1497 AliFMDCorrELossFit.cxx:1498 AliFMDCorrELossFit.cxx:1499 AliFMDCorrELossFit.cxx:1500 AliFMDCorrELossFit.cxx:1501 AliFMDCorrELossFit.cxx:1502 AliFMDCorrELossFit.cxx:1503 AliFMDCorrELossFit.cxx:1504 AliFMDCorrELossFit.cxx:1505 AliFMDCorrELossFit.cxx:1506 AliFMDCorrELossFit.cxx:1507 AliFMDCorrELossFit.cxx:1508 AliFMDCorrELossFit.cxx:1509 AliFMDCorrELossFit.cxx:1510 AliFMDCorrELossFit.cxx:1511 AliFMDCorrELossFit.cxx:1512 AliFMDCorrELossFit.cxx:1513 AliFMDCorrELossFit.cxx:1514 AliFMDCorrELossFit.cxx:1515 AliFMDCorrELossFit.cxx:1516 AliFMDCorrELossFit.cxx:1517 AliFMDCorrELossFit.cxx:1518 AliFMDCorrELossFit.cxx:1519 AliFMDCorrELossFit.cxx:1520 AliFMDCorrELossFit.cxx:1521 AliFMDCorrELossFit.cxx:1522 AliFMDCorrELossFit.cxx:1523 AliFMDCorrELossFit.cxx:1524 AliFMDCorrELossFit.cxx:1525 AliFMDCorrELossFit.cxx:1526 AliFMDCorrELossFit.cxx:1527 AliFMDCorrELossFit.cxx:1528 AliFMDCorrELossFit.cxx:1529 AliFMDCorrELossFit.cxx:1530 AliFMDCorrELossFit.cxx:1531 AliFMDCorrELossFit.cxx:1532 AliFMDCorrELossFit.cxx:1533 AliFMDCorrELossFit.cxx:1534 AliFMDCorrELossFit.cxx:1535 AliFMDCorrELossFit.cxx:1536 AliFMDCorrELossFit.cxx:1537 AliFMDCorrELossFit.cxx:1538 AliFMDCorrELossFit.cxx:1539 AliFMDCorrELossFit.cxx:1540 AliFMDCorrELossFit.cxx:1541 AliFMDCorrELossFit.cxx:1542 AliFMDCorrELossFit.cxx:1543 AliFMDCorrELossFit.cxx:1544 AliFMDCorrELossFit.cxx:1545 AliFMDCorrELossFit.cxx:1546 AliFMDCorrELossFit.cxx:1547 AliFMDCorrELossFit.cxx:1548 AliFMDCorrELossFit.cxx:1549 AliFMDCorrELossFit.cxx:1550 AliFMDCorrELossFit.cxx:1551 AliFMDCorrELossFit.cxx:1552 AliFMDCorrELossFit.cxx:1553 AliFMDCorrELossFit.cxx:1554 AliFMDCorrELossFit.cxx:1555 AliFMDCorrELossFit.cxx:1556 AliFMDCorrELossFit.cxx:1557 AliFMDCorrELossFit.cxx:1558 AliFMDCorrELossFit.cxx:1559 AliFMDCorrELossFit.cxx:1560 AliFMDCorrELossFit.cxx:1561 AliFMDCorrELossFit.cxx:1562 AliFMDCorrELossFit.cxx:1563 AliFMDCorrELossFit.cxx:1564 AliFMDCorrELossFit.cxx:1565 AliFMDCorrELossFit.cxx:1566 AliFMDCorrELossFit.cxx:1567 AliFMDCorrELossFit.cxx:1568 AliFMDCorrELossFit.cxx:1569 AliFMDCorrELossFit.cxx:1570 AliFMDCorrELossFit.cxx:1571 AliFMDCorrELossFit.cxx:1572 AliFMDCorrELossFit.cxx:1573 AliFMDCorrELossFit.cxx:1574 AliFMDCorrELossFit.cxx:1575 AliFMDCorrELossFit.cxx:1576 AliFMDCorrELossFit.cxx:1577 AliFMDCorrELossFit.cxx:1578 AliFMDCorrELossFit.cxx:1579 AliFMDCorrELossFit.cxx:1580 AliFMDCorrELossFit.cxx:1581 AliFMDCorrELossFit.cxx:1582 AliFMDCorrELossFit.cxx:1583 AliFMDCorrELossFit.cxx:1584 AliFMDCorrELossFit.cxx:1585 AliFMDCorrELossFit.cxx:1586 AliFMDCorrELossFit.cxx:1587 AliFMDCorrELossFit.cxx:1588 AliFMDCorrELossFit.cxx:1589 AliFMDCorrELossFit.cxx:1590 AliFMDCorrELossFit.cxx:1591 AliFMDCorrELossFit.cxx:1592 AliFMDCorrELossFit.cxx:1593 AliFMDCorrELossFit.cxx:1594 AliFMDCorrELossFit.cxx:1595 AliFMDCorrELossFit.cxx:1596 AliFMDCorrELossFit.cxx:1597 AliFMDCorrELossFit.cxx:1598 AliFMDCorrELossFit.cxx:1599 AliFMDCorrELossFit.cxx:1600