+
+Double_t AliGenMUONlib::YJpsiFlat( Double_t */*py*/, Double_t */*dummy*/ )
+{
+ return 1.;
+}
+
+
+Double_t AliGenMUONlib::YJpsiPbPb( Double_t *px, Double_t */*dummy*/)
+{
+
+//
+// J/Psi y
+//
+//
+// R. Vogt 2002
+// PbPb 5.5 TeV
+// MRST HO
+// mc = 1.4 GeV, pt-kick 1 GeV
+//
+ Double_t c[5] = {-6.03425e+02, 4.98257e+02, -1.38794e+02, 1.62209e+01, -6.85955e-01};
+ Double_t x = TMath::Abs(px[0]);
+ Double_t y;
+
+ if (x < 4.) {
+ y = 31.754;
+ } else if (x < 6) {
+ Int_t j;
+ y = c[j = 4];
+ while (j > 0) y = y * x + c[--j];
+ } else {
+ y =0.;
+ }
+
+ 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*/)
+{
+
+//
+// J/Psi y
+//
+//
+// R. Vogt 2002
+// pp 14 TeV
+// MRST HO
+// mc = 1.4 GeV, pt-kick 1 GeV
+//
+
+ Double_t c[5] = {1.38532e+00, 1.00596e+02, -3.46378e+01, 3.94172e+00, -1.48319e-01};
+ Double_t x = TMath::Abs(px[0]);
+ Double_t y;
+
+ if (x < 2.5) {
+ y = 96.455 - 0.8483 * x * x;
+ } else if (x < 7.9) {
+ Int_t j;
+ y = c[j = 4];
+ while (j > 0) y = y * x + c[--j];
+ } else {
+ y =0.;
+ }
+
+ return y;
+}
+
+Double_t AliGenMUONlib::YJpsiBPbPb( Double_t *px, Double_t */*dummy*/)
+{
+
+//
+// J/Psi from B->J/Psi X
+//
+//
+
+
+ Double_t c[7] = {7.37025e-02, 0., -2.94487e-03, 0., 6.07953e-06, 0., 5.39219e-07};
+
+ Double_t x = TMath::Abs(px[0]);
+ Double_t y;
+
+ if (x > 6.) {
+ y = 0.;
+ } else {
+ Int_t j;
+ y = c[j = 6];
+ while (j > 0) y = y * x + c[--j];
+ }
+
+ return y;
+}
+
+
+