ROOT logo
//----------------------------------------------------------------------
//                              AliPWGFunc
//
// This class implements several function useful to fit pt spectra,
// including but not limited to blast wave models.
//
// It can return the same functional for as a function of different
// variables: dNdpt vs pt, 1/pt dNdpt vs pt, 1/mt dNdmt vs mt. 
//
// Before getting the function you need, you have to chose the
// variable you want to use calling AliPWGFunc::SetVarType with one of
// the elements of the VarType_t enum.
//
// TODO: code cleaup, make the naming convention of function more transparent
//
// Warning: not all variables are implemented for all the functions.
//
// Author: M. Floris, CERN
//----------------------------------------------------------------------

#include "AliPWGFunc.h"
#include "TMath.h"
#include "TF1.h"
#include "TF3.h"
#include "TH1.h"
#include "TSpline.h"
#include "AliLog.h"

ClassImp(AliPWGFunc)

AliPWGFunc::AliPWGFunc () : fLastFunc(0),  fLineWidth(1), fVarType(kdNdpt) {

  // ctor
  fLineWidth = 1;
}
AliPWGFunc::~AliPWGFunc(){
  
  // dtor
  if (fLastFunc) delete fLastFunc;

}


TF1 * AliPWGFunc::GetHistoFunc(TH1 * h, const char * name) {

  // Regardless of the variable type, this returns a function made
  // from the histo * a multiplicative normalization.
  // This uses a bad hack...

  fLastFunc = new TF1 (name, StaticHistoFunc, 0.0, 10, 2);
  fLastFunc->SetParameter(0,1);
  fLastFunc->FixParameter(1,Double_t(Long64_t(h)));
  fLastFunc->SetParNames("norm", "pointer to histo");
  fLastFunc->SetLineWidth(fLineWidth);
  return fLastFunc;
  


}
TF1 * AliPWGFunc::GetGraphFunc(TGraph * g, const char * name) {

  // Regardless of the variable type, this returns a function made
  // from the graph * a multiplicative normalization.
  // This uses a bad hack...

  fLastFunc = new TF1 (name, StaticHistoFunc, 0.0, 10, 2);
  fLastFunc->SetParameter(0,1);
  fLastFunc->FixParameter(1,Double_t(Long64_t(g)));
  fLastFunc->SetParNames("norm", "pointer to histo");
  fLastFunc->SetLineWidth(fLineWidth);
  return fLastFunc;
  

}


TF1 * AliPWGFunc::GetBGBW(Double_t mass, Double_t beta, Double_t T,
			 Double_t n, Double_t norm, const char * name){

  // Boltzmann-Gibbs blast wave

  switch (fVarType) {
  case kdNdpt:
    return GetBGBWdNdptTimesPt(mass,beta,T,n,norm,name);
    break;
  case kOneOverPtdNdpt:
    return GetBGBWdNdpt(mass,beta,T,n,norm,name);
    break;
  case kOneOverMtdNdmt:
    AliFatal("Not implemented");
    break;
  default:
    AliFatal("Not implemented");
  }
  
  return 0;

}
  

TF1 * AliPWGFunc::GetBoltzmann(Double_t mass, Double_t T, Double_t norm, const char * name){
  // Boltzmann
  switch (fVarType) {
  case kdNdpt:
    return GetBoltzmanndNdptTimesPt(mass, T, norm, name);
  case kOneOverPtdNdpt:
    AliFatal("Not implemented");
    break;
  case kOneOverMtdNdmt:
    AliFatal("Not implemented");
    break;
  default:
    AliFatal("Not implemented");
  }
  
  return 0;

}


TF1 * AliPWGFunc::GetTsallisBW(Double_t mass, Double_t beta, Double_t T, Double_t q,
			      Double_t norm, Double_t ymax, const char * name){

  // Tsallis blast wave
  switch (fVarType) {
  case kdNdpt:
    return GetTsallisBWdNdptTimesPt(mass,beta,T,q,norm,ymax,name);
    break;
  case kOneOverPtdNdpt:
    return GetTsallisBWdNdpt(mass,beta,T,q,norm,ymax,name);
    break;
  case kOneOverMtdNdmt:
    AliFatal("Not implemented");
    break;
  default:
    AliFatal("Not implemented");
  }
  
  return 0;
  
}


TF1 * AliPWGFunc::GetMTExp(Double_t mass, Double_t T, Double_t norm, const char * name){

  // Simple exponential in 1/mt*MT
  switch (fVarType) {
  case kdNdpt:
    return GetMTExpdNdptTimesPt(mass,T,norm,name);
    break;
  case kOneOverPtdNdpt:
    return GetMTExpdNdpt(mass,T,norm,name);
    break;
  case kOneOverMtdNdmt:
    return GetMTExpdNdmt(mass,T,norm,name,kOneOverMtdNdmt);
    break;
  case kdNdmt:
    return GetMTExpdNdmt(mass,T,norm,name,kdNdmt);
    break;
  case kOneOverMtdNdmtMinusM:
    return GetMTExpdNdmt(mass,T,norm,name,kOneOverMtdNdmtMinusM);
    break;
  default:
    AliFatal("Not implemented");
  }
  
  return 0;


}


TF1 * AliPWGFunc::GetBoseEinstein(Double_t mass, Double_t T, Double_t norm, const char * name){

  // Bose einstein
  switch (fVarType) {
  case kdNdpt:
    return GetBoseEinsteindNdptTimesPt(mass,T,norm,name);
    break;
  case kOneOverPtdNdpt:
    return GetBoseEinsteindNdpt(mass,T,norm,name);
    break;
  case kOneOverMtdNdmt:
    AliFatal("Not implemented");
    break;
  default:
    AliFatal("Not implemented");
  }
  
  return 0;


}

TF1 * AliPWGFunc::GetFermiDirac(Double_t mass, Double_t T, Double_t norm, const char * name){

  // Simple exponential in 1/mt*MT
  switch (fVarType) {
  case kdNdpt:
    return GetFermiDiracdNdptTimesPt(mass,T,norm,name);
    break;
  case kOneOverPtdNdpt:
    return GetFermiDiracdNdpt(mass,T,norm,name);
    break;
  case kOneOverMtdNdmt:
    AliFatal("Not implemented");
    break;
  default:
    AliFatal("Not implemented");
  }
  
  return 0;


}


TF1 * AliPWGFunc::GetPTExp(Double_t T, Double_t norm, const char * name){

  // Simple exponential in 1/mt*MT
  switch (fVarType) {
  case kdNdpt:
    return GetPTExpdNdptTimesPt(T,norm,name);
    break;
  case kOneOverPtdNdpt:
    AliFatal("Not implemented");
    break;
  case kOneOverMtdNdmt:
    AliFatal("Not implemented");
    break;
  default:
    AliFatal("Not implemented");
  }
  
  return 0;


}


TF1 * AliPWGFunc::GetLevi(Double_t mass, Double_t T, Double_t n, Double_t norm, const char * name){
  // Levi function (aka Tsallis)
  switch (fVarType) {
  case kdNdpt:
    return GetLevidNdptTimesPt(mass,T,n,norm,name);
    break;
  case kOneOverPtdNdpt:
    return GetLevidNdpt(mass,T,n,norm,name);
    break;
  case kOneOverMtdNdmt:
    return GetLevidNdmt(mass,T,n,norm,name,kOneOverMtdNdmt);
    break;
  case kdNdmt:
    return GetLevidNdmt(mass,T,n,norm,name,kdNdmt);
    break;
  case kOneOverMtdNdmtMinusM:
    return GetLevidNdmt(mass,T,n,norm,name,kOneOverMtdNdmtMinusM);
    break;
  default:
    AliFatal("Not implemented");
  }
  
  return 0;


}

TF1 * AliPWGFunc::GetPowerLaw(Double_t pt0, Double_t n, Double_t norm, const char * name){
  // power law Nuclear Physics B, Vol. 335, No. 2. (7 May 1990), pp. 261-287.
  // This is sometimes also called Hagedorn or modified Hagedorn

  switch (fVarType) {
  case kdNdpt:
    return GetPowerLawdNdptTimesPt(pt0,n,norm,name);
    break;
  case kOneOverPtdNdpt:
    return GetPowerLawdNdpt(pt0,n,norm,name);
    break;
  case kOneOverMtdNdmt:
    AliFatal("Not Implemented");
    //    return GetUA1dNdmt(mass,T,n,norm,name);
    break;
  default:
    AliFatal("Not implemented");
  }
  
  return 0;


}

TF1 * AliPWGFunc::GetUA1(Double_t mass, Double_t p0star, Double_t pt0, Double_t n, Double_t T, Double_t norm, const char * name) {
  // UA1 parametrization Nuclear Physics B, Vol. 335, No. 2. (7 May 1990), pp. 261-287.

  switch (fVarType) {
  case kdNdpt:

    fLastFunc = new TF1 (name, StaticUA1Func, 0.0, 10, 6);
    fLastFunc->FixParameter(0,mass);
    fLastFunc->SetParameter(1,p0star);
    fLastFunc->SetParameter(2,pt0);
    fLastFunc->SetParameter(3,n);
    fLastFunc->SetParameter(4,T);
    fLastFunc->SetParameter(5,norm);
    fLastFunc->SetParLimits(1,0.01,1);
    fLastFunc->SetParLimits(2,0.01,100);
    fLastFunc->SetParLimits(3,0.01,100);
    fLastFunc->SetParLimits(4,0.01,100);
    fLastFunc->SetParNames("mass","p0star","pt0","n","T","norm");
    fLastFunc->SetNpx(5000);
    fLastFunc->SetLineWidth(fLineWidth);
    return fLastFunc;

    break;
  case kOneOverPtdNdpt:
    fLastFunc = new TF1 (name, StaticUA1FuncOneOverPt, 0.0, 10, 6);
    fLastFunc->FixParameter(0,mass);
    fLastFunc->SetParameter(1,p0star);
    fLastFunc->SetParameter(2,pt0);
    fLastFunc->SetParameter(3,n);
    fLastFunc->SetParameter(4,T);
    fLastFunc->SetParameter(5,norm);
    fLastFunc->SetParLimits(1,0.01,1);
    fLastFunc->SetParLimits(2,0.01,100);
    fLastFunc->SetParLimits(3,0.01,100);
    fLastFunc->SetParLimits(4,0.01,100);
    fLastFunc->SetParNames("mass","p0star","pt0","n","T","norm");
    fLastFunc->SetNpx(5000);
    fLastFunc->SetLineWidth(fLineWidth);
    return fLastFunc;

    break;
  case kOneOverMtdNdmt:
    AliFatal("Not Implemented");
    //    return GetUA1dNdmt(mass,T,n,norm,name);
    break;
  default:
    AliFatal("Not implemented");
  }

  return 0;
}




// ________________________________________________________________________

// Backend (private functions and support functions for numerical integration)

Double_t AliPWGFunc::StaticHistoFunc(const double * x, const double* p){

  // provides a function interpolating a histo with a spline; 
  // using double to store a pointer... This is a bad hack. To be replaced

  double norm = p[0];
  
  TObject * h     = (TObject*) Long64_t(p[1]);

//    Int_t bin = h->FindBin(x[0]);
//    double value = h->GetBinContent(bin);


  // static TH1 * oldptr = 0;
  // static TSpline3 * spl = 0;
  // if (h!=oldptr) {
  // FIXME: recheck static pointers
  TSpline3 * spl  = 0;
  if(h->InheritsFrom("TH1")) {
    if ( ((TH1*)h)->FindBin(x[0]) > ((TH1*)h)->GetNbinsX()) return 0;
    spl= new TSpline3((TH1*)h);
  }
  else if(h->InheritsFrom("TGraph")) spl= new TSpline3("fGraph",(TGraph*)h);
  else {
    Printf("AliPWGFunc::StaticHistoFunc: Unsupported type");
    return 0;
  }
    //  }
  double value = spl->Eval(x[0]);
  delete spl;

  return value*norm;
  
}

Double_t AliPWGFunc::StaticUA1Func(const double * x, const double* p) {
  

  // "mass","p0star","pt0","n","T","norm"
  Double_t mass   = p[0];
  Double_t p0star = p[1];
  Double_t pt0    = p[2];
  Double_t n      = p[3];
  Double_t temp   = p[4];
  Double_t norm   = p[5];
  
  Double_t xx = x[0];

  static AliPWGFunc * self = new AliPWGFunc;
  static TF1 * fPLaw   = self->GetPowerLawdNdptTimesPt(pt0, n, norm, "fLocalPLawUA1");
  static TF1 * fPMTExp = self->GetMTExpdNdptTimesPt   (mass, temp, norm, "fLocalMTexpUA1");

  fPLaw->SetParameters(norm,pt0,n);
  fPMTExp->SetParameters(1,temp);
  

  Double_t normMT =fPMTExp->Eval(p0star) >0 ? fPLaw->Eval(p0star) / fPMTExp->Eval(p0star) *  fPMTExp->GetParameter(0) : 1;
  fPMTExp->SetParameter(0,normMT);
  
  
  if (TMath::Abs(fPMTExp->Eval(p0star) - fPLaw->Eval(p0star)) > 0.0001 ) {
    Printf("AliPWGFunc::StaticUA1Func - Wrong norm") ; 
    Printf(" p0* %f  NMT: %f  N: %f  PL: %f  MT: %f", p0star, normMT, norm, fPLaw->Eval(p0star), fPMTExp->Eval(p0star));
  }

  if (xx > p0star)  return fPLaw->Eval(xx);
  return fPMTExp->Eval(xx);    
  
  

}
Double_t AliPWGFunc::StaticUA1FuncOneOverPt(const double * x, const double* p) {
  // UA1 func

  // "mass","p0star","pt0","n","T","norm"
  Double_t mass   = p[0];
  Double_t p0star = p[1];
  Double_t pt0    = p[2];
  Double_t n      = p[3];
  Double_t temp   = p[4];
  Double_t norm   = p[5];
  
  Double_t xx = x[0];

  static AliPWGFunc * self = new AliPWGFunc;
  static TF1 * fPLaw   = self->GetPowerLawdNdpt(pt0, n, norm, "fLocalPLawUA1");
  static TF1 * fPMTExp = self->GetMTExpdNdpt   (mass, temp, norm, "fLocalMTexpUA1");

  fPLaw->SetParameters(norm,pt0,n);
  fPMTExp->SetParameters(1,temp);
  

  Double_t normMT =fPMTExp->Eval(p0star) >0 ? fPLaw->Eval(p0star) / fPMTExp->Eval(p0star) *  fPMTExp->GetParameter(0) : 1;
  fPMTExp->SetParameter(0,normMT);
  
  
  if (TMath::Abs(fPMTExp->Eval(p0star) - fPLaw->Eval(p0star)) > 0.0001 ) {
    Printf("AliPWGFunc::StaticUA1Func - Wrong norm") ; 
    Printf(" p0* %f  NMT: %f  N: %f  PL: %f  MT: %f", p0star, normMT, norm, fPLaw->Eval(p0star), fPMTExp->Eval(p0star));
  }

  if (xx > p0star)  return fPLaw->Eval(xx);
  return fPMTExp->Eval(xx);    
  
  

}


Double_t AliPWGFunc::IntegrandBG(const double * x, const double* p){
  // integrand for boltzman-gibbs blast wave
     // x[0] -> r (radius)
     // p[0] -> mass
     // p[1] -> pT (transverse momentum)
     // p[2] -> beta_max (surface velocity)
     // p[3] -> T (freezout temperature)
     // p[4] -> n (velocity profile)


  double x0 = x[0]; 
  
  double mass     = p[0];
  double pT       = p[1];
  double beta_max = p[2];
  double temp     = p[3];
  Double_t n      = p[4];

  // Keep beta within reasonable limits
  Double_t beta = beta_max * TMath::Power(x0, n);
  if (beta > 0.9999999999999999) beta = 0.9999999999999999;

  double mT      = TMath::Sqrt(mass*mass+pT*pT);

  double rho0   = TMath::ATanH(beta);  
  double arg00 = pT*TMath::SinH(rho0)/temp;
  if (arg00 > 700.) arg00 = 700.; // avoid FPE
  double arg01 = mT*TMath::CosH(rho0)/temp;
  double f0 = x0*mT*TMath::BesselI0(arg00)*TMath::BesselK1(arg01);

  //  printf("r=%f, pt=%f, beta_max=%f, temp=%f, n=%f, mt=%f, beta=%f, rho=%f, argI0=%f, argK1=%f\n", x0, pT, beta_max, temp, n, mT, beta, rho0, arg00, arg01);

  return f0;
}



Double_t AliPWGFunc::StaticBGdNdPt(const double * x, const double* p) {

  // implementation of BGBW (1/pt dNdpt)

  double pT = x[0];;
  

  double mass    = p[0];
  double beta    = p[1];
  double temp    = p[2];
  double n       = p[3];
  double norm    = p[4];

  static TF1 * fIntBG = 0;
  if(!fIntBG)
    fIntBG = new TF1 ("fIntBG", IntegrandBG, 0, 1, 5);

  fIntBG->SetParameters(mass, pT, beta, temp,n);
  double result = fIntBG->Integral(0,1);
  //  printf ("[%4.4f], Int :%f\n", pT, result);
  return result*norm;//*1e30;;

}

Double_t AliPWGFunc::StaticBGdNdPtTimesPt(const double * x, const double* p) {
  // BGBW dNdpt implementation
  return x[0]*StaticBGdNdPt(x,p);
}

Double_t AliPWGFunc::StaticBGdNdMtTimesMt(const double * x, const double* p) {
  // BGBW dNdpt implementation
  // X0 is mt here
  Double_t pt = TMath::Sqrt(x[0]*x[0]-p[0]*p[0]);  
  return pt*StaticBGdNdPt(&pt,p);
}


TF1 * AliPWGFunc::GetBGBWdNdpt(Double_t mass, Double_t beta, Double_t temp,
			      Double_t n, Double_t norm, const char * name){
  
  // BGBW 1/pt dNdpt

  fLastFunc = new TF1 (name, StaticBGdNdPt, 0.0, 10, 5);
  fLastFunc->SetParameters(mass,beta,temp,n,norm);    
  fLastFunc->FixParameter(0,mass);
  fLastFunc->SetParNames("mass", "#beta", "T", "n", "norm");
  fLastFunc->SetLineWidth(fLineWidth);
  return fLastFunc;
  
}


//_____________________________________________________________________
// Tsallis

Double_t AliPWGFunc::IntegrandTsallis(const double * x, const double* p){

  // integrand for numerical integration (tsallis)

  Double_t r   = x[0]; 
  Double_t phi = x[1];
  Double_t y   = x[2];

  Double_t mass = p[0];
  Double_t pt   = p[1];
  Double_t beta = p[2];
  Double_t temp    = p[3];
  Double_t q    = p[4];
  
  Double_t mt      = TMath::Sqrt(mass*mass+pt*pt);

  Double_t rho    = TMath::ATanH(beta*r); // TODO: implement different velocity profiles  

  Double_t res = mt*
    r*TMath::CosH(y) *TMath::Power( (
				     1+(q-1)/temp * (
						  mt*TMath::CosH(y)*TMath::CosH(rho) -
						  pt*TMath::SinH(rho)*TMath::Cos(phi)
						  )
				     ),
				       -1/(q-1)
				    );			


  return res;
}



Double_t AliPWGFunc::StaticTsallisdNdPt(const double * x, const double* p) {

  // tsallis BW implementation 1/pt dNdpt

  double pT = x[0];;
  

  double mass = p[0];
  double beta = p[1];
  double temp    = p[2];
  double q    = p[3];

  Double_t ymax = p[5];


  static TF3 * fInt = 0;
  if(!fInt){
    fInt = new TF3 ("fIntTsa", IntegrandTsallis, 0, 1, -TMath::Pi(), TMath::Pi(), -ymax, ymax, 5);
//     fInt->SetNpx(10000);
//     fInt->SetNpy(10000);
//     fInt->SetNpz(10000);
  }
  
  fInt->SetParameters(mass, pT, beta, temp, q);
  double result = fInt->Integral(0,1, -TMath::Pi(), TMath::Pi(), -ymax, ymax);
  //  double result = fInt->Integral(0,1, -2, 2, -ymax, ymax);
  
  return result*p[4];//*1e30;;

}

Double_t AliPWGFunc::StaticTsallisdNdPtTimesPt(const double * x, const double* p) {

  // tsallis BW , implementatio of dNdpt
  return x[0]*StaticTsallisdNdPt(x,p);

}

TF1 * AliPWGFunc::GetTsallisBWdNdpt(Double_t mass, Double_t beta, Double_t temp, Double_t q,
				   Double_t norm, Double_t ymax,const char * name){
  

  // tsallis BW, 1/pt dNdpt

  fLastFunc = new TF1 (name, StaticTsallisdNdPt, 0.0, 10, 6);
  fLastFunc->SetParameters(mass,beta,temp,q,norm,ymax);
  fLastFunc->SetParLimits(1,0.0,0.99);
  fLastFunc->SetParLimits(2,0.01,0.99);
  fLastFunc->SetParLimits(3,1.0001,1.9);
  fLastFunc->SetParNames("mass", "#beta", "temp", "q", "norm", "ymax");
  fLastFunc->SetLineWidth(fLineWidth);
  return fLastFunc;
  
}

// Times Pt funcs
// Boltzmann-Gibbs Blast Wave
TF1 * AliPWGFunc::GetBGBWdNdptTimesPt(Double_t mass, Double_t beta, Double_t temp, Double_t n,
				     Double_t norm, const char * name){

  // BGBW, dNdpt

  fLastFunc = new TF1 (name, StaticBGdNdPtTimesPt, 0.0, 10, 5);
  fLastFunc->SetParameters(mass,beta,temp,n,norm);    
  fLastFunc->FixParameter(0,mass);
  fLastFunc->SetParNames("mass", "#beta", "temp", "n", "norm");
  fLastFunc->SetLineWidth(fLineWidth);
  return fLastFunc;


}

// Boltzmann-Gibbs Blast Wave
TF1 * AliPWGFunc::GetBGBWdNdptTimesMt(Double_t mass, Double_t beta, Double_t temp, Double_t n,
				      Double_t norm, const char * name){

  // BGBW, dNdpt
  // 1/Mt dN/dmt
  fLastFunc = new TF1 (name, StaticBGdNdMtTimesMt, 0.0, 10, 5);
  fLastFunc->SetParameters(mass,beta,temp,n,norm);    
  fLastFunc->FixParameter(0,mass);
  fLastFunc->SetParNames("mass", "#beta", "temp", "n", "norm");
  fLastFunc->SetLineWidth(fLineWidth);
  return fLastFunc;


}

TF1 * AliPWGFunc::GetTsallisBWdNdptTimesPt(Double_t mass, Double_t beta, Double_t temp, Double_t q,
					  Double_t norm, Double_t ymax, const char * name){

// Tsallis blast wave, dNdpt

  fLastFunc = new TF1 (name, StaticTsallisdNdPtTimesPt, 0.0, 10, 6);
  fLastFunc->SetParameters(mass,beta,temp,q,norm,ymax);    
  fLastFunc->SetParNames("mass", "#beta", "temp", "q", "norm", "ymax");
  fLastFunc->SetLineWidth(fLineWidth);
  return fLastFunc;
 

}



TF1 * AliPWGFunc::GetMTExpdNdptTimesPt(Double_t mass, Double_t temp, Double_t norm, const char * name){

  // Simple exponential in 1/mt*MT, as a function of dNdpt
  char formula[500];
  snprintf(formula,500,"[0]*x*exp(-sqrt(x**2+%f**2)/[1])", mass);
  fLastFunc=new TF1(name,formula,0,10);
  fLastFunc->SetParameters(norm, temp);
  fLastFunc->SetParLimits(1, 0.01, 10);
  fLastFunc->SetParNames("norm", "T");
  fLastFunc->SetLineWidth(fLineWidth);
  return fLastFunc;


}

TF1 * AliPWGFunc::GetBoseEinsteindNdptTimesPt(Double_t mass, Double_t temp, Double_t norm, const char * name){

  // Bose einstein distribution as a function of dNdpt
  char formula[500];
  snprintf(formula,500,"[0]*x*1./(exp(sqrt(x**2+%f**2)/[1])-1)", mass);
  fLastFunc=new TF1(name,formula,0,10);
  fLastFunc->SetParameters(norm, temp);
  fLastFunc->SetParLimits(1, 0.01, 10);
  fLastFunc->SetParNames("norm", "T");
  fLastFunc->SetLineWidth(fLineWidth);
  return fLastFunc;


}

TF1 * AliPWGFunc::GetFermiDiracdNdptTimesPt(Double_t mass, Double_t temp, Double_t norm, const char * name){

  // Bose einstein distribution as a function of dNdpt
  char formula[500];
  snprintf(formula,500,"[0]*x*1./(exp(sqrt(x**2+%f**2)/[1])+1)", mass);
  fLastFunc=new TF1(name,formula,0,10);
  fLastFunc->SetParameters(norm, temp);
  fLastFunc->SetParLimits(1, 0.01, 10);
  fLastFunc->SetParNames("norm", "T");
  fLastFunc->SetLineWidth(fLineWidth);
  return fLastFunc;


}



TF1 * AliPWGFunc::GetPTExpdNdptTimesPt(Double_t temp, Double_t norm, const char * name){

  // Simple exponential in 1/pt*dNdpT, as a function of dNdpt
  char formula[500];
  snprintf(formula,500,"[0]*x*exp(-x/[1])");
  fLastFunc=new TF1(name,formula,0,10);
  fLastFunc->SetParameters(norm, temp);
  fLastFunc->SetParLimits(1, 0.01, 10);
  fLastFunc->SetParNames("norm", "T");
  fLastFunc->SetLineWidth(fLineWidth);
  return fLastFunc;


}


TF1 * AliPWGFunc::GetBoltzmanndNdptTimesPt(Double_t mass, Double_t temp, Double_t norm, const char * name){
  // Boltzmann (exp in 1/mt*dNdmT times mt) as a function of dNdpt
 char formula[500];
 snprintf(formula,500,"[0]*x*sqrt(x**2+%f**2)*exp(-sqrt(x**2+%f**2)/[1])", mass,mass);
  fLastFunc=new TF1(name,formula,0,10);
  fLastFunc->SetParameters(norm, temp);
  fLastFunc->SetParLimits(1, 0.01, 10);
  fLastFunc->SetParNames("norm", "T");
  fLastFunc->SetLineWidth(fLineWidth);
  return fLastFunc;


}


// Tsallis (no BW, a la CMS)
// TF1 * AliPWGFunc::GetTsallisdNdptTimesPt(Double_t mass, Double_t T, Double_t q, Double_t norm, const char * name){

//   char formula[500];
//   //  sprintf(formula,"[0]*x*pow((1+(([2]-1)/[1])*(sqrt(x**2+%f**2)-%f)),(-1/([2]-1)))", mass, mass); //CMS
//   sprintf(formula,"[0]*x*pow((1+(([2]-1)/[1])*(sqrt(x**2+%f**2))),(-1/([2]-1)))", mass);  // STAR
//   //sprintf(formula,"[0]*x*sqrt(x**2+%f**2)*pow((1+(([2]-1)/[1])*(sqrt(x**2+%f**2))),(-1/([2]-1)))", mass,mass);  // STAR * mt
//   fLastFunc=new TF1(name,formula,0,10);
//   fLastFunc->SetParameters(norm, T, q);
//   fLastFunc->SetParLimits(1, 0.001, 10);
//   fLastFunc->SetParNames("norm", "T", "q");
//   fLastFunc->SetLineWidth(fLineWidth);
//   return fLastFunc;


// }


TF1 * AliPWGFunc::GetLevidNdptTimesPt(Double_t mass, Double_t temp, Double_t n, Double_t norm, const char * name){

  // Levi function, dNdpt
  char formula[500];

  snprintf(formula,500,"( x*[0]*([1]-1)*([1]-2)  )/( [1]*[2]*( [1]*[2]+[3]*([1]-2) )  ) * ( 1 + (sqrt([3]*[3]+x*x) -[3])/([1]*[2])  )^(-[1])");
  //  sprintf(formula,"( x*[0]*([1]-1)*([1]-2)  )/( [1]*[2]*( [1]*[2]+[3]*([1]-2) )  ) * ( 1 + (sqrt([3]*[3]+x*x))/([1]*[2])  )^(-[1])");
  fLastFunc=new TF1(name,formula,0,10);
  fLastFunc->SetParameters(norm, n, temp,mass);
  fLastFunc->SetParLimits(2, 0.01, 10);
  fLastFunc->SetParNames("norm (dN/dy)", "n", "T", "mass");
  fLastFunc->FixParameter(3,mass);
  fLastFunc->SetLineWidth(fLineWidth);
  return fLastFunc;


}

TF1 * AliPWGFunc::GetPowerLawdNdptTimesPt(Double_t pt0, Double_t n, Double_t norm, const char * name){

  // PowerLaw function, dNdpt
  char formula[500];

  snprintf(formula,500,"x*[0]*( 1 + x/[1] )^(-[2])");
  fLastFunc=new TF1(name,formula,0,10);
  fLastFunc->SetParameters(norm, pt0, n);
  fLastFunc->SetParLimits(1, 0.01, 10);
  //fLastFunc->SetParLimits(2, 0.01, 50);
  fLastFunc->SetParNames("norm", "pt0", "n");
  fLastFunc->SetLineWidth(fLineWidth);
  return fLastFunc;


}

TF1 * AliPWGFunc::GetPowerLawdNdpt(Double_t pt0, Double_t n, Double_t norm, const char * name){

  // PowerLaw function, 1/pt dNdpt
  char formula[500];

  snprintf(formula,500," [0]*( 1 + x/[1] )^(-[2])");
  fLastFunc=new TF1(name,formula,0,10);
  fLastFunc->SetParameters(norm, pt0, n);
  //  fLastFunc->SetParLimits(2, 0.01, 10);
  fLastFunc->SetParNames("norm", "pt0", "n");
  fLastFunc->SetLineWidth(fLineWidth);
  return fLastFunc;


}


TF1 * AliPWGFunc::GetLevidNdpt(Double_t mass, Double_t temp, Double_t n, Double_t norm, const char * name){

  // Levi function, dNdpt
  char formula[500];

  snprintf(formula,500,"( [0]*([1]-1)*([1]-2)  )/( [1]*[2]*( [1]*[2]+[3]*([1]-2) )  ) * ( 1 + (sqrt([3]*[3]+x*x) -[3])/([1]*[2])  )^(-[1])");
  fLastFunc=new TF1(name,formula,0,10);
  fLastFunc->SetParameters(norm, n, temp,mass);
  fLastFunc->SetParLimits(2, 0.01, 10);
  fLastFunc->SetParNames("norm (dN/dy)", "n", "T", "mass");
  fLastFunc->FixParameter(3,mass);
  fLastFunc->SetLineWidth(fLineWidth);
  return fLastFunc;


}

TF1 * AliPWGFunc::GetLevidNdmt(Double_t mass, Double_t temp, Double_t n, Double_t norm, const char * name, VarType_t var){

  // Levi function, 1/mt dNdmt
  char formula[500];
  if (var == kOneOverMtdNdmt)
    snprintf(formula,500,"( [0]*([1]-1)*([1]-2)  )/( [1]*[2]*( [1]*[2]+[3]*([1]-2) )  ) * ( 1 + (x -[3])/([1]*[2])  )^(-[1])");
  else if (var == kdNdmt) 
    snprintf(formula,500,"( x*[0]*([1]-1)*([1]-2)  )/( [1]*[2]*( [1]*[2]+[3]*([1]-2) )  ) * ( 1 + (x-[3])/([1]*[2])  )^(-[1])");
  if (var == kOneOverMtdNdmtMinusM)
    snprintf(formula,500,"( [0]*([1]-1)*([1]-2)  )/( [1]*[2]*( [1]*[2]+[3]*([1]-2) )  ) * ( 1 + (x)/([1]*[2])  )^(-[1])");

  //sprintf(formula,"( [0]*([1]-1)*([1]-2)  )/( [1]*[2]*( [1]*[2]+[3]*([1]-2) )  ) * ( 1 + x/([1]*[2])  )^(-[1])");
  //  sprintf(formula,"[0] * ( 1 + x/([1]*[2])  )^(-[1])");
  fLastFunc=new TF1(name,formula,0,10);
  fLastFunc->SetParameters(norm, n, temp,mass);
  fLastFunc->SetParLimits(2, 0.01, 10);
  fLastFunc->SetParNames("norm", "n", "T", "mass");
  fLastFunc->FixParameter(3,mass);
  fLastFunc->SetLineWidth(fLineWidth);
  return fLastFunc;


}




// Test Function
Double_t AliPWGFunc::IntegrandTest(const double * x, const double* p){

  // test function

  Double_t y = x[0];

  Double_t mass = p[0];
  Double_t pt   = p[1];
  Double_t temp    = p[2];

  Double_t mt      = TMath::Sqrt(mass*mass+pt*pt);    
  
  return mt*TMath::CosH(y)*TMath::Exp(-mt*TMath::CosH(y)/temp);

}

Double_t AliPWGFunc::StaticTest(const double * x, const double* p) {

  // test function

  double pT = x[0];;
  

  double mass = p[0];
  double temp    = p[1];
  Double_t ymax = p[3];


  static TF3 * fIntTest = 0;
  if(!fIntTest){
    fIntTest = new TF3 ("fIntTest", IntegrandTest, 0, 1, -TMath::Pi(), TMath::Pi(), -ymax, ymax, 5);
    //    fInt->SetNpx(10000);
  }
  
  fIntTest->SetParameters(mass, pT, temp);
  double result = fIntTest->Integral(-ymax, ymax);
  
  return result*p[2];//*1e30;;

}

TF1 * AliPWGFunc::GetTestFunc(Double_t mass, Double_t temp, Double_t norm, Double_t ymax, const char * name){
  
  // test function
  
  fLastFunc = new TF1 (name, StaticTest, 0.0, 10, 4);
  fLastFunc->SetParameters(mass,temp,norm,ymax);    
  fLastFunc->SetParNames("mass", "#beta", "T", "q", "norm", "ymax");
  fLastFunc->SetLineWidth(fLineWidth);
  return fLastFunc;
  
}


//___________________________________________________________


TF1 * AliPWGFunc::GetMTExpdNdpt(Double_t mass, Double_t temp, Double_t norm, const char * name){
  // Simple exp in 1/mt dNdmt, as a function of dNdpt
  // mt scaling
  char formula[500];
  snprintf(formula,500,"[0]*exp(-sqrt(x**2+%f**2)/[1])", mass);
  fLastFunc=new TF1(name,formula,0,10);
  fLastFunc->SetParameters(norm, temp);
  fLastFunc->SetParLimits(1, 0.01, 10);
  fLastFunc->SetParNames("norm", "T");
  fLastFunc->SetLineWidth(fLineWidth);
  return fLastFunc;
}


TF1 * AliPWGFunc::GetMTExpdNdmt(Double_t mass, Double_t temp, Double_t norm, const char * name, VarType_t var){

  // Levi function, 1/mt dNdmt1/mt dNdmt, 
  char formula[500];
  if (var == kOneOverMtdNdmt)
    snprintf(formula,500,"[0] * exp (-x/[1]) + %f ", mass);
  else if (var == kdNdmt) 
    snprintf(formula,500,"[0] * x * exp (-x/[1]) + %f ", mass);
  if (var == kOneOverMtdNdmtMinusM)
    snprintf(formula,500,"[0] * exp (-x/[1])");

  //sprintf(formula,"( [0]*([1]-1)*([1]-2)  )/( [1]*[2]*( [1]*[2]+[3]*([1]-2) )  ) * ( 1 + x/([1]*[2])  )^(-[1])");
  //  sprintf(formula,"[0] * ( 1 + x/([1]*[2])  )^(-[1])");
  fLastFunc=new TF1(name,formula,0,10);
  fLastFunc->SetParameters(norm, temp);
  fLastFunc->SetParLimits(1, 0.01, 10);
  fLastFunc->SetParNames("norm", "T");
  fLastFunc->SetLineWidth(fLineWidth);
  return fLastFunc;


}



TF1 * AliPWGFunc::GetBoseEinsteindNdpt(Double_t mass, Double_t temp, Double_t norm, const char * name){
  // bose einstein
  char formula[500];
  snprintf(formula,500,"[0]*1./(exp(sqrt(x**2+%f**2)/[1])-1)", mass);
  fLastFunc=new TF1(name,formula,0,10);
  fLastFunc->SetParameters(norm, temp);
  fLastFunc->SetParLimits(1, 0.01, 10);
  fLastFunc->SetParNames("norm", "T");
  fLastFunc->SetLineWidth(fLineWidth);
  return fLastFunc;
}

TF1 * AliPWGFunc::GetFermiDiracdNdpt(Double_t mass, Double_t temp, Double_t norm, const char * name){
  // bose einstein
  char formula[500];
  snprintf(formula,500,"[0]*1./(exp(sqrt(x**2+%f**2)/[1])+1)", mass);
  fLastFunc=new TF1(name,formula,0,10);
  fLastFunc->SetParameters(norm, temp);
  fLastFunc->SetParLimits(1, 0.01, 10);
  fLastFunc->SetParNames("norm", "T");
  fLastFunc->SetLineWidth(fLineWidth);
  return fLastFunc;
}


// // Simple tsallis (a la CMS)
// TF1 * AliPWGFunc::GetTsallisdNdpt(Double_t mass, Double_t temp, Double_t q, Double_t norm, const char * name){
  
//   char formula[500];
//   sprintf(formula,"[0]*sqrt(x**2+%f**2)*pow((1+(([2]-1)/[1])*(sqrt(x**2+%f**2))),(-1/([2]-1)))", mass,mass); 
//   fLastFunc=new TF1(name,formula,0,10);
//   fLastFunc->SetParameters(norm, temp, q);
//   fLastFunc->SetParLimits(1, 0.01, 10);
//   fLastFunc->SetParNames("norm", "T", "q");
//   fLastFunc->SetLineWidth(fLineWidth);
//   return fLastFunc;
// }
 AliPWGFunc.cxx:1
 AliPWGFunc.cxx:2
 AliPWGFunc.cxx:3
 AliPWGFunc.cxx:4
 AliPWGFunc.cxx:5
 AliPWGFunc.cxx:6
 AliPWGFunc.cxx:7
 AliPWGFunc.cxx:8
 AliPWGFunc.cxx:9
 AliPWGFunc.cxx:10
 AliPWGFunc.cxx:11
 AliPWGFunc.cxx:12
 AliPWGFunc.cxx:13
 AliPWGFunc.cxx:14
 AliPWGFunc.cxx:15
 AliPWGFunc.cxx:16
 AliPWGFunc.cxx:17
 AliPWGFunc.cxx:18
 AliPWGFunc.cxx:19
 AliPWGFunc.cxx:20
 AliPWGFunc.cxx:21
 AliPWGFunc.cxx:22
 AliPWGFunc.cxx:23
 AliPWGFunc.cxx:24
 AliPWGFunc.cxx:25
 AliPWGFunc.cxx:26
 AliPWGFunc.cxx:27
 AliPWGFunc.cxx:28
 AliPWGFunc.cxx:29
 AliPWGFunc.cxx:30
 AliPWGFunc.cxx:31
 AliPWGFunc.cxx:32
 AliPWGFunc.cxx:33
 AliPWGFunc.cxx:34
 AliPWGFunc.cxx:35
 AliPWGFunc.cxx:36
 AliPWGFunc.cxx:37
 AliPWGFunc.cxx:38
 AliPWGFunc.cxx:39
 AliPWGFunc.cxx:40
 AliPWGFunc.cxx:41
 AliPWGFunc.cxx:42
 AliPWGFunc.cxx:43
 AliPWGFunc.cxx:44
 AliPWGFunc.cxx:45
 AliPWGFunc.cxx:46
 AliPWGFunc.cxx:47
 AliPWGFunc.cxx:48
 AliPWGFunc.cxx:49
 AliPWGFunc.cxx:50
 AliPWGFunc.cxx:51
 AliPWGFunc.cxx:52
 AliPWGFunc.cxx:53
 AliPWGFunc.cxx:54
 AliPWGFunc.cxx:55
 AliPWGFunc.cxx:56
 AliPWGFunc.cxx:57
 AliPWGFunc.cxx:58
 AliPWGFunc.cxx:59
 AliPWGFunc.cxx:60
 AliPWGFunc.cxx:61
 AliPWGFunc.cxx:62
 AliPWGFunc.cxx:63
 AliPWGFunc.cxx:64
 AliPWGFunc.cxx:65
 AliPWGFunc.cxx:66
 AliPWGFunc.cxx:67
 AliPWGFunc.cxx:68
 AliPWGFunc.cxx:69
 AliPWGFunc.cxx:70
 AliPWGFunc.cxx:71
 AliPWGFunc.cxx:72
 AliPWGFunc.cxx:73
 AliPWGFunc.cxx:74
 AliPWGFunc.cxx:75
 AliPWGFunc.cxx:76
 AliPWGFunc.cxx:77
 AliPWGFunc.cxx:78
 AliPWGFunc.cxx:79
 AliPWGFunc.cxx:80
 AliPWGFunc.cxx:81
 AliPWGFunc.cxx:82
 AliPWGFunc.cxx:83
 AliPWGFunc.cxx:84
 AliPWGFunc.cxx:85
 AliPWGFunc.cxx:86
 AliPWGFunc.cxx:87
 AliPWGFunc.cxx:88
 AliPWGFunc.cxx:89
 AliPWGFunc.cxx:90
 AliPWGFunc.cxx:91
 AliPWGFunc.cxx:92
 AliPWGFunc.cxx:93
 AliPWGFunc.cxx:94
 AliPWGFunc.cxx:95
 AliPWGFunc.cxx:96
 AliPWGFunc.cxx:97
 AliPWGFunc.cxx:98
 AliPWGFunc.cxx:99
 AliPWGFunc.cxx:100
 AliPWGFunc.cxx:101
 AliPWGFunc.cxx:102
 AliPWGFunc.cxx:103
 AliPWGFunc.cxx:104
 AliPWGFunc.cxx:105
 AliPWGFunc.cxx:106
 AliPWGFunc.cxx:107
 AliPWGFunc.cxx:108
 AliPWGFunc.cxx:109
 AliPWGFunc.cxx:110
 AliPWGFunc.cxx:111
 AliPWGFunc.cxx:112
 AliPWGFunc.cxx:113
 AliPWGFunc.cxx:114
 AliPWGFunc.cxx:115
 AliPWGFunc.cxx:116
 AliPWGFunc.cxx:117
 AliPWGFunc.cxx:118
 AliPWGFunc.cxx:119
 AliPWGFunc.cxx:120
 AliPWGFunc.cxx:121
 AliPWGFunc.cxx:122
 AliPWGFunc.cxx:123
 AliPWGFunc.cxx:124
 AliPWGFunc.cxx:125
 AliPWGFunc.cxx:126
 AliPWGFunc.cxx:127
 AliPWGFunc.cxx:128
 AliPWGFunc.cxx:129
 AliPWGFunc.cxx:130
 AliPWGFunc.cxx:131
 AliPWGFunc.cxx:132
 AliPWGFunc.cxx:133
 AliPWGFunc.cxx:134
 AliPWGFunc.cxx:135
 AliPWGFunc.cxx:136
 AliPWGFunc.cxx:137
 AliPWGFunc.cxx:138
 AliPWGFunc.cxx:139
 AliPWGFunc.cxx:140
 AliPWGFunc.cxx:141
 AliPWGFunc.cxx:142
 AliPWGFunc.cxx:143
 AliPWGFunc.cxx:144
 AliPWGFunc.cxx:145
 AliPWGFunc.cxx:146
 AliPWGFunc.cxx:147
 AliPWGFunc.cxx:148
 AliPWGFunc.cxx:149
 AliPWGFunc.cxx:150
 AliPWGFunc.cxx:151
 AliPWGFunc.cxx:152
 AliPWGFunc.cxx:153
 AliPWGFunc.cxx:154
 AliPWGFunc.cxx:155
 AliPWGFunc.cxx:156
 AliPWGFunc.cxx:157
 AliPWGFunc.cxx:158
 AliPWGFunc.cxx:159
 AliPWGFunc.cxx:160
 AliPWGFunc.cxx:161
 AliPWGFunc.cxx:162
 AliPWGFunc.cxx:163
 AliPWGFunc.cxx:164
 AliPWGFunc.cxx:165
 AliPWGFunc.cxx:166
 AliPWGFunc.cxx:167
 AliPWGFunc.cxx:168
 AliPWGFunc.cxx:169
 AliPWGFunc.cxx:170
 AliPWGFunc.cxx:171
 AliPWGFunc.cxx:172
 AliPWGFunc.cxx:173
 AliPWGFunc.cxx:174
 AliPWGFunc.cxx:175
 AliPWGFunc.cxx:176
 AliPWGFunc.cxx:177
 AliPWGFunc.cxx:178
 AliPWGFunc.cxx:179
 AliPWGFunc.cxx:180
 AliPWGFunc.cxx:181
 AliPWGFunc.cxx:182
 AliPWGFunc.cxx:183
 AliPWGFunc.cxx:184
 AliPWGFunc.cxx:185
 AliPWGFunc.cxx:186
 AliPWGFunc.cxx:187
 AliPWGFunc.cxx:188
 AliPWGFunc.cxx:189
 AliPWGFunc.cxx:190
 AliPWGFunc.cxx:191
 AliPWGFunc.cxx:192
 AliPWGFunc.cxx:193
 AliPWGFunc.cxx:194
 AliPWGFunc.cxx:195
 AliPWGFunc.cxx:196
 AliPWGFunc.cxx:197
 AliPWGFunc.cxx:198
 AliPWGFunc.cxx:199
 AliPWGFunc.cxx:200
 AliPWGFunc.cxx:201
 AliPWGFunc.cxx:202
 AliPWGFunc.cxx:203
 AliPWGFunc.cxx:204
 AliPWGFunc.cxx:205
 AliPWGFunc.cxx:206
 AliPWGFunc.cxx:207
 AliPWGFunc.cxx:208
 AliPWGFunc.cxx:209
 AliPWGFunc.cxx:210
 AliPWGFunc.cxx:211
 AliPWGFunc.cxx:212
 AliPWGFunc.cxx:213
 AliPWGFunc.cxx:214
 AliPWGFunc.cxx:215
 AliPWGFunc.cxx:216
 AliPWGFunc.cxx:217
 AliPWGFunc.cxx:218
 AliPWGFunc.cxx:219
 AliPWGFunc.cxx:220
 AliPWGFunc.cxx:221
 AliPWGFunc.cxx:222
 AliPWGFunc.cxx:223
 AliPWGFunc.cxx:224
 AliPWGFunc.cxx:225
 AliPWGFunc.cxx:226
 AliPWGFunc.cxx:227
 AliPWGFunc.cxx:228
 AliPWGFunc.cxx:229
 AliPWGFunc.cxx:230
 AliPWGFunc.cxx:231
 AliPWGFunc.cxx:232
 AliPWGFunc.cxx:233
 AliPWGFunc.cxx:234
 AliPWGFunc.cxx:235
 AliPWGFunc.cxx:236
 AliPWGFunc.cxx:237
 AliPWGFunc.cxx:238
 AliPWGFunc.cxx:239
 AliPWGFunc.cxx:240
 AliPWGFunc.cxx:241
 AliPWGFunc.cxx:242
 AliPWGFunc.cxx:243
 AliPWGFunc.cxx:244
 AliPWGFunc.cxx:245
 AliPWGFunc.cxx:246
 AliPWGFunc.cxx:247
 AliPWGFunc.cxx:248
 AliPWGFunc.cxx:249
 AliPWGFunc.cxx:250
 AliPWGFunc.cxx:251
 AliPWGFunc.cxx:252
 AliPWGFunc.cxx:253
 AliPWGFunc.cxx:254
 AliPWGFunc.cxx:255
 AliPWGFunc.cxx:256
 AliPWGFunc.cxx:257
 AliPWGFunc.cxx:258
 AliPWGFunc.cxx:259
 AliPWGFunc.cxx:260
 AliPWGFunc.cxx:261
 AliPWGFunc.cxx:262
 AliPWGFunc.cxx:263
 AliPWGFunc.cxx:264
 AliPWGFunc.cxx:265
 AliPWGFunc.cxx:266
 AliPWGFunc.cxx:267
 AliPWGFunc.cxx:268
 AliPWGFunc.cxx:269
 AliPWGFunc.cxx:270
 AliPWGFunc.cxx:271
 AliPWGFunc.cxx:272
 AliPWGFunc.cxx:273
 AliPWGFunc.cxx:274
 AliPWGFunc.cxx:275
 AliPWGFunc.cxx:276
 AliPWGFunc.cxx:277
 AliPWGFunc.cxx:278
 AliPWGFunc.cxx:279
 AliPWGFunc.cxx:280
 AliPWGFunc.cxx:281
 AliPWGFunc.cxx:282
 AliPWGFunc.cxx:283
 AliPWGFunc.cxx:284
 AliPWGFunc.cxx:285
 AliPWGFunc.cxx:286
 AliPWGFunc.cxx:287
 AliPWGFunc.cxx:288
 AliPWGFunc.cxx:289
 AliPWGFunc.cxx:290
 AliPWGFunc.cxx:291
 AliPWGFunc.cxx:292
 AliPWGFunc.cxx:293
 AliPWGFunc.cxx:294
 AliPWGFunc.cxx:295
 AliPWGFunc.cxx:296
 AliPWGFunc.cxx:297
 AliPWGFunc.cxx:298
 AliPWGFunc.cxx:299
 AliPWGFunc.cxx:300
 AliPWGFunc.cxx:301
 AliPWGFunc.cxx:302
 AliPWGFunc.cxx:303
 AliPWGFunc.cxx:304
 AliPWGFunc.cxx:305
 AliPWGFunc.cxx:306
 AliPWGFunc.cxx:307
 AliPWGFunc.cxx:308
 AliPWGFunc.cxx:309
 AliPWGFunc.cxx:310
 AliPWGFunc.cxx:311
 AliPWGFunc.cxx:312
 AliPWGFunc.cxx:313
 AliPWGFunc.cxx:314
 AliPWGFunc.cxx:315
 AliPWGFunc.cxx:316
 AliPWGFunc.cxx:317
 AliPWGFunc.cxx:318
 AliPWGFunc.cxx:319
 AliPWGFunc.cxx:320
 AliPWGFunc.cxx:321
 AliPWGFunc.cxx:322
 AliPWGFunc.cxx:323
 AliPWGFunc.cxx:324
 AliPWGFunc.cxx:325
 AliPWGFunc.cxx:326
 AliPWGFunc.cxx:327
 AliPWGFunc.cxx:328
 AliPWGFunc.cxx:329
 AliPWGFunc.cxx:330
 AliPWGFunc.cxx:331
 AliPWGFunc.cxx:332
 AliPWGFunc.cxx:333
 AliPWGFunc.cxx:334
 AliPWGFunc.cxx:335
 AliPWGFunc.cxx:336
 AliPWGFunc.cxx:337
 AliPWGFunc.cxx:338
 AliPWGFunc.cxx:339
 AliPWGFunc.cxx:340
 AliPWGFunc.cxx:341
 AliPWGFunc.cxx:342
 AliPWGFunc.cxx:343
 AliPWGFunc.cxx:344
 AliPWGFunc.cxx:345
 AliPWGFunc.cxx:346
 AliPWGFunc.cxx:347
 AliPWGFunc.cxx:348
 AliPWGFunc.cxx:349
 AliPWGFunc.cxx:350
 AliPWGFunc.cxx:351
 AliPWGFunc.cxx:352
 AliPWGFunc.cxx:353
 AliPWGFunc.cxx:354
 AliPWGFunc.cxx:355
 AliPWGFunc.cxx:356
 AliPWGFunc.cxx:357
 AliPWGFunc.cxx:358
 AliPWGFunc.cxx:359
 AliPWGFunc.cxx:360
 AliPWGFunc.cxx:361
 AliPWGFunc.cxx:362
 AliPWGFunc.cxx:363
 AliPWGFunc.cxx:364
 AliPWGFunc.cxx:365
 AliPWGFunc.cxx:366
 AliPWGFunc.cxx:367
 AliPWGFunc.cxx:368
 AliPWGFunc.cxx:369
 AliPWGFunc.cxx:370
 AliPWGFunc.cxx:371
 AliPWGFunc.cxx:372
 AliPWGFunc.cxx:373
 AliPWGFunc.cxx:374
 AliPWGFunc.cxx:375
 AliPWGFunc.cxx:376
 AliPWGFunc.cxx:377
 AliPWGFunc.cxx:378
 AliPWGFunc.cxx:379
 AliPWGFunc.cxx:380
 AliPWGFunc.cxx:381
 AliPWGFunc.cxx:382
 AliPWGFunc.cxx:383
 AliPWGFunc.cxx:384
 AliPWGFunc.cxx:385
 AliPWGFunc.cxx:386
 AliPWGFunc.cxx:387
 AliPWGFunc.cxx:388
 AliPWGFunc.cxx:389
 AliPWGFunc.cxx:390
 AliPWGFunc.cxx:391
 AliPWGFunc.cxx:392
 AliPWGFunc.cxx:393
 AliPWGFunc.cxx:394
 AliPWGFunc.cxx:395
 AliPWGFunc.cxx:396
 AliPWGFunc.cxx:397
 AliPWGFunc.cxx:398
 AliPWGFunc.cxx:399
 AliPWGFunc.cxx:400
 AliPWGFunc.cxx:401
 AliPWGFunc.cxx:402
 AliPWGFunc.cxx:403
 AliPWGFunc.cxx:404
 AliPWGFunc.cxx:405
 AliPWGFunc.cxx:406
 AliPWGFunc.cxx:407
 AliPWGFunc.cxx:408
 AliPWGFunc.cxx:409
 AliPWGFunc.cxx:410
 AliPWGFunc.cxx:411
 AliPWGFunc.cxx:412
 AliPWGFunc.cxx:413
 AliPWGFunc.cxx:414
 AliPWGFunc.cxx:415
 AliPWGFunc.cxx:416
 AliPWGFunc.cxx:417
 AliPWGFunc.cxx:418
 AliPWGFunc.cxx:419
 AliPWGFunc.cxx:420
 AliPWGFunc.cxx:421
 AliPWGFunc.cxx:422
 AliPWGFunc.cxx:423
 AliPWGFunc.cxx:424
 AliPWGFunc.cxx:425
 AliPWGFunc.cxx:426
 AliPWGFunc.cxx:427
 AliPWGFunc.cxx:428
 AliPWGFunc.cxx:429
 AliPWGFunc.cxx:430
 AliPWGFunc.cxx:431
 AliPWGFunc.cxx:432
 AliPWGFunc.cxx:433
 AliPWGFunc.cxx:434
 AliPWGFunc.cxx:435
 AliPWGFunc.cxx:436
 AliPWGFunc.cxx:437
 AliPWGFunc.cxx:438
 AliPWGFunc.cxx:439
 AliPWGFunc.cxx:440
 AliPWGFunc.cxx:441
 AliPWGFunc.cxx:442
 AliPWGFunc.cxx:443
 AliPWGFunc.cxx:444
 AliPWGFunc.cxx:445
 AliPWGFunc.cxx:446
 AliPWGFunc.cxx:447
 AliPWGFunc.cxx:448
 AliPWGFunc.cxx:449
 AliPWGFunc.cxx:450
 AliPWGFunc.cxx:451
 AliPWGFunc.cxx:452
 AliPWGFunc.cxx:453
 AliPWGFunc.cxx:454
 AliPWGFunc.cxx:455
 AliPWGFunc.cxx:456
 AliPWGFunc.cxx:457
 AliPWGFunc.cxx:458
 AliPWGFunc.cxx:459
 AliPWGFunc.cxx:460
 AliPWGFunc.cxx:461
 AliPWGFunc.cxx:462
 AliPWGFunc.cxx:463
 AliPWGFunc.cxx:464
 AliPWGFunc.cxx:465
 AliPWGFunc.cxx:466
 AliPWGFunc.cxx:467
 AliPWGFunc.cxx:468
 AliPWGFunc.cxx:469
 AliPWGFunc.cxx:470
 AliPWGFunc.cxx:471
 AliPWGFunc.cxx:472
 AliPWGFunc.cxx:473
 AliPWGFunc.cxx:474
 AliPWGFunc.cxx:475
 AliPWGFunc.cxx:476
 AliPWGFunc.cxx:477
 AliPWGFunc.cxx:478
 AliPWGFunc.cxx:479
 AliPWGFunc.cxx:480
 AliPWGFunc.cxx:481
 AliPWGFunc.cxx:482
 AliPWGFunc.cxx:483
 AliPWGFunc.cxx:484
 AliPWGFunc.cxx:485
 AliPWGFunc.cxx:486
 AliPWGFunc.cxx:487
 AliPWGFunc.cxx:488
 AliPWGFunc.cxx:489
 AliPWGFunc.cxx:490
 AliPWGFunc.cxx:491
 AliPWGFunc.cxx:492
 AliPWGFunc.cxx:493
 AliPWGFunc.cxx:494
 AliPWGFunc.cxx:495
 AliPWGFunc.cxx:496
 AliPWGFunc.cxx:497
 AliPWGFunc.cxx:498
 AliPWGFunc.cxx:499
 AliPWGFunc.cxx:500
 AliPWGFunc.cxx:501
 AliPWGFunc.cxx:502
 AliPWGFunc.cxx:503
 AliPWGFunc.cxx:504
 AliPWGFunc.cxx:505
 AliPWGFunc.cxx:506
 AliPWGFunc.cxx:507
 AliPWGFunc.cxx:508
 AliPWGFunc.cxx:509
 AliPWGFunc.cxx:510
 AliPWGFunc.cxx:511
 AliPWGFunc.cxx:512
 AliPWGFunc.cxx:513
 AliPWGFunc.cxx:514
 AliPWGFunc.cxx:515
 AliPWGFunc.cxx:516
 AliPWGFunc.cxx:517
 AliPWGFunc.cxx:518
 AliPWGFunc.cxx:519
 AliPWGFunc.cxx:520
 AliPWGFunc.cxx:521
 AliPWGFunc.cxx:522
 AliPWGFunc.cxx:523
 AliPWGFunc.cxx:524
 AliPWGFunc.cxx:525
 AliPWGFunc.cxx:526
 AliPWGFunc.cxx:527
 AliPWGFunc.cxx:528
 AliPWGFunc.cxx:529
 AliPWGFunc.cxx:530
 AliPWGFunc.cxx:531
 AliPWGFunc.cxx:532
 AliPWGFunc.cxx:533
 AliPWGFunc.cxx:534
 AliPWGFunc.cxx:535
 AliPWGFunc.cxx:536
 AliPWGFunc.cxx:537
 AliPWGFunc.cxx:538
 AliPWGFunc.cxx:539
 AliPWGFunc.cxx:540
 AliPWGFunc.cxx:541
 AliPWGFunc.cxx:542
 AliPWGFunc.cxx:543
 AliPWGFunc.cxx:544
 AliPWGFunc.cxx:545
 AliPWGFunc.cxx:546
 AliPWGFunc.cxx:547
 AliPWGFunc.cxx:548
 AliPWGFunc.cxx:549
 AliPWGFunc.cxx:550
 AliPWGFunc.cxx:551
 AliPWGFunc.cxx:552
 AliPWGFunc.cxx:553
 AliPWGFunc.cxx:554
 AliPWGFunc.cxx:555
 AliPWGFunc.cxx:556
 AliPWGFunc.cxx:557
 AliPWGFunc.cxx:558
 AliPWGFunc.cxx:559
 AliPWGFunc.cxx:560
 AliPWGFunc.cxx:561
 AliPWGFunc.cxx:562
 AliPWGFunc.cxx:563
 AliPWGFunc.cxx:564
 AliPWGFunc.cxx:565
 AliPWGFunc.cxx:566
 AliPWGFunc.cxx:567
 AliPWGFunc.cxx:568
 AliPWGFunc.cxx:569
 AliPWGFunc.cxx:570
 AliPWGFunc.cxx:571
 AliPWGFunc.cxx:572
 AliPWGFunc.cxx:573
 AliPWGFunc.cxx:574
 AliPWGFunc.cxx:575
 AliPWGFunc.cxx:576
 AliPWGFunc.cxx:577
 AliPWGFunc.cxx:578
 AliPWGFunc.cxx:579
 AliPWGFunc.cxx:580
 AliPWGFunc.cxx:581
 AliPWGFunc.cxx:582
 AliPWGFunc.cxx:583
 AliPWGFunc.cxx:584
 AliPWGFunc.cxx:585
 AliPWGFunc.cxx:586
 AliPWGFunc.cxx:587
 AliPWGFunc.cxx:588
 AliPWGFunc.cxx:589
 AliPWGFunc.cxx:590
 AliPWGFunc.cxx:591
 AliPWGFunc.cxx:592
 AliPWGFunc.cxx:593
 AliPWGFunc.cxx:594
 AliPWGFunc.cxx:595
 AliPWGFunc.cxx:596
 AliPWGFunc.cxx:597
 AliPWGFunc.cxx:598
 AliPWGFunc.cxx:599
 AliPWGFunc.cxx:600
 AliPWGFunc.cxx:601
 AliPWGFunc.cxx:602
 AliPWGFunc.cxx:603
 AliPWGFunc.cxx:604
 AliPWGFunc.cxx:605
 AliPWGFunc.cxx:606
 AliPWGFunc.cxx:607
 AliPWGFunc.cxx:608
 AliPWGFunc.cxx:609
 AliPWGFunc.cxx:610
 AliPWGFunc.cxx:611
 AliPWGFunc.cxx:612
 AliPWGFunc.cxx:613
 AliPWGFunc.cxx:614
 AliPWGFunc.cxx:615
 AliPWGFunc.cxx:616
 AliPWGFunc.cxx:617
 AliPWGFunc.cxx:618
 AliPWGFunc.cxx:619
 AliPWGFunc.cxx:620
 AliPWGFunc.cxx:621
 AliPWGFunc.cxx:622
 AliPWGFunc.cxx:623
 AliPWGFunc.cxx:624
 AliPWGFunc.cxx:625
 AliPWGFunc.cxx:626
 AliPWGFunc.cxx:627
 AliPWGFunc.cxx:628
 AliPWGFunc.cxx:629
 AliPWGFunc.cxx:630
 AliPWGFunc.cxx:631
 AliPWGFunc.cxx:632
 AliPWGFunc.cxx:633
 AliPWGFunc.cxx:634
 AliPWGFunc.cxx:635
 AliPWGFunc.cxx:636
 AliPWGFunc.cxx:637
 AliPWGFunc.cxx:638
 AliPWGFunc.cxx:639
 AliPWGFunc.cxx:640
 AliPWGFunc.cxx:641
 AliPWGFunc.cxx:642
 AliPWGFunc.cxx:643
 AliPWGFunc.cxx:644
 AliPWGFunc.cxx:645
 AliPWGFunc.cxx:646
 AliPWGFunc.cxx:647
 AliPWGFunc.cxx:648
 AliPWGFunc.cxx:649
 AliPWGFunc.cxx:650
 AliPWGFunc.cxx:651
 AliPWGFunc.cxx:652
 AliPWGFunc.cxx:653
 AliPWGFunc.cxx:654
 AliPWGFunc.cxx:655
 AliPWGFunc.cxx:656
 AliPWGFunc.cxx:657
 AliPWGFunc.cxx:658
 AliPWGFunc.cxx:659
 AliPWGFunc.cxx:660
 AliPWGFunc.cxx:661
 AliPWGFunc.cxx:662
 AliPWGFunc.cxx:663
 AliPWGFunc.cxx:664
 AliPWGFunc.cxx:665
 AliPWGFunc.cxx:666
 AliPWGFunc.cxx:667
 AliPWGFunc.cxx:668
 AliPWGFunc.cxx:669
 AliPWGFunc.cxx:670
 AliPWGFunc.cxx:671
 AliPWGFunc.cxx:672
 AliPWGFunc.cxx:673
 AliPWGFunc.cxx:674
 AliPWGFunc.cxx:675
 AliPWGFunc.cxx:676
 AliPWGFunc.cxx:677
 AliPWGFunc.cxx:678
 AliPWGFunc.cxx:679
 AliPWGFunc.cxx:680
 AliPWGFunc.cxx:681
 AliPWGFunc.cxx:682
 AliPWGFunc.cxx:683
 AliPWGFunc.cxx:684
 AliPWGFunc.cxx:685
 AliPWGFunc.cxx:686
 AliPWGFunc.cxx:687
 AliPWGFunc.cxx:688
 AliPWGFunc.cxx:689
 AliPWGFunc.cxx:690
 AliPWGFunc.cxx:691
 AliPWGFunc.cxx:692
 AliPWGFunc.cxx:693
 AliPWGFunc.cxx:694
 AliPWGFunc.cxx:695
 AliPWGFunc.cxx:696
 AliPWGFunc.cxx:697
 AliPWGFunc.cxx:698
 AliPWGFunc.cxx:699
 AliPWGFunc.cxx:700
 AliPWGFunc.cxx:701
 AliPWGFunc.cxx:702
 AliPWGFunc.cxx:703
 AliPWGFunc.cxx:704
 AliPWGFunc.cxx:705
 AliPWGFunc.cxx:706
 AliPWGFunc.cxx:707
 AliPWGFunc.cxx:708
 AliPWGFunc.cxx:709
 AliPWGFunc.cxx:710
 AliPWGFunc.cxx:711
 AliPWGFunc.cxx:712
 AliPWGFunc.cxx:713
 AliPWGFunc.cxx:714
 AliPWGFunc.cxx:715
 AliPWGFunc.cxx:716
 AliPWGFunc.cxx:717
 AliPWGFunc.cxx:718
 AliPWGFunc.cxx:719
 AliPWGFunc.cxx:720
 AliPWGFunc.cxx:721
 AliPWGFunc.cxx:722
 AliPWGFunc.cxx:723
 AliPWGFunc.cxx:724
 AliPWGFunc.cxx:725
 AliPWGFunc.cxx:726
 AliPWGFunc.cxx:727
 AliPWGFunc.cxx:728
 AliPWGFunc.cxx:729
 AliPWGFunc.cxx:730
 AliPWGFunc.cxx:731
 AliPWGFunc.cxx:732
 AliPWGFunc.cxx:733
 AliPWGFunc.cxx:734
 AliPWGFunc.cxx:735
 AliPWGFunc.cxx:736
 AliPWGFunc.cxx:737
 AliPWGFunc.cxx:738
 AliPWGFunc.cxx:739
 AliPWGFunc.cxx:740
 AliPWGFunc.cxx:741
 AliPWGFunc.cxx:742
 AliPWGFunc.cxx:743
 AliPWGFunc.cxx:744
 AliPWGFunc.cxx:745
 AliPWGFunc.cxx:746
 AliPWGFunc.cxx:747
 AliPWGFunc.cxx:748
 AliPWGFunc.cxx:749
 AliPWGFunc.cxx:750
 AliPWGFunc.cxx:751
 AliPWGFunc.cxx:752
 AliPWGFunc.cxx:753
 AliPWGFunc.cxx:754
 AliPWGFunc.cxx:755
 AliPWGFunc.cxx:756
 AliPWGFunc.cxx:757
 AliPWGFunc.cxx:758
 AliPWGFunc.cxx:759
 AliPWGFunc.cxx:760
 AliPWGFunc.cxx:761
 AliPWGFunc.cxx:762
 AliPWGFunc.cxx:763
 AliPWGFunc.cxx:764
 AliPWGFunc.cxx:765
 AliPWGFunc.cxx:766
 AliPWGFunc.cxx:767
 AliPWGFunc.cxx:768
 AliPWGFunc.cxx:769
 AliPWGFunc.cxx:770
 AliPWGFunc.cxx:771
 AliPWGFunc.cxx:772
 AliPWGFunc.cxx:773
 AliPWGFunc.cxx:774
 AliPWGFunc.cxx:775
 AliPWGFunc.cxx:776
 AliPWGFunc.cxx:777
 AliPWGFunc.cxx:778
 AliPWGFunc.cxx:779
 AliPWGFunc.cxx:780
 AliPWGFunc.cxx:781
 AliPWGFunc.cxx:782
 AliPWGFunc.cxx:783
 AliPWGFunc.cxx:784
 AliPWGFunc.cxx:785
 AliPWGFunc.cxx:786
 AliPWGFunc.cxx:787
 AliPWGFunc.cxx:788
 AliPWGFunc.cxx:789
 AliPWGFunc.cxx:790
 AliPWGFunc.cxx:791
 AliPWGFunc.cxx:792
 AliPWGFunc.cxx:793
 AliPWGFunc.cxx:794
 AliPWGFunc.cxx:795
 AliPWGFunc.cxx:796
 AliPWGFunc.cxx:797
 AliPWGFunc.cxx:798
 AliPWGFunc.cxx:799
 AliPWGFunc.cxx:800
 AliPWGFunc.cxx:801
 AliPWGFunc.cxx:802
 AliPWGFunc.cxx:803
 AliPWGFunc.cxx:804
 AliPWGFunc.cxx:805
 AliPWGFunc.cxx:806
 AliPWGFunc.cxx:807
 AliPWGFunc.cxx:808
 AliPWGFunc.cxx:809
 AliPWGFunc.cxx:810
 AliPWGFunc.cxx:811
 AliPWGFunc.cxx:812
 AliPWGFunc.cxx:813
 AliPWGFunc.cxx:814
 AliPWGFunc.cxx:815
 AliPWGFunc.cxx:816
 AliPWGFunc.cxx:817
 AliPWGFunc.cxx:818
 AliPWGFunc.cxx:819
 AliPWGFunc.cxx:820
 AliPWGFunc.cxx:821
 AliPWGFunc.cxx:822
 AliPWGFunc.cxx:823
 AliPWGFunc.cxx:824
 AliPWGFunc.cxx:825
 AliPWGFunc.cxx:826
 AliPWGFunc.cxx:827
 AliPWGFunc.cxx:828
 AliPWGFunc.cxx:829
 AliPWGFunc.cxx:830
 AliPWGFunc.cxx:831
 AliPWGFunc.cxx:832
 AliPWGFunc.cxx:833
 AliPWGFunc.cxx:834
 AliPWGFunc.cxx:835
 AliPWGFunc.cxx:836
 AliPWGFunc.cxx:837
 AliPWGFunc.cxx:838
 AliPWGFunc.cxx:839
 AliPWGFunc.cxx:840
 AliPWGFunc.cxx:841
 AliPWGFunc.cxx:842
 AliPWGFunc.cxx:843
 AliPWGFunc.cxx:844
 AliPWGFunc.cxx:845
 AliPWGFunc.cxx:846
 AliPWGFunc.cxx:847
 AliPWGFunc.cxx:848
 AliPWGFunc.cxx:849
 AliPWGFunc.cxx:850
 AliPWGFunc.cxx:851
 AliPWGFunc.cxx:852
 AliPWGFunc.cxx:853
 AliPWGFunc.cxx:854
 AliPWGFunc.cxx:855
 AliPWGFunc.cxx:856
 AliPWGFunc.cxx:857
 AliPWGFunc.cxx:858
 AliPWGFunc.cxx:859
 AliPWGFunc.cxx:860
 AliPWGFunc.cxx:861
 AliPWGFunc.cxx:862
 AliPWGFunc.cxx:863
 AliPWGFunc.cxx:864
 AliPWGFunc.cxx:865
 AliPWGFunc.cxx:866
 AliPWGFunc.cxx:867
 AliPWGFunc.cxx:868
 AliPWGFunc.cxx:869
 AliPWGFunc.cxx:870
 AliPWGFunc.cxx:871
 AliPWGFunc.cxx:872
 AliPWGFunc.cxx:873
 AliPWGFunc.cxx:874
 AliPWGFunc.cxx:875
 AliPWGFunc.cxx:876
 AliPWGFunc.cxx:877
 AliPWGFunc.cxx:878
 AliPWGFunc.cxx:879
 AliPWGFunc.cxx:880
 AliPWGFunc.cxx:881
 AliPWGFunc.cxx:882
 AliPWGFunc.cxx:883
 AliPWGFunc.cxx:884
 AliPWGFunc.cxx:885
 AliPWGFunc.cxx:886
 AliPWGFunc.cxx:887
 AliPWGFunc.cxx:888
 AliPWGFunc.cxx:889
 AliPWGFunc.cxx:890
 AliPWGFunc.cxx:891
 AliPWGFunc.cxx:892
 AliPWGFunc.cxx:893
 AliPWGFunc.cxx:894
 AliPWGFunc.cxx:895
 AliPWGFunc.cxx:896
 AliPWGFunc.cxx:897
 AliPWGFunc.cxx:898
 AliPWGFunc.cxx:899
 AliPWGFunc.cxx:900
 AliPWGFunc.cxx:901
 AliPWGFunc.cxx:902
 AliPWGFunc.cxx:903
 AliPWGFunc.cxx:904
 AliPWGFunc.cxx:905
 AliPWGFunc.cxx:906
 AliPWGFunc.cxx:907
 AliPWGFunc.cxx:908
 AliPWGFunc.cxx:909
 AliPWGFunc.cxx:910
 AliPWGFunc.cxx:911
 AliPWGFunc.cxx:912
 AliPWGFunc.cxx:913
 AliPWGFunc.cxx:914
 AliPWGFunc.cxx:915
 AliPWGFunc.cxx:916
 AliPWGFunc.cxx:917
 AliPWGFunc.cxx:918
 AliPWGFunc.cxx:919
 AliPWGFunc.cxx:920
 AliPWGFunc.cxx:921
 AliPWGFunc.cxx:922
 AliPWGFunc.cxx:923
 AliPWGFunc.cxx:924
 AliPWGFunc.cxx:925
 AliPWGFunc.cxx:926
 AliPWGFunc.cxx:927
 AliPWGFunc.cxx:928
 AliPWGFunc.cxx:929
 AliPWGFunc.cxx:930
 AliPWGFunc.cxx:931
 AliPWGFunc.cxx:932
 AliPWGFunc.cxx:933
 AliPWGFunc.cxx:934
 AliPWGFunc.cxx:935
 AliPWGFunc.cxx:936
 AliPWGFunc.cxx:937
 AliPWGFunc.cxx:938
 AliPWGFunc.cxx:939
 AliPWGFunc.cxx:940
 AliPWGFunc.cxx:941
 AliPWGFunc.cxx:942
 AliPWGFunc.cxx:943
 AliPWGFunc.cxx:944
 AliPWGFunc.cxx:945
 AliPWGFunc.cxx:946
 AliPWGFunc.cxx:947
 AliPWGFunc.cxx:948
 AliPWGFunc.cxx:949
 AliPWGFunc.cxx:950
 AliPWGFunc.cxx:951
 AliPWGFunc.cxx:952
 AliPWGFunc.cxx:953
 AliPWGFunc.cxx:954
 AliPWGFunc.cxx:955
 AliPWGFunc.cxx:956
 AliPWGFunc.cxx:957
 AliPWGFunc.cxx:958
 AliPWGFunc.cxx:959
 AliPWGFunc.cxx:960
 AliPWGFunc.cxx:961
 AliPWGFunc.cxx:962
 AliPWGFunc.cxx:963
 AliPWGFunc.cxx:964
 AliPWGFunc.cxx:965
 AliPWGFunc.cxx:966
 AliPWGFunc.cxx:967
 AliPWGFunc.cxx:968
 AliPWGFunc.cxx:969
 AliPWGFunc.cxx:970
 AliPWGFunc.cxx:971
 AliPWGFunc.cxx:972
 AliPWGFunc.cxx:973
 AliPWGFunc.cxx:974
 AliPWGFunc.cxx:975
 AliPWGFunc.cxx:976
 AliPWGFunc.cxx:977
 AliPWGFunc.cxx:978
 AliPWGFunc.cxx:979
 AliPWGFunc.cxx:980
 AliPWGFunc.cxx:981
 AliPWGFunc.cxx:982
 AliPWGFunc.cxx:983
 AliPWGFunc.cxx:984
 AliPWGFunc.cxx:985
 AliPWGFunc.cxx:986
 AliPWGFunc.cxx:987
 AliPWGFunc.cxx:988
 AliPWGFunc.cxx:989
 AliPWGFunc.cxx:990
 AliPWGFunc.cxx:991
 AliPWGFunc.cxx:992
 AliPWGFunc.cxx:993
 AliPWGFunc.cxx:994
 AliPWGFunc.cxx:995
 AliPWGFunc.cxx:996
 AliPWGFunc.cxx:997
 AliPWGFunc.cxx:998
 AliPWGFunc.cxx:999
 AliPWGFunc.cxx:1000
 AliPWGFunc.cxx:1001
 AliPWGFunc.cxx:1002
 AliPWGFunc.cxx:1003
 AliPWGFunc.cxx:1004
 AliPWGFunc.cxx:1005
 AliPWGFunc.cxx:1006
 AliPWGFunc.cxx:1007
 AliPWGFunc.cxx:1008
 AliPWGFunc.cxx:1009
 AliPWGFunc.cxx:1010
 AliPWGFunc.cxx:1011
 AliPWGFunc.cxx:1012
 AliPWGFunc.cxx:1013
 AliPWGFunc.cxx:1014
 AliPWGFunc.cxx:1015