From 7a294851d2d85fdafd9d4df0c527dac753f501aa Mon Sep 17 00:00:00 2001 From: Livio Bianchi Date: Tue, 29 Nov 2022 15:32:57 +0100 Subject: [PATCH] added Lambda and Omega pp5 realistic shapes --- EVGEN/AliGenSTRANGElib.cxx | 97 +++++++++++++++++++++++++++++++++++++- EVGEN/AliGenSTRANGElib.h | 10 +++- 2 files changed, 105 insertions(+), 2 deletions(-) diff --git a/EVGEN/AliGenSTRANGElib.cxx b/EVGEN/AliGenSTRANGElib.cxx index 62081b4115b..d415e41fd18 100644 --- a/EVGEN/AliGenSTRANGElib.cxx +++ b/EVGEN/AliGenSTRANGElib.cxx @@ -273,6 +273,45 @@ ClassImp(AliGenSTRANGElib) } // End K0sPP5 +//============================================================================ +// Lambda pp 5 TeV (from data) + Double_t AliGenSTRANGElib::PtLambdaPP5( const Double_t *px, const Double_t *) +{ +// lambda +// pt-distribution from data +//____________________________________________________________ + Double_t ldNdy = 50880.7; + Double_t lTemp = 0.235313; + Double_t lPower = 7.43403; + Double_t lMass = 1.48223; + Double_t lBigCoef = ((lPower-1)*(lPower-2)) / (lPower*lTemp*(lPower*lTemp+lMass*(lPower-2))); + Double_t lInPower = 1 + (TMath::Sqrt(px[0]*px[0]+lMass*lMass)-lMass) / (lPower*lTemp); + return ldNdy * px[0] * lBigCoef * TMath::Power(lInPower,(-1)*lPower); + +} + + Double_t AliGenSTRANGElib::YLambdaPP5( const Double_t *py, const Double_t *) +{ +// y-distribution, valid only in the mid-rapidity region +//____________________________________________________________ + + return 1; +} + + Int_t AliGenSTRANGElib::IpLambdaPP5(TRandom *ran) +{ +// particle composition +// + + Float_t random = ran->Rndm(); + if (random < 0.5) { + return 3122; // Lambda + } else { + return -3122; // AntiLambda + } +} +// End LambdaPP5 + //============================================================================ // Xi pp 5 TeV (from data) @@ -310,7 +349,45 @@ ClassImp(AliGenSTRANGElib) return -3312; // Xi+ } } -// End K0sPP5 +// End XiPP5 + +//============================================================================ +// Omega pp 5 TeV (from data) + Double_t AliGenSTRANGElib::PtOmegaPP5( const Double_t *px, const Double_t *) +{ +// omega +// pt-distribution from data +//____________________________________________________________ + Double_t ldNdy = 27.4922; + Double_t lTemp = 0.176409; + Double_t lPower = 5.39206; + Double_t lMass = 4.55809; + Double_t lBigCoef = ((lPower-1)*(lPower-2)) / (lPower*lTemp*(lPower*lTemp+lMass*(lPower-2))); + Double_t lInPower = 1 + (TMath::Sqrt(px[0]*px[0]+lMass*lMass)-lMass) / (lPower*lTemp); + return ldNdy * px[0] * lBigCoef * TMath::Power(lInPower,(-1)*lPower); + +} + + Double_t AliGenSTRANGElib::YOmegaPP5( const Double_t *py, const Double_t *) +{ +// y-distribution, valid only in the mid-rapidity region +//____________________________________________________________ + + return 1; +} + + Int_t AliGenSTRANGElib::IpOmegaPP5(TRandom *ran) +{ +// particle composition +// + Float_t random = ran->Rndm(); + if (random < 0.5) { + return 3334; // Omega- + } else { + return -3334; // Omega+ + } +} +// End OmegaPP5 //============================================================================ // XIminus @@ -453,9 +530,15 @@ typedef Double_t (*GenFunc) (const Double_t*, const Double_t*); case kK0sPP5: func=PtK0sPP5; break; + case kLambdaPP5: + func=PtLambdaPP5; + break; case kXiPP5: func=PtXiPP5; break; + case kOmegaPP5: + func=PtOmegaPP5; + break; case kXiMinus: func=PtXiMinus; break; @@ -490,9 +573,15 @@ typedef Double_t (*GenFunc) (const Double_t*, const Double_t*); case kK0sPP5: func=YK0sPP5; break; + case kLambdaPP5: + func=YLambdaPP5; + break; case kXiPP5: func=YXiPP5; break; + case kOmegaPP5: + func=YOmegaPP5; + break; case kXiMinus: func=YXiMinus; break; @@ -527,9 +616,15 @@ typedef Int_t (*GenFuncIp) (TRandom *); case kK0sPP5: func=IpK0sPP5; break; + case kLambdaPP5: + func=IpLambdaPP5; + break; case kXiPP5: func=IpXiPP5; break; + case kOmegaPP5: + func=IpOmegaPP5; + break; case kXiMinus: func=IpXiMinus; break; diff --git a/EVGEN/AliGenSTRANGElib.h b/EVGEN/AliGenSTRANGElib.h index e28588feb28..4b5b5f49938 100644 --- a/EVGEN/AliGenSTRANGElib.h +++ b/EVGEN/AliGenSTRANGElib.h @@ -21,7 +21,7 @@ class AliGenSTRANGElib : public AliGenLib { public: - enum constants{kKaon, kPhi, kLambda, kK0sPP5, kXiPP5, kLambda1520=3124, kOmegaMinus = 3334, kXiMinus = 3312}; + enum constants{kKaon, kPhi, kLambda, kK0sPP5, kLambdaPP5, kXiPP5, kOmegaPP5, kLambda1520=3124, kOmegaMinus = 3334, kXiMinus = 3312}; GenFunc GetPt(Int_t param, const char* tname=0) const; GenFunc GetY (Int_t param, const char* tname=0) const; GenFuncIp GetIp(Int_t param, const char* tname=0) const; @@ -45,10 +45,18 @@ public AliGenLib static Double_t PtK0sPP5(const Double_t *px, const Double_t *dummy); static Double_t YK0sPP5( const Double_t *py, const Double_t *dummy); static Int_t IpK0sPP5(TRandom *ran); +// Lampp5 + static Double_t PtLambdaPP5(const Double_t *px, const Double_t *dummy); + static Double_t YLambdaPP5( const Double_t *py, const Double_t *dummy); + static Int_t IpLambdaPP5(TRandom *ran); // Xipp5 static Double_t PtXiPP5(const Double_t *px, const Double_t *dummy); static Double_t YXiPP5( const Double_t *py, const Double_t *dummy); static Int_t IpXiPP5(TRandom *ran); +// Ompp5 + static Double_t PtOmegaPP5(const Double_t *px, const Double_t *dummy); + static Double_t YOmegaPP5( const Double_t *py, const Double_t *dummy); + static Int_t IpOmegaPP5(TRandom *ran); // Ximinus static Double_t PtXiMinus(const Double_t *px, const Double_t *dummy); static Double_t YXiMinus( const Double_t *py, const Double_t *dummy);