Include new sets of pt & y distributions for:
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sat, 7 May 2011 15:07:51 +0000 (15:07 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sat, 7 May 2011 15:07:51 +0000 (15:07 +0000)
pp at 7, 2.76 and 1.9 TeV
PbPb at 2.76 TeV.
Smbat Grigoryan <Smbat.Grigoryan@cern.ch>

EVGEN/AliGenMUONlib.cxx
EVGEN/AliGenMUONlib.h

index 5745e43..ca7a120 100644 (file)
@@ -97,6 +97,7 @@ Double_t AliGenMUONlib::PtScal(Double_t pt, Int_t np)
   const Double_t khm[10] = {.13957,.493,.5488,.769,.7826,.958,1.02,0,0,0};
   //     VALUE MESON/PI AT 5 GEV
   const Double_t kfmax[10]={1.,0.3,0.55,1.0,1.0,1.0,1.0,0,0,0};
+  np--;
   Double_t f5=TMath::Power(((sqrt(100.018215)+2.)/(sqrt(100.+khm[np]*khm[np])+2.0)),12.3);
   Double_t fmax2=f5/kfmax[np];
   // PIONS
@@ -113,7 +114,7 @@ Double_t AliGenMUONlib::PtScal(Double_t pt, Int_t np)
 Double_t AliGenMUONlib::PtKaon( const Double_t *px, const Double_t */*dummy*/)
 {
 // Kaon pT
-  return PtScal(*px,1);
+  return PtScal(*px,2);
 }
 
 // y-distribution
@@ -150,6 +151,53 @@ Int_t AliGenMUONlib::IpKaon(TRandom *ran)
 //
 //                pt-distribution
 //____________________________________________________________
+Double_t AliGenMUONlib::PtJpsiPP7000( const Double_t *px, const Double_t */*dummy*/)
+{
+// J/Psi pT
+//
+// pp 7 TeV
+// using ALICE data at 2.5<y<4, see arXiv:1103.2394
+
+  const Double_t kpt0 = 2.44;
+  const Double_t kxn  = 3.9;
+  Double_t x=*px;
+  //
+  Double_t pass1 = 1.+0.36*(x/kpt0)*(x/kpt0);
+  return x/TMath::Power(pass1,kxn);
+}
+
+Double_t AliGenMUONlib::PtJpsiPP2760( const Double_t *px, const Double_t */*dummy*/)
+{
+// J/Psi pT
+//
+// pp 2.76 TeV
+// from the fit of RHIC + LHC data, see arXiv:1103.2394
+
+  const Double_t kpt0 = 2.31;
+  const Double_t kxn  = 3.9;
+  Double_t x=*px;
+  //
+  Double_t pass1 = 1.+0.36*(x/kpt0)*(x/kpt0);
+  return x/TMath::Power(pass1,kxn);
+}
+
+Double_t AliGenMUONlib::PtJpsiPbPb2760( const Double_t *px, const Double_t *dummy)
+{
+// J/Psi pT
+//
+// PbPb 2.76 TeV, for EKS98 with minimum bias shadowing factor 0.66
+//
+  Double_t c[5] = {6.01022e-01, 4.70988e-02, -2.27917e-03, 3.09885e-05, 1.31955e-06};
+  Double_t x=*px;
+  Double_t y;
+  Int_t j;
+  y = c[j = 4];
+  while (j > 0) y  = y * x + c[--j];
+  //  
+  Double_t d = 1.+c[4]*TMath::Power(x,4);
+  return y/d * AliGenMUONlib::PtJpsiPP2760(px,dummy);
+}
+
 Double_t AliGenMUONlib::PtJpsi( const Double_t *px, const Double_t */*dummy*/)
 {
 // J/Psi pT
@@ -252,6 +300,36 @@ Double_t AliGenMUONlib::PtJpsiCDFscaledPP4( const Double_t *px, const Double_t *
   return x/TMath::Power(pass1,kxn);
 }
 
+Double_t AliGenMUONlib::PtJpsiCDFscaledPP3( const Double_t *px, const Double_t */*dummy*/)
+{
+// J/Psi pT
+//
+// pp 2.76 TeV
+// scaled from CDF data at 1.9 TeV
+//
+  const Double_t kpt0 = 4.435;
+  const Double_t kxn  = 4.071;
+  Double_t x=*px;
+  //
+  Double_t pass1 = 1.+(x/kpt0)*(x/kpt0);
+  return x/TMath::Power(pass1,kxn);
+}
+
+Double_t AliGenMUONlib::PtJpsiCDFscaledPP2( const Double_t *px, const Double_t */*dummy*/)
+{
+// J/Psi pT
+//
+// pp 1.9 TeV
+// fit of the CDF data at 1.9 TeV
+//
+  const Double_t kpt0 = 4.233;
+  const Double_t kxn  = 4.071;
+  Double_t x=*px;
+  //
+  Double_t pass1 = 1.+(x/kpt0)*(x/kpt0);
+  return x/TMath::Power(pass1,kxn);
+}
+
 Double_t AliGenMUONlib::PtJpsiCDFscaledPPb9( const Double_t *px, const Double_t *dummy)
 {
 // J/Psi pT
@@ -376,6 +454,51 @@ Double_t AliGenMUONlib::PtJpsiPP( const Double_t *px, const Double_t */*dummy*/)
 //
 //               y-distribution
 //____________________________________________________________
+Double_t AliGenMUONlib::YJpsiPP7000( const Double_t *px, const Double_t */*dummy*/)
+{
+// J/Psi y
+//
+// pp 7 TeV
+// from the fit of RHIC + LHC data, see arXiv:1103.2394
+//
+    Double_t x = px[0]/7.72;
+    x = x*x;
+    Double_t y = TMath::Exp(-x/0.383/0.383/2);
+    if(x > 1) y=0;
+    return y;
+}
+
+Double_t AliGenMUONlib::YJpsiPP2760( const Double_t *px, const Double_t */*dummy*/)
+{
+// J/Psi y
+//
+// pp 2.76 TeV
+// from the fit of RHIC + LHC data, see arXiv:1103.2394
+//
+    Double_t x = px[0]/6.79;
+    x = x*x;
+    Double_t y = TMath::Exp(-x/0.383/0.383/2);
+    if(x > 1) y=0;
+    return y;
+}
+
+Double_t AliGenMUONlib::YJpsiPbPb2760( const Double_t *px, const Double_t *dummy)
+{
+// J/Psi y
+//
+// PbPb 2.76 TeV, for EKS98 with minimum bias shadowing factor 0.66
+//
+    Double_t c[4] = {5.95228e-01, 9.45069e-03, 2.44710e-04, -1.32894e-05}; 
+    Double_t x = px[0]*px[0];
+    Double_t y;
+    Int_t j;
+    y = c[j = 3];
+    while (j > 0) y  = y * x + c[--j];
+    if(y<0) y=0;
+
+    return y * AliGenMUONlib::YJpsiPP2760(px,dummy);
+}
+
 Double_t AliGenMUONlib::YJpsi(const Double_t *py, const Double_t */*dummy*/)
 {
 // J/psi y
@@ -552,6 +675,26 @@ Double_t AliGenMUONlib::YJpsiCDFscaledPP4( const Double_t *px, const Double_t */
     return y;
 }
 
+Double_t AliGenMUONlib::YJpsiCDFscaledPP3( const Double_t *px, const Double_t *dummy)
+{
+// J/Psi y 
+    return AliGenMUONlib::YJpsiPP2760(px, dummy);
+}
+
+Double_t AliGenMUONlib::YJpsiCDFscaledPP2( const Double_t *px, const Double_t */*dummy*/)
+{
+// J/Psi y
+//
+// pp 1.9 TeV
+// from the fit of RHIC + LHC data, see arXiv:1103.2394
+//
+    Double_t x = px[0]/6.42;
+    x = x*x;
+    Double_t y = TMath::Exp(-x/0.383/0.383/2);
+    if(x > 1) y=0;
+    return y;
+}
+
 Double_t AliGenMUONlib::YJpsiPP( const Double_t *px, const Double_t */*dummy*/)
 {
 
@@ -1159,7 +1302,7 @@ Int_t AliGenMUONlib::IpUpsilonFamily(TRandom *)
 Double_t AliGenMUONlib::PtPhi( const Double_t *px, const Double_t */*dummy*/)
 {
 // Phi pT
-  return PtScal(*px,6);
+  return PtScal(*px,7);
 }
 //    y-distribution
 Double_t AliGenMUONlib::YPhi( const Double_t *px, const Double_t */*dummy*/)
@@ -1185,7 +1328,7 @@ Int_t AliGenMUONlib::IpPhi(TRandom *)
 Double_t AliGenMUONlib::PtOmega( const Double_t *px, const Double_t */*dummy*/)
 {
 // Omega pT
-  return PtScal(*px,4);
+  return PtScal(*px,5);
 }
 //    y-distribution
 Double_t AliGenMUONlib::YOmega( const Double_t *px, const Double_t */*dummy*/)
@@ -1212,7 +1355,7 @@ Int_t AliGenMUONlib::IpOmega(TRandom *)
 Double_t AliGenMUONlib::PtEta( const Double_t *px, const Double_t */*dummy*/)
 {
 // Eta pT
-  return PtScal(*px,2);
+  return PtScal(*px,3);
 }
 //    y-distribution
 Double_t AliGenMUONlib::YEta( const Double_t *px, const Double_t */*dummy*/)
@@ -2142,6 +2285,12 @@ GenFunc AliGenMUONlib::GetPt(Int_t param,  const char* tname) const
            func=PtJpsiPbPb;
        } else if (sname == "Vogt pp") {
            func=PtJpsiPP;
+       } else if (sname == "pp 7") {
+           func=PtJpsiPP7000;
+       } else if (sname == "pp 2.76") {
+           func=PtJpsiPP2760;
+       } else if (sname == "PbPb 2.76") {
+           func=PtJpsiPbPb2760;
        } else if (sname == "CDF scaled") {
            func=PtJpsiCDFscaled;
        } else if (sname == "CDF pp") {
@@ -2154,6 +2303,10 @@ GenFunc AliGenMUONlib::GetPt(Int_t param,  const char* tname) const
            func=PtJpsiCDFscaledPP7;
        } else if (sname == "CDF pp 3.94") {
            func=PtJpsiCDFscaledPP4;
+       } else if (sname == "CDF pp 2.76") {
+           func=PtJpsiCDFscaledPP3;
+       } else if (sname == "CDF pp 1.9") {
+           func=PtJpsiCDFscaledPP2;
        } else if (sname == "CDF pPb 8.8") {
            func=PtJpsiCDFscaledPPb9;
        } else if (sname == "CDF Pbp 8.8") {
@@ -2305,6 +2458,12 @@ GenFunc AliGenMUONlib::GetY(Int_t param, const char* tname) const
            func=YJpsiPbPb;
        } else if (sname == "Vogt pp"){
            func=YJpsiPP;
+       } else if (sname == "pp 7") {
+           func=YJpsiPP7000;
+       } else if (sname == "pp 2.76") {
+           func=YJpsiPP2760;
+       } else if (sname == "PbPb 2.76") {
+           func=YJpsiPbPb2760;
        } else if (sname == "CDF scaled") {
            func=YJpsiCDFscaled;
        } else if (sname == "CDF pp") {
@@ -2317,6 +2476,10 @@ GenFunc AliGenMUONlib::GetY(Int_t param, const char* tname) const
            func=YJpsiCDFscaledPP7;
        } else if (sname == "CDF pp 3.94") {
            func=YJpsiCDFscaledPP4;
+       } else if (sname == "CDF pp 2.76") {
+           func=YJpsiCDFscaledPP3;
+       } else if (sname == "CDF pp 1.9") {
+           func=YJpsiCDFscaledPP2;
        } else if (sname == "CDF pPb 8.8") {
            func=YJpsiCDFscaledPPb9;
        } else if (sname == "CDF Pbp 8.8") {
index a501448..5c407c6 100644 (file)
@@ -47,6 +47,9 @@ class AliGenMUONlib :
     static Double_t YEta( const Double_t *px, const Double_t *dummy);
     static Int_t    IpEta(TRandom *ran);
 // J/Psi     
+    static Double_t PtJpsiPP7000( const Double_t *px, const Double_t *dummy);
+    static Double_t PtJpsiPP2760( const Double_t *px, const Double_t *dummy);
+    static Double_t PtJpsiPbPb2760( const Double_t *px, const Double_t *dummy);
     static Double_t PtJpsi( const Double_t *px, const Double_t *dummy);
     static Double_t PtJpsiCDFscaled( const Double_t *px, const Double_t *dummy);
     static Double_t PtJpsiCDFscaledPP( const Double_t *px, const Double_t *dummy);
@@ -54,12 +57,17 @@ class AliGenMUONlib :
     static Double_t PtJpsiCDFscaledPP9( const Double_t *px, const Double_t *dummy);
     static Double_t PtJpsiCDFscaledPP7( const Double_t *px, const Double_t *dummy);
     static Double_t PtJpsiCDFscaledPP4( const Double_t *px, const Double_t *dummy);
+    static Double_t PtJpsiCDFscaledPP3( const Double_t *px, const Double_t *dummy);
+    static Double_t PtJpsiCDFscaledPP2( const Double_t *px, const Double_t *dummy);
     static Double_t PtJpsiCDFscaledPPb9( const Double_t *px, const Double_t *dummy);
     static Double_t PtJpsiCDFscaledPbP9( const Double_t *px, const Double_t *dummy);
     static Double_t PtJpsiCDFscaledPbPb4( const Double_t *px, const Double_t *dummy);
     static Double_t YJpsi(const Double_t *py, const Double_t *dummy);
     static Double_t PtJpsiPbPb( const Double_t *px, const Double_t *dummy);
     static Double_t PtJpsiBPbPb( const Double_t *px, const Double_t *dummy);
+    static Double_t YJpsiPP7000( const Double_t *px, const Double_t *dummy);
+    static Double_t YJpsiPP2760( const Double_t *px, const Double_t *dummy);
+    static Double_t YJpsiPbPb2760( const Double_t *px, const Double_t *dummy);
     static Double_t YJpsiPbPb(const Double_t *py, const Double_t *dummy);
     static Double_t YJpsiCDFscaled(const Double_t *py, const Double_t *dummy);
     static Double_t YJpsiCDFscaledPP( const Double_t *px, const Double_t *dummy);
@@ -68,6 +76,8 @@ class AliGenMUONlib :
     static Double_t YJpsiCDFscaledPP9dummy(Double_t px);
     static Double_t YJpsiCDFscaledPP7( const Double_t *px, const Double_t *dummy);
     static Double_t YJpsiCDFscaledPP4( const Double_t *px, const Double_t *dummy);
+    static Double_t YJpsiCDFscaledPP3( const Double_t *px, const Double_t *dummy);
+    static Double_t YJpsiCDFscaledPP2( const Double_t *px, const Double_t *dummy);
     static Double_t YJpsiCDFscaledPPb9( const Double_t *px, const Double_t *dummy);
     static Double_t YJpsiCDFscaledPbP9( const Double_t *px, const Double_t *dummy);
     static Double_t YJpsiCDFscaledPbPb4( const Double_t *px, const Double_t *dummy);