#include <TPDGCode.h>
#include <TMath.h>
#include <TRandom.h>
#include <TString.h>
#include "AliGenLcLib.h"
#include "AliLog.h"
ClassImp(AliGenLcLib)
Int_t AliGenLcLib::IpLcPlus(TRandom *)
{
return 4122;
}
Int_t AliGenLcLib::IpLcMinus(TRandom *)
{
return -4122;
}
Double_t AliGenLcLib::PtLcFlat( const Double_t *, const Double_t *)
{
return 1;
}
Double_t AliGenLcLib::PtLcExp( const Double_t *x, const Double_t *)
{
return TMath::GammaDist(x[0],2,0,1.7);
}
Double_t AliGenLcLib::YLcFlat(const Double_t *,const Double_t *)
{
return 1;
}
typedef Double_t (*GenFunc) (const Double_t*, const Double_t*);
typedef Int_t (*GenFuncIp) (TRandom *);
GenFunc AliGenLcLib::GetPt(Int_t iPID, const char * sForm) const
{
printf("PID: %i, form: %s \n",iPID,sForm);
TString type(sForm);
GenFunc func;
switch(iPID) {
case kLcPlus:
if (type=="FLAT") {func=PtLcFlat; break;}
else if(type=="EXP") {func=PtLcExp; break;}
else {
AliFatal(Form("Unknown Pt distribution form: %s",sForm)); func=0;
}
case kLcMinus:
if (type=="FLAT") {func=PtLcFlat; break;}
else if(type=="EXP") {func=PtLcExp; break;}
else {
AliFatal(Form("Unknown Pt distribution form: %s",sForm)); func=0;
}
default : AliFatal(Form("Unknown particle type: %i",iPID)); func=0;
}
return func;
}
GenFunc AliGenLcLib::GetY(Int_t iPID, const char *sForm) const
{
AliDebug(1,Form("PID: %i, form: %s",iPID,sForm));
GenFunc func;
switch (iPID) {
case kLcPlus: func=YLcFlat; break;
case kLcMinus: func=YLcFlat; break;
default : AliFatal(Form("Unknown particle type: %i",iPID)); func=0; break;
}
return func;
}
GenFuncIp AliGenLcLib::GetIp(Int_t iPID, const char *sForm) const
{
AliDebug(1,Form("PID: %i, form: %s",iPID,sForm));
switch (iPID){
case kLcPlus: return IpLcPlus;
case kLcMinus: return IpLcMinus;
default : AliFatal(Form("Unknown particle type: %i",iPID)); return 0;
}
}