From 0e137c250e7dc7566cf4310c2a65cc0252e7c5e0 Mon Sep 17 00:00:00 2001 From: morsch Date: Tue, 2 Nov 2004 15:23:39 +0000 Subject: [PATCH] New dsigma/dpt parameterisation for J/Psi and Upsilon based on scaled CDF data provided by Smbat Grigoryan. --- EVGEN/AliGenMUONlib.cxx | 46 ++++++++++++++++++++++++++++++++++++++++- EVGEN/AliGenMUONlib.h | 4 ++++ 2 files changed, 49 insertions(+), 1 deletion(-) diff --git a/EVGEN/AliGenMUONlib.cxx b/EVGEN/AliGenMUONlib.cxx index fab7712c3cf..a5998e8df02 100644 --- a/EVGEN/AliGenMUONlib.cxx +++ b/EVGEN/AliGenMUONlib.cxx @@ -162,6 +162,17 @@ Double_t AliGenMUONlib::PtJpsi( Double_t *px, Double_t */*dummy*/) return x/TMath::Power(pass1,kxn); } +Double_t AliGenMUONlib::PtJpsiCDFscaled( Double_t *px, Double_t */*dummy*/) +{ +// J/Psi pT + const Double_t kpt0 = 4.657; + const Double_t kxn = 3.776; + Double_t x=*px; + // + Double_t pass1 = 1.+(x/kpt0)*(x/kpt0); + return x/TMath::Power(pass1,kxn); +} + Double_t AliGenMUONlib::PtJpsiPbPb( Double_t *px, Double_t */*dummy*/) { // J/Psi pT spectrum @@ -178,7 +189,7 @@ Double_t AliGenMUONlib::PtJpsiPbPb( Double_t *px, Double_t */*dummy*/) }; Double_t y; - if (x < 10.) { + if (x < 15.) { Int_t j; y = c[j = 7]; while (j > 0) y = y * x +c[--j]; @@ -275,6 +286,13 @@ Double_t AliGenMUONlib::YJpsiPbPb( Double_t *px, Double_t */*dummy*/) return y; } +Double_t AliGenMUONlib::YJpsiCDFscaled( Double_t *px, Double_t* dummy) +{ + // J/Psi y + return AliGenMUONlib::YJpsiPbPb(px, dummy); +} + + Double_t AliGenMUONlib::YJpsiPP( Double_t *px, Double_t */*dummy*/) { @@ -375,6 +393,17 @@ Double_t AliGenMUONlib::PtUpsilon( Double_t *px, Double_t */*dummy*/ ) return x/TMath::Power(pass1,kxn); } +Double_t AliGenMUONlib::PtUpsilonCDFscaled( Double_t *px, Double_t */*dummy*/ ) +{ +// Upsilon pT + const Double_t kpt0 = 8.624; + const Double_t kxn = 3.499; + Double_t x=*px; + // + Double_t pass1 = 1.+(x/kpt0)*(x/kpt0); + return x/TMath::Power(pass1,kxn); +} + Double_t AliGenMUONlib::PtUpsilonPbPb( Double_t *px, Double_t */*dummy*/) { @@ -476,6 +505,13 @@ Double_t AliGenMUONlib::YUpsilonPbPb( Double_t *px, Double_t */*dummy*/) return y; } +Double_t AliGenMUONlib::YUpsilonCDFscaled( Double_t *px, Double_t *dummy) +{ + // Upsilon y + return AliGenMUONlib::YUpsilonPbPb(px, dummy); + +} + Double_t AliGenMUONlib::YUpsilonPP( Double_t *px, Double_t */*dummy*/) { @@ -750,6 +786,8 @@ GenFunc AliGenMUONlib::GetPt(Int_t param, const char* tname) const func=PtJpsiPbPb; } else if (sname == "Vogt pp") { func=PtJpsiPP; + } else if (sname == "CDF scaled") { + func=PtJpsiCDFscaled; } else { func=PtJpsi; } @@ -765,6 +803,8 @@ GenFunc AliGenMUONlib::GetPt(Int_t param, const char* tname) const func=PtUpsilonPbPb; } else if (sname == "Vogt pp") { func=PtUpsilonPP; + } else if (sname == "CDF scaled") { + func=PtUpsilonCDFscaled; } else { func=PtUpsilon; } @@ -821,6 +861,8 @@ GenFunc AliGenMUONlib::GetY(Int_t param, const char* tname) const func=YJpsiPbPb; } else if (sname == "Vogt pp"){ func=YJpsiPP; + } else if (sname == "CDF scaled") { + func=YJpsiCDFscaled; } else { func=YJpsi; } @@ -836,6 +878,8 @@ GenFunc AliGenMUONlib::GetY(Int_t param, const char* tname) const func=YUpsilonPbPb; } else if (sname == "Vogt pp") { func = YUpsilonPP; + } else if (sname == "CDF scaled") { + func=YUpsilonCDFscaled; } else { func=YUpsilon; } diff --git a/EVGEN/AliGenMUONlib.h b/EVGEN/AliGenMUONlib.h index 999572a8ce5..b743971e8d8 100644 --- a/EVGEN/AliGenMUONlib.h +++ b/EVGEN/AliGenMUONlib.h @@ -44,10 +44,12 @@ class AliGenMUONlib : static Int_t IpEta(TRandom *ran); // J/Psi static Double_t PtJpsi( Double_t *px, Double_t *dummy); + static Double_t PtJpsiCDFscaled( Double_t *px, Double_t *dummy); static Double_t YJpsi(Double_t *py, Double_t *dummy); static Double_t PtJpsiPbPb( Double_t *px, Double_t *dummy); static Double_t PtJpsiBPbPb( Double_t *px, Double_t *dummy); static Double_t YJpsiPbPb(Double_t *py, Double_t *dummy); + static Double_t YJpsiCDFscaled(Double_t *py, Double_t *dummy); static Double_t PtJpsiPP( Double_t *px, Double_t *dummy); static Double_t YJpsiPP(Double_t *py, Double_t *dummy); static Double_t YJpsiBPbPb(Double_t *py, Double_t *dummy); @@ -57,7 +59,9 @@ class AliGenMUONlib : // Upsilon static Double_t PtUpsilon( Double_t *px, Double_t *dummy ); + static Double_t PtUpsilonCDFscaled( Double_t *px, Double_t *dummy ); static Double_t YUpsilon(Double_t *py, Double_t *dummy); + static Double_t YUpsilonCDFscaled(Double_t *py, Double_t *dummy); static Double_t PtUpsilonPbPb( Double_t *px, Double_t *dummy ); static Double_t YUpsilonPbPb(Double_t *py, Double_t *dummy); static Double_t PtUpsilonPP( Double_t *px, Double_t *dummy ); -- 2.43.0