#ifndef ALIFUNCTIONSDIHADRONPID_H
#define ALIFUNCTIONSDIHADRONPID_H
#include "TCanvas.h"
#include "TMath.h"
class AliFunctionsDiHadronPID {
public:
AliFunctionsDiHadronPID();
protected:
~AliFunctionsDiHadronPID();
public:
static Int_t Power(Int_t base, Int_t power);
static Double_t Charge() {return 1.60217646e-19;}
static Double_t C() {return 2.99792458e+8;}
static Double_t Mpion() {return 0.13957018;}
static Double_t Mkaon() {return 0.493667;}
static Double_t Mproton() {return 0.938272046;}
static Double_t Mdeuteron() {return 2.01410178*GeVperu();}
static Double_t M(Int_t species) {
switch(species) {
case 0:return Mpion();
case 1:return Mkaon();
case 2:return Mproton();
case 3:return Mdeuteron();
default:return -999.;
}
}
static Double_t GeVperu() {return 0.931494061;}
static Double_t GeVperkg() {return 5.608524e+26;}
static Double_t RTOF() {return 385.;}
static Double_t BTPC() {return 0.5;}
static Double_t Gaussian1D(Double_t xx, Double_t integral, Double_t mu, Double_t sigma, Double_t binwidth = 1.);
static Double_t Gaussian1DTail(Double_t xx, Double_t integral, Double_t mu, Double_t sigma, Double_t tail, Double_t binwidth = 1.);
static Double_t Gaussian2D(Double_t xx, Double_t yy, Double_t integral,
Double_t mux, Double_t muy, Double_t sigmax, Double_t sigmay,
Double_t binwidthx = 1., Double_t binwidthy = 1.);
static Double_t Gaussian2DTailX(Double_t xx, Double_t yy, Double_t integral,
Double_t mux, Double_t muy, Double_t sigmax, Double_t sigmay,
Double_t tailx, Double_t binwidthx = 1., Double_t binwidthy = 1.);
static Double_t Gaussian2DTailY(Double_t xx, Double_t yy, Double_t integral,
Double_t mux, Double_t muy, Double_t sigmax, Double_t sigmay,
Double_t taily, Double_t binwidthx = 1., Double_t binwidthy = 1.);
static Double_t Gaussian2DTailXY(Double_t xx, Double_t yy, Double_t integral,
Double_t mux, Double_t muy, Double_t sigmax, Double_t sigmay,
Double_t tailx, Double_t taily, Double_t binwidthx = 1., Double_t binwidthy = 1.);
static Double_t PolyPenalty(Double_t xx, Double_t center, Double_t flatwidth, Int_t polyorder);
static TCanvas* TestPolyPenalty(Double_t range = 3., Double_t center = 1., Double_t flatwidth = 1., Int_t polyorder = 3);
static Double_t TOFExpTime(Double_t pT, Double_t eta, Double_t mass);
static Double_t TPCExpdEdX(Double_t pT, Double_t eta, Double_t mass);
static Double_t Exponent(Double_t xx, Int_t sign, Double_t p0, Double_t p1) {return (sign*TMath::Exp(p0 + xx*p1));}
static Double_t Poly1(Double_t xx, Double_t p0, Double_t p1) {return (p0 + p1*xx);}
static Double_t Poly2(Double_t xx, Double_t p0, Double_t p1, Double_t p2) {return (p0 + p1*xx + p2*xx*xx);}
static Double_t Poly3(Double_t xx, Double_t p0, Double_t p1, Double_t p2, Double_t p3) {return (p0 + p1*xx + p2*xx*xx + p3*xx*xx*xx);}
static Double_t Poly4(Double_t xx, Double_t p0, Double_t p1, Double_t p2, Double_t p3, Double_t p4) {return (p0 + p1*xx + p2*xx*xx + p3*xx*xx*xx + p4*xx*xx*xx*xx);}
static Double_t Poly5(Double_t xx, Double_t p0, Double_t p1, Double_t p2, Double_t p3, Double_t p4, Double_t p5) {return (p0 + p1*xx + p2*xx*xx + p3*xx*xx*xx + p4*xx*xx*xx*xx + p5*xx*xx*xx*xx*xx);}
};
#endif
AliFunctionsDiHadronPID.h:1 AliFunctionsDiHadronPID.h:2 AliFunctionsDiHadronPID.h:3 AliFunctionsDiHadronPID.h:4 AliFunctionsDiHadronPID.h:5 AliFunctionsDiHadronPID.h:6 AliFunctionsDiHadronPID.h:7 AliFunctionsDiHadronPID.h:8 AliFunctionsDiHadronPID.h:9 AliFunctionsDiHadronPID.h:10 AliFunctionsDiHadronPID.h:11 AliFunctionsDiHadronPID.h:12 AliFunctionsDiHadronPID.h:13 AliFunctionsDiHadronPID.h:14 AliFunctionsDiHadronPID.h:15 AliFunctionsDiHadronPID.h:16 AliFunctionsDiHadronPID.h:17 AliFunctionsDiHadronPID.h:18 AliFunctionsDiHadronPID.h:19 AliFunctionsDiHadronPID.h:20 AliFunctionsDiHadronPID.h:21 AliFunctionsDiHadronPID.h:22 AliFunctionsDiHadronPID.h:23 AliFunctionsDiHadronPID.h:24 AliFunctionsDiHadronPID.h:25 AliFunctionsDiHadronPID.h:26 AliFunctionsDiHadronPID.h:27 AliFunctionsDiHadronPID.h:28 AliFunctionsDiHadronPID.h:29 AliFunctionsDiHadronPID.h:30 AliFunctionsDiHadronPID.h:31 AliFunctionsDiHadronPID.h:32 AliFunctionsDiHadronPID.h:33 AliFunctionsDiHadronPID.h:34 AliFunctionsDiHadronPID.h:35 AliFunctionsDiHadronPID.h:36 AliFunctionsDiHadronPID.h:37 AliFunctionsDiHadronPID.h:38 AliFunctionsDiHadronPID.h:39 AliFunctionsDiHadronPID.h:40 AliFunctionsDiHadronPID.h:41 AliFunctionsDiHadronPID.h:42 AliFunctionsDiHadronPID.h:43 AliFunctionsDiHadronPID.h:44 AliFunctionsDiHadronPID.h:45 AliFunctionsDiHadronPID.h:46 AliFunctionsDiHadronPID.h:47 AliFunctionsDiHadronPID.h:48 AliFunctionsDiHadronPID.h:49 AliFunctionsDiHadronPID.h:50 AliFunctionsDiHadronPID.h:51 AliFunctionsDiHadronPID.h:52 AliFunctionsDiHadronPID.h:53 AliFunctionsDiHadronPID.h:54 AliFunctionsDiHadronPID.h:55 AliFunctionsDiHadronPID.h:56 AliFunctionsDiHadronPID.h:57 AliFunctionsDiHadronPID.h:58 AliFunctionsDiHadronPID.h:59 AliFunctionsDiHadronPID.h:60 AliFunctionsDiHadronPID.h:61 AliFunctionsDiHadronPID.h:62 AliFunctionsDiHadronPID.h:63 AliFunctionsDiHadronPID.h:64 AliFunctionsDiHadronPID.h:65 AliFunctionsDiHadronPID.h:66 AliFunctionsDiHadronPID.h:67 AliFunctionsDiHadronPID.h:68 AliFunctionsDiHadronPID.h:69 AliFunctionsDiHadronPID.h:70 AliFunctionsDiHadronPID.h:71 AliFunctionsDiHadronPID.h:72 AliFunctionsDiHadronPID.h:73 AliFunctionsDiHadronPID.h:74 AliFunctionsDiHadronPID.h:75 AliFunctionsDiHadronPID.h:76 AliFunctionsDiHadronPID.h:77 AliFunctionsDiHadronPID.h:78 AliFunctionsDiHadronPID.h:79 AliFunctionsDiHadronPID.h:80 AliFunctionsDiHadronPID.h:81 AliFunctionsDiHadronPID.h:82 AliFunctionsDiHadronPID.h:83 AliFunctionsDiHadronPID.h:84 AliFunctionsDiHadronPID.h:85 AliFunctionsDiHadronPID.h:86 AliFunctionsDiHadronPID.h:87