#include "AliCaloFastAltroFitv0.h"
#include <TH1.h>
#include <TF1.h>
#include <TCanvas.h>
#include <TGraphErrors.h>
#include <TMath.h>
#include <math.h>
ClassImp(AliCaloFastAltroFitv0)
AliCaloFastAltroFitv0::AliCaloFastAltroFitv0()
: TNamed(),
fSig(0),fTau(0),fN(0),fPed(0), fAmp(0),fAmpErr(0),fT0(0),fT0Err(0),fChi2(0.),fNDF(0)
,fNoFit(0),fNfit(0),fTfit(0),fAmpfit(0), fStdFun(0)
{
}
AliCaloFastAltroFitv0::AliCaloFastAltroFitv0(const char* name, const char* title,
const Double_t sig, const Double_t tau, const Double_t n)
: TNamed(name, title),
fSig(sig),fTau(tau),fN(n),fPed(0), fAmp(0),fAmpErr(0),fT0(0),fT0Err(0),fChi2(0.),fNDF(0)
,fNoFit(0),fNfit(0),fTfit(0),fAmpfit(0), fStdFun(0)
{
if(strlen(name)==0) SetName("CaloFastAltroFitv0");
}
AliCaloFastAltroFitv0::AliCaloFastAltroFitv0(const AliCaloFastAltroFitv0 &obj)
: TNamed(obj),
fSig(0),fTau(0),fN(2.),fPed(0), fAmp(0),fAmpErr(0),fT0(0),fT0Err(0),fChi2(0.),fNDF(0)
,fNoFit(0),fNfit(0),fTfit(0),fAmpfit(0), fStdFun(0)
{
}
AliCaloFastAltroFitv0::~AliCaloFastAltroFitv0()
{
if(fTfit) delete [] fTfit;
if(fAmpfit) delete [] fAmpfit;
}
AliCaloFastAltroFitv0& AliCaloFastAltroFitv0::operator= (const AliCaloFastAltroFitv0 &)
{
return (*this);
}
void AliCaloFastAltroFitv0::FastFit(Int_t* t, Int_t* y, Int_t nPoints, Double_t sig, Double_t tau,
Double_t , Double_t ped, Double_t tMax)
{
Reset();
fSig = sig;
fTau = tau;
fPed = ped;
Int_t ii=0;
CutRightPart(t,y,nPoints,tMax, ii);
nPoints = ii;
fNfit = 0;
fTfit = new Double_t[nPoints];
fAmpfit = new Double_t[nPoints];
DeductPedestal(t,y,nPoints, tau,ped, fTfit,fAmpfit,fNfit);
if(fNfit>=2) {
FastFit(fTfit,fAmpfit,fNfit,sig,tau, fAmp,fAmpErr, fT0,fT0Err,fChi2);
if(fChi2> 0.0) {
fNDF = fNfit - 2;
} else {
fNDF = 0;
fNoFit++;
}
} else if(fNfit==1){
Reset();
} else {
Reset();
}
}
void AliCaloFastAltroFitv0::FastFit(TH1F* h, Double_t sig, Double_t tau, Double_t n,
Double_t ped, Double_t tMax)
{
Reset();
if(h==0) return;
Int_t nPoints = h->GetNbinsX();
if(nPoints<2) return;
Int_t* t = new Int_t[nPoints];
Int_t* y = new Int_t[nPoints];
Int_t nPositive=0;
for(Int_t i=0; i<nPoints; i++) {
if(h->GetBinContent(i+1) > 0.0){
y[nPositive] = Int_t(h->GetBinContent(i+1));
t[nPositive] = Int_t(h->GetBinCenter(i+1)+0.0001);
nPositive++;
}
}
if(nPositive >= 2) {
FastFit(t,y,nPoints, sig,tau,n,ped, tMax);
}
if(fChi2<=0.0) fNoFit++;
delete [] t;
delete [] y;
}
void AliCaloFastAltroFitv0::Reset()
{
fSig = fTau = 0.0;
fAmp = fAmpErr = fT0 = fT0Err = 0.0;
fChi2 = -1.;
fNDF = fNfit = 0;
if(fTfit) delete [] fTfit;
if(fAmpfit) delete [] fAmpfit;
fTfit = fAmpfit = 0;
}
void AliCaloFastAltroFitv0::GetFitResult(Double_t &,Double_t &eamp,Double_t &t0,Double_t &et0,
Double_t &chi2, Int_t &ndf) const
{
amp = fAmp;
eamp = fAmpErr;
t0 = fT0;
et0 = fT0Err;
chi2 = fChi2;
ndf = fNDF;
}
void AliCaloFastAltroFitv0::GetFittedPoints(Int_t &nfit, Double_t* ar[2]) const
{
nfit = fNfit;
ar[0] = fTfit;
ar[1] = fAmpfit;
}
void AliCaloFastAltroFitv0::CutRightPart(Int_t *t,Int_t *y,Int_t nPoints,Double_t tMax, Int_t &ii)
{
Int_t tt=0;
for(Int_t i=0; i<nPoints; i++) {
tt = t[i];
if(tMax && tt <= Int_t(tMax)) {
t[ii] = tt;
y[ii] = y[i];
ii++;
}
}
if(0) printf(" ii %i -> ii %i : tMax %7.2f \n", nPoints, ii, tMax);
}
void AliCaloFastAltroFitv0::DeductPedestal(Int_t* t, Int_t* y, Int_t nPoints, Double_t tau, Double_t ped,
Double_t* tn, Double_t* yn, Int_t &nPointsOut)
{
static Double_t yMinUnderPed=2.;
Int_t ymax=0, nmax=0;
for(Int_t i=0; i<nPoints; i++){
if(y[i]>ymax) {
ymax = y[i];
nmax = i;
}
}
Int_t i1 = nmax - Int_t(tau);
i1 = i1<0?0:i1;
Int_t i2 = nPoints;
nPointsOut = 0;
Double_t yd=0.0, tdiff=0.0;;
for(Int_t i=i1; i<i2; i++) {
if(ped>0.0) {
yd = Double_t(y[i]) - ped;
} else {
yd = Double_t(y[i]);
}
if(yd < yMinUnderPed) continue;
if(i>i1 && nPointsOut>0){
tdiff = t[i] - tn[nPointsOut-1];
if(tdiff>1.) {
if(i<nmax ) {
nPointsOut = 0;
} else if(i>=nmax ) {
break;
}
}
}
tn[nPointsOut] = Double_t(t[i]);
yn[nPointsOut] = yd;
nPointsOut++;
}
}
void AliCaloFastAltroFitv0::FastFit(const Double_t* t, const Double_t* y, const Int_t nPoints,
const Double_t sig, const Double_t tau,
Double_t &, Double_t &eamp, Double_t &t0, Double_t &et0, Double_t &chi2)
{
static Double_t xx;
static Double_t a, b, c;
static Double_t f02, f12, f22;
static Double_t f02d, f12d, f22d;
chi2 = -1.;
if(nPoints<2) {
printf(" AliCaloFastAltroFitv0::FastFit : nPoints<=%i \n", nPoints);
return;
}
a = b = c = 0.0;
for(Int_t i=0; i<nPoints; i++){
xx = t[i]/tau;
f02 = exp(-2.*xx);
f12 = xx*f02;
f22 = xx*f12;
f02d = -2.*f02;
f12d = f02 - 2.*f12;
f22d = 2.*(f12 - f22);
a += f02d * y[i];
b -= 2.*f12d * y[i];
c += f22d * y[i];
}
Double_t t01=0.0, t02=0.0;
Double_t amp1=0.0, amp2=0.0, chi21=0.0, chi22=0.0;
if(QuadraticRoots(a,b,c, t01,t02)) {
t01 *= tau;
t02 *= tau;
Amplitude(t,y,nPoints, sig, tau, t01, amp1, chi21);
Amplitude(t,y,nPoints, sig, tau, t02, amp2, chi22);
if(0) {
printf(" t01 %f : t02 %f \n", t01, t02);
printf(" amp1 %f : amp2 %f \n", amp1, amp2);
printf(" chi21 %f : chi22 %f \n", chi21, chi22);
}
amp = amp1;
t0 = t01;
chi2 = chi21;
if(chi21 > chi22) {
amp = amp2;
t0 = t02;
chi2 = chi22;
}
if(tau<3.) {
t0 += -0.03;
Amplitude(t,y,nPoints, sig, tau, t0, amp, chi2);
}
CalculateParsErrors(t, y, nPoints, sig, tau, amp, t0, eamp, et0);
} else {
chi2 = t01;
}
}
Bool_t AliCaloFastAltroFitv0::QuadraticRoots(const Double_t a, const Double_t b, const Double_t c,
Double_t &x1, Double_t &x2)
{
static Double_t dtmp = 0.0, dtmpCut = -1.e-6;
static Int_t iWarning=0, iNoSolution=0;
dtmp = b*b - 4.*a*c;
if(dtmp>=dtmpCut && dtmp<0.0) {
if(iWarning<5 || iWarning%1000==0)
printf("<W> %i small neg. sq. : dtmp %12.5e \n", iWarning, dtmp);
iWarning++;
dtmp = 0.0;
}
if(dtmp>=0.0) {
dtmp = sqrt(dtmp);
x1 = (-b + dtmp) / (2.*a);
x2 = (-b - dtmp) / (2.*a);
return kTRUE;
} else {
x1 = dtmp;
if(iNoSolution<5 || iNoSolution%1000==0)
printf("<No solution> %i neg. sq. : dtmp %12.5e \n", iNoSolution, dtmp);
iNoSolution++;
return kFALSE;
}
}
void AliCaloFastAltroFitv0::Amplitude(const Double_t* t,const Double_t* y,const Int_t nPoints,
const Double_t sig, const Double_t tau, const Double_t t0,
Double_t &, Double_t &chi2)
{
amp = 0.;
Double_t x=0.0, f=0.0, den=0.0, f02;
for(Int_t i=0; i<nPoints; i++){
x = (t[i] - t0)/tau;
f02 = exp(-2.*x);
f = x*x*f02;
amp += f*y[i];
den += f*f;
}
if(den>0.0) amp /= den;
Double_t dy=0.0;
chi2=0.;
for(Int_t i=0; i<nPoints; i++){
x = (t[i] - t0)/tau;
f02 = exp(-2.*x);
f = amp*x*x*f02;
dy = y[i]-f;
chi2 += dy*dy;
}
chi2 /= (sig*sig);
}
void AliCaloFastAltroFitv0::CalculateParsErrors(const Double_t* t, const Double_t* , const Int_t nPoints,
const Double_t sig, const Double_t tau,
Double_t &, Double_t &t0, Double_t &eamp, Double_t &et0)
{
static Double_t cc = exp(-2.);
Double_t sumf2=0.0, sumfd2=0.0, x, f02, f12, f22, f22d;
for(Int_t i=0; i<nPoints; i++){
x = (t[i] - t0)/tau;
f02 = exp(-2.*x);
f12 = x*f02;
f22 = x*f12;
sumf2 += f22 * f22;
f22d = 2.*(f12 - f22);
sumfd2 += f22d * f22d;
}
et0 = (sig/amp)/sqrt(sumfd2);
eamp = sig/sqrt(sumf2);
amp *= cc;
eamp *= cc;
}
TCanvas* AliCaloFastAltroFitv0::DrawFastFunction()
{
if(fNfit<=0) return 0;
static TCanvas *c = 0;
if(c==0) {
c = new TCanvas("fastFun","fastFun",800,600);
}
c->cd();
Double_t* eamp = new Double_t[fNfit];
Double_t* et = new Double_t[fNfit];
for(Int_t i=0; i<fNfit; i++) {
eamp[i] = fSig;
et[i] = 0.0;
}
TGraphErrors *gr = new TGraphErrors(fNfit, fTfit,fAmpfit, et,eamp);
gr->Draw("Ap");
gr->SetTitle(Form("Fast Fit : #chi^{2}/ndf = %8.2f / %i", GetChi2(), GetNDF()));
gr->GetHistogram()->SetXTitle(" time bin ");
gr->GetHistogram()->SetYTitle(" amplitude ");
if(fStdFun==0) {
fStdFun = new TF1("stdFun", StdResponseFunction, 0., fTfit[fNfit-1]+2., 5);
fStdFun->SetParNames("amp","t0","tau","N","ped");
}
fStdFun->SetParameter(0, GetEnergy());
fStdFun->SetParameter(1, GetTime() + GetTau());
fStdFun->SetParameter(2, GetTau());
fStdFun->SetParameter(3, GetN());
fStdFun->SetParameter(4, 0.);
fStdFun->SetLineColor(kBlue);
fStdFun->SetLineWidth(1);
fStdFun->Draw("same");
delete [] eamp;
delete [] et;
c->Update();
return c;
}
Double_t AliCaloFastAltroFitv0::StdResponseFunction(const Double_t *x, const Double_t *par)
{
static Double_t signal , tau, n, ped, xx;
tau = par[2];
n = par[3];
ped = par[4];
xx = ( x[0] - par[1] + tau ) / tau ;
if (xx <= 0)
signal = ped ;
else {
signal = ped + par[0] * TMath::Power(xx , n) * TMath::Exp(n * (1 - xx )) ;
}
return signal ;
}
AliCaloFastAltroFitv0.cxx:1 AliCaloFastAltroFitv0.cxx:2 AliCaloFastAltroFitv0.cxx:3 AliCaloFastAltroFitv0.cxx:4 AliCaloFastAltroFitv0.cxx:5 AliCaloFastAltroFitv0.cxx:6 AliCaloFastAltroFitv0.cxx:7 AliCaloFastAltroFitv0.cxx:8 AliCaloFastAltroFitv0.cxx:9 AliCaloFastAltroFitv0.cxx:10 AliCaloFastAltroFitv0.cxx:11 AliCaloFastAltroFitv0.cxx:12 AliCaloFastAltroFitv0.cxx:13 AliCaloFastAltroFitv0.cxx:14 AliCaloFastAltroFitv0.cxx:15 AliCaloFastAltroFitv0.cxx:16 AliCaloFastAltroFitv0.cxx:17 AliCaloFastAltroFitv0.cxx:18 AliCaloFastAltroFitv0.cxx:19 AliCaloFastAltroFitv0.cxx:20 AliCaloFastAltroFitv0.cxx:21 AliCaloFastAltroFitv0.cxx:22 AliCaloFastAltroFitv0.cxx:23 AliCaloFastAltroFitv0.cxx:24 AliCaloFastAltroFitv0.cxx:25 AliCaloFastAltroFitv0.cxx:26 AliCaloFastAltroFitv0.cxx:27 AliCaloFastAltroFitv0.cxx:28 AliCaloFastAltroFitv0.cxx:29 AliCaloFastAltroFitv0.cxx:30 AliCaloFastAltroFitv0.cxx:31 AliCaloFastAltroFitv0.cxx:32 AliCaloFastAltroFitv0.cxx:33 AliCaloFastAltroFitv0.cxx:34 AliCaloFastAltroFitv0.cxx:35 AliCaloFastAltroFitv0.cxx:36 AliCaloFastAltroFitv0.cxx:37 AliCaloFastAltroFitv0.cxx:38 AliCaloFastAltroFitv0.cxx:39 AliCaloFastAltroFitv0.cxx:40 AliCaloFastAltroFitv0.cxx:41 AliCaloFastAltroFitv0.cxx:42 AliCaloFastAltroFitv0.cxx:43 AliCaloFastAltroFitv0.cxx:44 AliCaloFastAltroFitv0.cxx:45 AliCaloFastAltroFitv0.cxx:46 AliCaloFastAltroFitv0.cxx:47 AliCaloFastAltroFitv0.cxx:48 AliCaloFastAltroFitv0.cxx:49 AliCaloFastAltroFitv0.cxx:50 AliCaloFastAltroFitv0.cxx:51 AliCaloFastAltroFitv0.cxx:52 AliCaloFastAltroFitv0.cxx:53 AliCaloFastAltroFitv0.cxx:54 AliCaloFastAltroFitv0.cxx:55 AliCaloFastAltroFitv0.cxx:56 AliCaloFastAltroFitv0.cxx:57 AliCaloFastAltroFitv0.cxx:58 AliCaloFastAltroFitv0.cxx:59 AliCaloFastAltroFitv0.cxx:60 AliCaloFastAltroFitv0.cxx:61 AliCaloFastAltroFitv0.cxx:62 AliCaloFastAltroFitv0.cxx:63 AliCaloFastAltroFitv0.cxx:64 AliCaloFastAltroFitv0.cxx:65 AliCaloFastAltroFitv0.cxx:66 AliCaloFastAltroFitv0.cxx:67 AliCaloFastAltroFitv0.cxx:68 AliCaloFastAltroFitv0.cxx:69 AliCaloFastAltroFitv0.cxx:70 AliCaloFastAltroFitv0.cxx:71 AliCaloFastAltroFitv0.cxx:72 AliCaloFastAltroFitv0.cxx:73 AliCaloFastAltroFitv0.cxx:74 AliCaloFastAltroFitv0.cxx:75 AliCaloFastAltroFitv0.cxx:76 AliCaloFastAltroFitv0.cxx:77 AliCaloFastAltroFitv0.cxx:78 AliCaloFastAltroFitv0.cxx:79 AliCaloFastAltroFitv0.cxx:80 AliCaloFastAltroFitv0.cxx:81 AliCaloFastAltroFitv0.cxx:82 AliCaloFastAltroFitv0.cxx:83 AliCaloFastAltroFitv0.cxx:84 AliCaloFastAltroFitv0.cxx:85 AliCaloFastAltroFitv0.cxx:86 AliCaloFastAltroFitv0.cxx:87 AliCaloFastAltroFitv0.cxx:88 AliCaloFastAltroFitv0.cxx:89 AliCaloFastAltroFitv0.cxx:90 AliCaloFastAltroFitv0.cxx:91 AliCaloFastAltroFitv0.cxx:92 AliCaloFastAltroFitv0.cxx:93 AliCaloFastAltroFitv0.cxx:94 AliCaloFastAltroFitv0.cxx:95 AliCaloFastAltroFitv0.cxx:96 AliCaloFastAltroFitv0.cxx:97 AliCaloFastAltroFitv0.cxx:98 AliCaloFastAltroFitv0.cxx:99 AliCaloFastAltroFitv0.cxx:100 AliCaloFastAltroFitv0.cxx:101 AliCaloFastAltroFitv0.cxx:102 AliCaloFastAltroFitv0.cxx:103 AliCaloFastAltroFitv0.cxx:104 AliCaloFastAltroFitv0.cxx:105 AliCaloFastAltroFitv0.cxx:106 AliCaloFastAltroFitv0.cxx:107 AliCaloFastAltroFitv0.cxx:108 AliCaloFastAltroFitv0.cxx:109 AliCaloFastAltroFitv0.cxx:110 AliCaloFastAltroFitv0.cxx:111 AliCaloFastAltroFitv0.cxx:112 AliCaloFastAltroFitv0.cxx:113 AliCaloFastAltroFitv0.cxx:114 AliCaloFastAltroFitv0.cxx:115 AliCaloFastAltroFitv0.cxx:116 AliCaloFastAltroFitv0.cxx:117 AliCaloFastAltroFitv0.cxx:118 AliCaloFastAltroFitv0.cxx:119 AliCaloFastAltroFitv0.cxx:120 AliCaloFastAltroFitv0.cxx:121 AliCaloFastAltroFitv0.cxx:122 AliCaloFastAltroFitv0.cxx:123 AliCaloFastAltroFitv0.cxx:124 AliCaloFastAltroFitv0.cxx:125 AliCaloFastAltroFitv0.cxx:126 AliCaloFastAltroFitv0.cxx:127 AliCaloFastAltroFitv0.cxx:128 AliCaloFastAltroFitv0.cxx:129 AliCaloFastAltroFitv0.cxx:130 AliCaloFastAltroFitv0.cxx:131 AliCaloFastAltroFitv0.cxx:132 AliCaloFastAltroFitv0.cxx:133 AliCaloFastAltroFitv0.cxx:134 AliCaloFastAltroFitv0.cxx:135 AliCaloFastAltroFitv0.cxx:136 AliCaloFastAltroFitv0.cxx:137 AliCaloFastAltroFitv0.cxx:138 AliCaloFastAltroFitv0.cxx:139 AliCaloFastAltroFitv0.cxx:140 AliCaloFastAltroFitv0.cxx:141 AliCaloFastAltroFitv0.cxx:142 AliCaloFastAltroFitv0.cxx:143 AliCaloFastAltroFitv0.cxx:144 AliCaloFastAltroFitv0.cxx:145 AliCaloFastAltroFitv0.cxx:146 AliCaloFastAltroFitv0.cxx:147 AliCaloFastAltroFitv0.cxx:148 AliCaloFastAltroFitv0.cxx:149 AliCaloFastAltroFitv0.cxx:150 AliCaloFastAltroFitv0.cxx:151 AliCaloFastAltroFitv0.cxx:152 AliCaloFastAltroFitv0.cxx:153 AliCaloFastAltroFitv0.cxx:154 AliCaloFastAltroFitv0.cxx:155 AliCaloFastAltroFitv0.cxx:156 AliCaloFastAltroFitv0.cxx:157 AliCaloFastAltroFitv0.cxx:158 AliCaloFastAltroFitv0.cxx:159 AliCaloFastAltroFitv0.cxx:160 AliCaloFastAltroFitv0.cxx:161 AliCaloFastAltroFitv0.cxx:162 AliCaloFastAltroFitv0.cxx:163 AliCaloFastAltroFitv0.cxx:164 AliCaloFastAltroFitv0.cxx:165 AliCaloFastAltroFitv0.cxx:166 AliCaloFastAltroFitv0.cxx:167 AliCaloFastAltroFitv0.cxx:168 AliCaloFastAltroFitv0.cxx:169 AliCaloFastAltroFitv0.cxx:170 AliCaloFastAltroFitv0.cxx:171 AliCaloFastAltroFitv0.cxx:172 AliCaloFastAltroFitv0.cxx:173 AliCaloFastAltroFitv0.cxx:174 AliCaloFastAltroFitv0.cxx:175 AliCaloFastAltroFitv0.cxx:176 AliCaloFastAltroFitv0.cxx:177 AliCaloFastAltroFitv0.cxx:178 AliCaloFastAltroFitv0.cxx:179 AliCaloFastAltroFitv0.cxx:180 AliCaloFastAltroFitv0.cxx:181 AliCaloFastAltroFitv0.cxx:182 AliCaloFastAltroFitv0.cxx:183 AliCaloFastAltroFitv0.cxx:184 AliCaloFastAltroFitv0.cxx:185 AliCaloFastAltroFitv0.cxx:186 AliCaloFastAltroFitv0.cxx:187 AliCaloFastAltroFitv0.cxx:188 AliCaloFastAltroFitv0.cxx:189 AliCaloFastAltroFitv0.cxx:190 AliCaloFastAltroFitv0.cxx:191 AliCaloFastAltroFitv0.cxx:192 AliCaloFastAltroFitv0.cxx:193 AliCaloFastAltroFitv0.cxx:194 AliCaloFastAltroFitv0.cxx:195 AliCaloFastAltroFitv0.cxx:196 AliCaloFastAltroFitv0.cxx:197 AliCaloFastAltroFitv0.cxx:198 AliCaloFastAltroFitv0.cxx:199 AliCaloFastAltroFitv0.cxx:200 AliCaloFastAltroFitv0.cxx:201 AliCaloFastAltroFitv0.cxx:202 AliCaloFastAltroFitv0.cxx:203 AliCaloFastAltroFitv0.cxx:204 AliCaloFastAltroFitv0.cxx:205 AliCaloFastAltroFitv0.cxx:206 AliCaloFastAltroFitv0.cxx:207 AliCaloFastAltroFitv0.cxx:208 AliCaloFastAltroFitv0.cxx:209 AliCaloFastAltroFitv0.cxx:210 AliCaloFastAltroFitv0.cxx:211 AliCaloFastAltroFitv0.cxx:212 AliCaloFastAltroFitv0.cxx:213 AliCaloFastAltroFitv0.cxx:214 AliCaloFastAltroFitv0.cxx:215 AliCaloFastAltroFitv0.cxx:216 AliCaloFastAltroFitv0.cxx:217 AliCaloFastAltroFitv0.cxx:218 AliCaloFastAltroFitv0.cxx:219 AliCaloFastAltroFitv0.cxx:220 AliCaloFastAltroFitv0.cxx:221 AliCaloFastAltroFitv0.cxx:222 AliCaloFastAltroFitv0.cxx:223 AliCaloFastAltroFitv0.cxx:224 AliCaloFastAltroFitv0.cxx:225 AliCaloFastAltroFitv0.cxx:226 AliCaloFastAltroFitv0.cxx:227 AliCaloFastAltroFitv0.cxx:228 AliCaloFastAltroFitv0.cxx:229 AliCaloFastAltroFitv0.cxx:230 AliCaloFastAltroFitv0.cxx:231 AliCaloFastAltroFitv0.cxx:232 AliCaloFastAltroFitv0.cxx:233 AliCaloFastAltroFitv0.cxx:234 AliCaloFastAltroFitv0.cxx:235 AliCaloFastAltroFitv0.cxx:236 AliCaloFastAltroFitv0.cxx:237 AliCaloFastAltroFitv0.cxx:238 AliCaloFastAltroFitv0.cxx:239 AliCaloFastAltroFitv0.cxx:240 AliCaloFastAltroFitv0.cxx:241 AliCaloFastAltroFitv0.cxx:242 AliCaloFastAltroFitv0.cxx:243 AliCaloFastAltroFitv0.cxx:244 AliCaloFastAltroFitv0.cxx:245 AliCaloFastAltroFitv0.cxx:246 AliCaloFastAltroFitv0.cxx:247 AliCaloFastAltroFitv0.cxx:248 AliCaloFastAltroFitv0.cxx:249 AliCaloFastAltroFitv0.cxx:250 AliCaloFastAltroFitv0.cxx:251 AliCaloFastAltroFitv0.cxx:252 AliCaloFastAltroFitv0.cxx:253 AliCaloFastAltroFitv0.cxx:254 AliCaloFastAltroFitv0.cxx:255 AliCaloFastAltroFitv0.cxx:256 AliCaloFastAltroFitv0.cxx:257 AliCaloFastAltroFitv0.cxx:258 AliCaloFastAltroFitv0.cxx:259 AliCaloFastAltroFitv0.cxx:260 AliCaloFastAltroFitv0.cxx:261 AliCaloFastAltroFitv0.cxx:262 AliCaloFastAltroFitv0.cxx:263 AliCaloFastAltroFitv0.cxx:264 AliCaloFastAltroFitv0.cxx:265 AliCaloFastAltroFitv0.cxx:266 AliCaloFastAltroFitv0.cxx:267 AliCaloFastAltroFitv0.cxx:268 AliCaloFastAltroFitv0.cxx:269 AliCaloFastAltroFitv0.cxx:270 AliCaloFastAltroFitv0.cxx:271 AliCaloFastAltroFitv0.cxx:272 AliCaloFastAltroFitv0.cxx:273 AliCaloFastAltroFitv0.cxx:274 AliCaloFastAltroFitv0.cxx:275 AliCaloFastAltroFitv0.cxx:276 AliCaloFastAltroFitv0.cxx:277 AliCaloFastAltroFitv0.cxx:278 AliCaloFastAltroFitv0.cxx:279 AliCaloFastAltroFitv0.cxx:280 AliCaloFastAltroFitv0.cxx:281 AliCaloFastAltroFitv0.cxx:282 AliCaloFastAltroFitv0.cxx:283 AliCaloFastAltroFitv0.cxx:284 AliCaloFastAltroFitv0.cxx:285 AliCaloFastAltroFitv0.cxx:286 AliCaloFastAltroFitv0.cxx:287 AliCaloFastAltroFitv0.cxx:288 AliCaloFastAltroFitv0.cxx:289 AliCaloFastAltroFitv0.cxx:290 AliCaloFastAltroFitv0.cxx:291 AliCaloFastAltroFitv0.cxx:292 AliCaloFastAltroFitv0.cxx:293 AliCaloFastAltroFitv0.cxx:294 AliCaloFastAltroFitv0.cxx:295 AliCaloFastAltroFitv0.cxx:296 AliCaloFastAltroFitv0.cxx:297 AliCaloFastAltroFitv0.cxx:298 AliCaloFastAltroFitv0.cxx:299 AliCaloFastAltroFitv0.cxx:300 AliCaloFastAltroFitv0.cxx:301 AliCaloFastAltroFitv0.cxx:302 AliCaloFastAltroFitv0.cxx:303 AliCaloFastAltroFitv0.cxx:304 AliCaloFastAltroFitv0.cxx:305 AliCaloFastAltroFitv0.cxx:306 AliCaloFastAltroFitv0.cxx:307 AliCaloFastAltroFitv0.cxx:308 AliCaloFastAltroFitv0.cxx:309 AliCaloFastAltroFitv0.cxx:310 AliCaloFastAltroFitv0.cxx:311 AliCaloFastAltroFitv0.cxx:312 AliCaloFastAltroFitv0.cxx:313 AliCaloFastAltroFitv0.cxx:314 AliCaloFastAltroFitv0.cxx:315 AliCaloFastAltroFitv0.cxx:316 AliCaloFastAltroFitv0.cxx:317 AliCaloFastAltroFitv0.cxx:318 AliCaloFastAltroFitv0.cxx:319 AliCaloFastAltroFitv0.cxx:320 AliCaloFastAltroFitv0.cxx:321 AliCaloFastAltroFitv0.cxx:322 AliCaloFastAltroFitv0.cxx:323 AliCaloFastAltroFitv0.cxx:324 AliCaloFastAltroFitv0.cxx:325 AliCaloFastAltroFitv0.cxx:326 AliCaloFastAltroFitv0.cxx:327 AliCaloFastAltroFitv0.cxx:328 AliCaloFastAltroFitv0.cxx:329 AliCaloFastAltroFitv0.cxx:330 AliCaloFastAltroFitv0.cxx:331 AliCaloFastAltroFitv0.cxx:332 AliCaloFastAltroFitv0.cxx:333 AliCaloFastAltroFitv0.cxx:334 AliCaloFastAltroFitv0.cxx:335 AliCaloFastAltroFitv0.cxx:336 AliCaloFastAltroFitv0.cxx:337 AliCaloFastAltroFitv0.cxx:338 AliCaloFastAltroFitv0.cxx:339 AliCaloFastAltroFitv0.cxx:340 AliCaloFastAltroFitv0.cxx:341 AliCaloFastAltroFitv0.cxx:342 AliCaloFastAltroFitv0.cxx:343 AliCaloFastAltroFitv0.cxx:344 AliCaloFastAltroFitv0.cxx:345 AliCaloFastAltroFitv0.cxx:346 AliCaloFastAltroFitv0.cxx:347 AliCaloFastAltroFitv0.cxx:348 AliCaloFastAltroFitv0.cxx:349 AliCaloFastAltroFitv0.cxx:350 AliCaloFastAltroFitv0.cxx:351 AliCaloFastAltroFitv0.cxx:352 AliCaloFastAltroFitv0.cxx:353 AliCaloFastAltroFitv0.cxx:354 AliCaloFastAltroFitv0.cxx:355 AliCaloFastAltroFitv0.cxx:356 AliCaloFastAltroFitv0.cxx:357 AliCaloFastAltroFitv0.cxx:358 AliCaloFastAltroFitv0.cxx:359 AliCaloFastAltroFitv0.cxx:360 AliCaloFastAltroFitv0.cxx:361 AliCaloFastAltroFitv0.cxx:362 AliCaloFastAltroFitv0.cxx:363 AliCaloFastAltroFitv0.cxx:364 AliCaloFastAltroFitv0.cxx:365 AliCaloFastAltroFitv0.cxx:366 AliCaloFastAltroFitv0.cxx:367 AliCaloFastAltroFitv0.cxx:368 AliCaloFastAltroFitv0.cxx:369 AliCaloFastAltroFitv0.cxx:370 AliCaloFastAltroFitv0.cxx:371 AliCaloFastAltroFitv0.cxx:372 AliCaloFastAltroFitv0.cxx:373 AliCaloFastAltroFitv0.cxx:374 AliCaloFastAltroFitv0.cxx:375 AliCaloFastAltroFitv0.cxx:376 AliCaloFastAltroFitv0.cxx:377 AliCaloFastAltroFitv0.cxx:378 AliCaloFastAltroFitv0.cxx:379 AliCaloFastAltroFitv0.cxx:380 AliCaloFastAltroFitv0.cxx:381 AliCaloFastAltroFitv0.cxx:382 AliCaloFastAltroFitv0.cxx:383 AliCaloFastAltroFitv0.cxx:384 AliCaloFastAltroFitv0.cxx:385 AliCaloFastAltroFitv0.cxx:386 AliCaloFastAltroFitv0.cxx:387 AliCaloFastAltroFitv0.cxx:388 AliCaloFastAltroFitv0.cxx:389 AliCaloFastAltroFitv0.cxx:390 AliCaloFastAltroFitv0.cxx:391 AliCaloFastAltroFitv0.cxx:392 AliCaloFastAltroFitv0.cxx:393 AliCaloFastAltroFitv0.cxx:394 AliCaloFastAltroFitv0.cxx:395 AliCaloFastAltroFitv0.cxx:396 AliCaloFastAltroFitv0.cxx:397 AliCaloFastAltroFitv0.cxx:398 AliCaloFastAltroFitv0.cxx:399 AliCaloFastAltroFitv0.cxx:400 AliCaloFastAltroFitv0.cxx:401 AliCaloFastAltroFitv0.cxx:402 AliCaloFastAltroFitv0.cxx:403 AliCaloFastAltroFitv0.cxx:404 AliCaloFastAltroFitv0.cxx:405 AliCaloFastAltroFitv0.cxx:406 AliCaloFastAltroFitv0.cxx:407 AliCaloFastAltroFitv0.cxx:408 AliCaloFastAltroFitv0.cxx:409 AliCaloFastAltroFitv0.cxx:410 AliCaloFastAltroFitv0.cxx:411 AliCaloFastAltroFitv0.cxx:412 AliCaloFastAltroFitv0.cxx:413 AliCaloFastAltroFitv0.cxx:414 AliCaloFastAltroFitv0.cxx:415 AliCaloFastAltroFitv0.cxx:416 AliCaloFastAltroFitv0.cxx:417 AliCaloFastAltroFitv0.cxx:418 AliCaloFastAltroFitv0.cxx:419 AliCaloFastAltroFitv0.cxx:420 AliCaloFastAltroFitv0.cxx:421 AliCaloFastAltroFitv0.cxx:422 AliCaloFastAltroFitv0.cxx:423 AliCaloFastAltroFitv0.cxx:424 AliCaloFastAltroFitv0.cxx:425 AliCaloFastAltroFitv0.cxx:426 AliCaloFastAltroFitv0.cxx:427 AliCaloFastAltroFitv0.cxx:428 AliCaloFastAltroFitv0.cxx:429 AliCaloFastAltroFitv0.cxx:430 AliCaloFastAltroFitv0.cxx:431 AliCaloFastAltroFitv0.cxx:432 AliCaloFastAltroFitv0.cxx:433 AliCaloFastAltroFitv0.cxx:434 AliCaloFastAltroFitv0.cxx:435 AliCaloFastAltroFitv0.cxx:436 AliCaloFastAltroFitv0.cxx:437 AliCaloFastAltroFitv0.cxx:438 AliCaloFastAltroFitv0.cxx:439 AliCaloFastAltroFitv0.cxx:440 AliCaloFastAltroFitv0.cxx:441 AliCaloFastAltroFitv0.cxx:442 AliCaloFastAltroFitv0.cxx:443 AliCaloFastAltroFitv0.cxx:444 AliCaloFastAltroFitv0.cxx:445 AliCaloFastAltroFitv0.cxx:446 AliCaloFastAltroFitv0.cxx:447 AliCaloFastAltroFitv0.cxx:448 AliCaloFastAltroFitv0.cxx:449 AliCaloFastAltroFitv0.cxx:450 AliCaloFastAltroFitv0.cxx:451 AliCaloFastAltroFitv0.cxx:452 AliCaloFastAltroFitv0.cxx:453 AliCaloFastAltroFitv0.cxx:454 AliCaloFastAltroFitv0.cxx:455 AliCaloFastAltroFitv0.cxx:456 AliCaloFastAltroFitv0.cxx:457 AliCaloFastAltroFitv0.cxx:458 AliCaloFastAltroFitv0.cxx:459 AliCaloFastAltroFitv0.cxx:460 AliCaloFastAltroFitv0.cxx:461 AliCaloFastAltroFitv0.cxx:462 AliCaloFastAltroFitv0.cxx:463 AliCaloFastAltroFitv0.cxx:464 AliCaloFastAltroFitv0.cxx:465 AliCaloFastAltroFitv0.cxx:466 AliCaloFastAltroFitv0.cxx:467 AliCaloFastAltroFitv0.cxx:468 AliCaloFastAltroFitv0.cxx:469 AliCaloFastAltroFitv0.cxx:470 AliCaloFastAltroFitv0.cxx:471 AliCaloFastAltroFitv0.cxx:472 AliCaloFastAltroFitv0.cxx:473 AliCaloFastAltroFitv0.cxx:474 AliCaloFastAltroFitv0.cxx:475 AliCaloFastAltroFitv0.cxx:476 AliCaloFastAltroFitv0.cxx:477 AliCaloFastAltroFitv0.cxx:478 AliCaloFastAltroFitv0.cxx:479 AliCaloFastAltroFitv0.cxx:480 AliCaloFastAltroFitv0.cxx:481 AliCaloFastAltroFitv0.cxx:482 AliCaloFastAltroFitv0.cxx:483 AliCaloFastAltroFitv0.cxx:484 AliCaloFastAltroFitv0.cxx:485 AliCaloFastAltroFitv0.cxx:486 AliCaloFastAltroFitv0.cxx:487 AliCaloFastAltroFitv0.cxx:488 AliCaloFastAltroFitv0.cxx:489 AliCaloFastAltroFitv0.cxx:490 AliCaloFastAltroFitv0.cxx:491 AliCaloFastAltroFitv0.cxx:492 AliCaloFastAltroFitv0.cxx:493 AliCaloFastAltroFitv0.cxx:494 AliCaloFastAltroFitv0.cxx:495 AliCaloFastAltroFitv0.cxx:496 AliCaloFastAltroFitv0.cxx:497 AliCaloFastAltroFitv0.cxx:498 AliCaloFastAltroFitv0.cxx:499 AliCaloFastAltroFitv0.cxx:500 AliCaloFastAltroFitv0.cxx:501 AliCaloFastAltroFitv0.cxx:502 AliCaloFastAltroFitv0.cxx:503 AliCaloFastAltroFitv0.cxx:504 AliCaloFastAltroFitv0.cxx:505 AliCaloFastAltroFitv0.cxx:506 AliCaloFastAltroFitv0.cxx:507 AliCaloFastAltroFitv0.cxx:508 AliCaloFastAltroFitv0.cxx:509 AliCaloFastAltroFitv0.cxx:510 AliCaloFastAltroFitv0.cxx:511 AliCaloFastAltroFitv0.cxx:512 AliCaloFastAltroFitv0.cxx:513 AliCaloFastAltroFitv0.cxx:514 AliCaloFastAltroFitv0.cxx:515 AliCaloFastAltroFitv0.cxx:516 AliCaloFastAltroFitv0.cxx:517 AliCaloFastAltroFitv0.cxx:518 AliCaloFastAltroFitv0.cxx:519