From 7455632ec1aa26ab094f8afd6639c845b2c38a4b Mon Sep 17 00:00:00 2001 From: morsch Date: Fri, 28 Oct 2011 07:03:57 +0000 Subject: [PATCH] Modified classes AliGenMUONlib, AliGenMUONCocktailpp and AliGenCorrHF which allow to simulate centrality dependent production of quarkonia & HF-hadrons in Pb-Pb and p-Pb collisions. Smbat Grigoryan --- EVGEN/AliGenCorrHF.cxx | 18 +- EVGEN/AliGenCorrHF.h | 2 - EVGEN/AliGenMUONCocktailpp.cxx | 197 +++-- EVGEN/AliGenMUONCocktailpp.h | 5 +- EVGEN/AliGenMUONlib.cxx | 1458 +++++++++++++++++++++++++++++--- EVGEN/AliGenMUONlib.h | 132 ++- 6 files changed, 1638 insertions(+), 174 deletions(-) diff --git a/EVGEN/AliGenCorrHF.cxx b/EVGEN/AliGenCorrHF.cxx index 7102b20df28..49e48eb50e0 100644 --- a/EVGEN/AliGenCorrHF.cxx +++ b/EVGEN/AliGenCorrHF.cxx @@ -32,14 +32,12 @@ // Oct 09: added energy choice between 7, 10, 14 TeV (for p-p), 4 TeV (for Pb-Pb), // 9 TeV (for p-Pb) and -9 TeV (for Pb-p) (S. Grigoryan) // April 10: removed "static" from definition of some variables (B. Vulpescu) -// May 11: Added Flag for transportation Background While using SetForceDecay() function (L. Manceau) -// June 11 modifications allowing the setting of cuts on Children added -//(L. Manceau) -// Quarks, hadrons and decayed particles are loaded in the stack outside the -// main loop on heavy hadrons. -// The particles are loaded only when a pair containing -// two heavy hadrons given children wich statify cut conditions -// are tagged in the main loop +// May 11: added Flag for transportation of background particles while using +// SetForceDecay() function (L. Manceau) +// June 11: added modifications allowing the setting of cuts on HF-hadron children. +// Quarks, hadrons and decay particles are loaded in the stack outside the loop +// of HF-hadrons, when the cuts on their children are satisfied (L. Manceau) +// Oct 11: added Pb-Pb at 2.76 TeV (S. Grigoryan) // //------------------------------------------------------------------------- // How it works (for the given flavor and p-p energy): @@ -170,6 +168,8 @@ AliGenCorrHF::AliGenCorrHF(Int_t npart, Int_t idquark, Int_t energy): fFileName = "$ALICE_ROOT/EVGEN/dataCorrHF/BeautyPP10PythiaMNRwmi.root"; else if (fEnergy == 14) fFileName = "$ALICE_ROOT/EVGEN/dataCorrHF/BeautyPP14PythiaMNRwmi.root"; + else if (fEnergy == 3) + fFileName = "$ALICE_ROOT/EVGEN/dataCorrHF/BeautyPbPb276PythiaMNR.root"; else if (fEnergy == 4) fFileName = "$ALICE_ROOT/EVGEN/dataCorrHF/BeautyPbPb394PythiaMNR.root"; else if (fEnergy == 9 || fEnergy == -9) @@ -184,6 +184,8 @@ AliGenCorrHF::AliGenCorrHF(Int_t npart, Int_t idquark, Int_t energy): fFileName = "$ALICE_ROOT/EVGEN/dataCorrHF/CharmPP10PythiaMNRwmi.root"; else if (fEnergy == 14) fFileName = "$ALICE_ROOT/EVGEN/dataCorrHF/CharmPP14PythiaMNRwmi.root"; + else if (fEnergy == 3) + fFileName = "$ALICE_ROOT/EVGEN/dataCorrHF/CharmPbPb276PythiaMNR.root"; else if (fEnergy == 4) fFileName = "$ALICE_ROOT/EVGEN/dataCorrHF/CharmPbPb394PythiaMNR.root"; else if (fEnergy == 9 || fEnergy == -9) diff --git a/EVGEN/AliGenCorrHF.h b/EVGEN/AliGenCorrHF.h index a9ef73999c6..25db14861e7 100644 --- a/EVGEN/AliGenCorrHF.h +++ b/EVGEN/AliGenCorrHF.h @@ -11,8 +11,6 @@ // Is a generalisation of AliGenParam class for correlated pairs of hadrons. // Author: S. Grigoryan, LPC Clermont-Fd & YerPhI, Smbat.Grigoryan@cern.ch // -// May 11: Added Flag for transportation Background While using SetForceDecay() function (L. Manceau) -// June 11 modification allowing Seting Cut on Children added (L. Manceau) #include "AliGenMC.h" diff --git a/EVGEN/AliGenMUONCocktailpp.cxx b/EVGEN/AliGenMUONCocktailpp.cxx index c9b8376cb3f..e17f372c584 100644 --- a/EVGEN/AliGenMUONCocktailpp.cxx +++ b/EVGEN/AliGenMUONCocktailpp.cxx @@ -41,7 +41,19 @@ // i.e. gener->SetCMSEnergy(AliGenMUONCocktailpp::kCMS07TeV) in Config.C // - resonances now added to the cocktail via AddReso2Generator // - cleaning -// B.Vulpescu & P.Crochet +// B.Vulpescu & P.Crochet +//----------------------- +// 10/2011: +// - added the cocktail for p-Pb & Pb-p @ 8.8 TeV with 4 centrality bins and +// for Pb-Pb @ 2.76 TeV with 11 centrality bins. Bins should be defined also +// in the Config.C with one AliGenMUONCocktailpp per bin. These generators +// included in a AliGenCocktail together with an event generator (e.g. Hijing) +// providing the underlying event and collision centrality. The bin number n +// passed via AliGenMUONCocktailpp::SetCentralityBin(n). +// See details in my presentation at the PWG3-Muon meeting (05.10.2011): +// https://indico.cern.ch/conferenceDisplay.py?confId=157367 +// - simplifications and bug fix in CreateCocktail() +// S. Grigoryan #include #include @@ -77,6 +89,7 @@ AliGenMUONCocktailpp::AliGenMUONCocktailpp() fMuonOriginCut(-999.), fNSucceded(0), fNGenerated(0), + fCentralityBin(0), fJpsiPol(0), fChic1Pol(0), @@ -114,24 +127,29 @@ AliGenMUONCocktailpp::AliGenMUONCocktailpp() { // Constructor -// x-sections for pp @ 7 TeV: charmonia from hep-ph/0311048 Tab.9, page 19, -// bottomnium as for 10 TeV +// x-sections for pp @ 7 TeV: +// -charmonia: 4pi integral of fit function for inclusive J/psi dsigma/dy LHC data +// gives 60 mub; so sigma_prompt = 54 mub, while Ref = R.Vogt_arXiv:1003.3497 (Table 2) +// gives 35 mub. Below we use sigma_direct from the Ref scaled by the factor 54/35. +// -bottomonia: 4pi integral of fit function for inclusive Upsilon1S dsigma/dy LHC data +// gives 0.56 mub, sigmas for 2S & 3S obtained using CMS data for ratios 2S/1S & 3S/1S +// -ccbar & bbbar: NLO pQCD computations - http://www-alice.gsi.de/ana/MNR/results.html fCMSEnergyTeVArray[0] = 7.00; - fSigmaReactionArray[0] = 0.0695; - fSigmaJPsiArray[0] = 21.8e-6; - fSigmaChic1Array[0] = 21.1e-6; - fSigmaChic2Array[0] = 34.9e-6; - fSigmaPsiPArray[0] = 4.93e-6; - fSigmaUpsilonArray[0] = 0.463e-6; - fSigmaUpsilonPArray[0] = 0.154e-6; - fSigmaUpsilonPPArray[0] = 0.0886e-6; + fSigmaReactionArray[0] = 0.070; + fSigmaJPsiArray[0] = 33.6e-6; + fSigmaChic1Array[0] = 32.6e-6; + fSigmaChic2Array[0] = 53.8e-6; + fSigmaPsiPArray[0] = 7.6e-6; + fSigmaUpsilonArray[0] = 0.56e-6; + fSigmaUpsilonPArray[0] = 0.19e-6; + fSigmaUpsilonPPArray[0] = 0.09e-6; fSigmaCCbarArray[0] = 6.91e-3; fSigmaBBbarArray[0] = 0.232e-3; //x-sections for pp @ 10 TeV: charmonia and bottomonia from 14 TeV numbers -// scaled down according to ccbar and bbar cross-sections +// scaled down according to ccbar and bbbar cross-sections fCMSEnergyTeVArray[1] = 10.00; - fSigmaReactionArray[1] = 0.0695; + fSigmaReactionArray[1] = 0.070; fSigmaJPsiArray[1] = 26.06e-6; fSigmaChic1Array[1] = 25.18e-6; fSigmaChic2Array[1] = 41.58e-6; @@ -141,9 +159,9 @@ AliGenMUONCocktailpp::AliGenMUONCocktailpp() fSigmaUpsilonPPArray[1] = 0.122e-6; fSigmaCCbarArray[1] = 8.9e-3; fSigmaBBbarArray[1] = 0.33e-3; - + //x-sections for pp @ 14 TeV: charmonia from hep-ph/0311048 Tab.9, page 19, -// bottomonium from hep-ph/0311048 Tab.9, page 19 taken inton account that +// bottomonium from hep-ph/0311048 Tab.9, page 19 taken into account that // feed-down from chib is included fCMSEnergyTeVArray[2] = 14.00; fSigmaReactionArray[2] = 0.070; @@ -155,7 +173,49 @@ AliGenMUONCocktailpp::AliGenMUONCocktailpp() fSigmaUpsilonPArray[2] = 0.502e-6; fSigmaUpsilonPPArray[2] = 0.228e-6; fSigmaCCbarArray[2] = 11.2e-3; - fSigmaBBbarArray[2] = 0.51e-3; + fSigmaBBbarArray[2] = 0.445e-3; + +// x-sections for Min. Bias p-Pb & Pb-p @ 8.8 TeV: charmonia and bottomonia +// from 7 TeV numbers scaled according to pQCD ccbar and bbbar x-sections +// and with Glauber scaling + fCMSEnergyTeVArray[3] = 9.00; // for 8.8 TeV + fSigmaReactionArray[3] = 2.10; + fSigmaJPsiArray[3] = 8.19e-3; // 208*1.172*33.6e-6 + fSigmaChic1Array[3] = 7.95e-3; + fSigmaChic2Array[3] = 13.1e-3; + fSigmaPsiPArray[3] = 1.85e-3; + fSigmaUpsilonArray[3] = 0.146e-3; // 208*1.25*0.56e-6 + fSigmaUpsilonPArray[3] = 0.049e-3; + fSigmaUpsilonPPArray[3] = 0.023e-3; + fSigmaCCbarArray[3] = 1.68; // 208*8.1e-3 + fSigmaBBbarArray[3] = 0.061; // 208*0.29e-3 + + fCMSEnergyTeVArray[4] = -fCMSEnergyTeVArray[3]; + fSigmaReactionArray[4] = fSigmaReactionArray[3]; + fSigmaJPsiArray[4] = fSigmaJPsiArray[3]; + fSigmaChic1Array[4] = fSigmaChic1Array[3]; + fSigmaChic2Array[4] = fSigmaChic2Array[3]; + fSigmaPsiPArray[4] = fSigmaPsiPArray[3]; + fSigmaUpsilonArray[4] = fSigmaUpsilonArray[3]; + fSigmaUpsilonPArray[4] = fSigmaUpsilonPArray[3]; + fSigmaUpsilonPPArray[4] = fSigmaUpsilonPPArray[3]; + fSigmaCCbarArray[4] = fSigmaCCbarArray[3]; + fSigmaBBbarArray[4] = fSigmaBBbarArray[3]; + +// x-sections for Min. Bias Pb-Pb @ 2.76 TeV: charmonia and bottomonia +// from 7 TeV numbers scaled according to pQCD ccbar and bbbar x-sections +// and with Glauber scaling + fCMSEnergyTeVArray[5] = 3.00; // for 2.76 TeV + fSigmaReactionArray[5] = 7.65; + fSigmaJPsiArray[5] = 0.734; // 208*208*0.505*33.6e-6 + fSigmaChic1Array[5] = 0.712; + fSigmaChic2Array[5] = 1.175; + fSigmaPsiPArray[5] = 0.166; + fSigmaUpsilonArray[5] = 0.0092; // 208*208*0.379*0.56e-6 + fSigmaUpsilonPArray[5] = 0.0031; + fSigmaUpsilonPPArray[5] = 0.0015; + fSigmaCCbarArray[5] = 151.; // 208*208*3.49e-3 + fSigmaBBbarArray[5] = 3.8; // 208*208*0.088e-3 } @@ -280,54 +340,81 @@ void AliGenMUONCocktailpp::CreateCocktail() snprintf(nameUpsP,10, "UpsP"); snprintf(nameUpsPP,10, "UpsPP"); - if(cmsEnergy == 10){ - genjpsi = new AliGenParam(1, AliGenMUONlib::kJpsi, "CDF pp 10", "Jpsi"); - genchic1 = new AliGenParam(1, AliGenMUONlib::kChic1, "CDF pp 10", "Chic1"); - genchic2 = new AliGenParam(1, AliGenMUONlib::kChic2, "CDF pp 10", "Chic2"); - genpsiP = new AliGenParam(1, AliGenMUONlib::kPsiP, "CDF pp 10", "PsiP"); - genupsilon = new AliGenParam(1, AliGenMUONlib::kUpsilon, "CDF pp 10", "Upsilon"); - - genupsilonP = new AliGenParam(1, AliGenMUONlib::kUpsilonP, "CDF pp 10", "UpsilonP"); - genupsilonPP = new AliGenParam(1, AliGenMUONlib::kUpsilonPP, "CDF pp 10", "UpsilonPP"); - } else if (cmsEnergy == 7){ - genjpsi = new AliGenParam(1, AliGenMUONlib::kJpsi, "CDF pp 7", "Jpsi"); - genchic1 = new AliGenParam(1, AliGenMUONlib::kChic1, "CDF pp 7", "Chic1"); - genchic2 = new AliGenParam(1, AliGenMUONlib::kChic2, "CDF pp 7", "Chic2"); - genpsiP = new AliGenParam(1, AliGenMUONlib::kPsiP, "CDF pp 7", "PsiP"); - - genupsilon = new AliGenParam(1, AliGenMUONlib::kUpsilon, "CDF pp 7", "Upsilon"); - genupsilonP = new AliGenParam(1, AliGenMUONlib::kUpsilonP, "CDF pp 7", "UpsilonP"); - genupsilonPP = new AliGenParam(1, AliGenMUONlib::kUpsilonPP, "CDF pp 7", "UpsilonPP"); - } else if (cmsEnergy == 14){ - genjpsi = new AliGenParam(1, AliGenMUONlib::kJpsi, "CDF pp ", "Jpsi"); - genchic1 = new AliGenParam(1, AliGenMUONlib::kChic1, "CDF pp ", "Chic1"); - genchic2 = new AliGenParam(1, AliGenMUONlib::kChic2, "CDF pp ", "Chic2"); - genpsiP = new AliGenParam(1, AliGenMUONlib::kPsiP, "CDF pp", "PsiP"); - - genupsilon = new AliGenParam(1, AliGenMUONlib::kUpsilon, "CDF pp", "Upsilon"); - genupsilonP = new AliGenParam(1, AliGenMUONlib::kUpsilonP, "CDF pp", "UpsilonP"); - - genupsilonPP = new AliGenParam(1, AliGenMUONlib::kUpsilonPP, "CDF pp", "UpsilonPP"); + Char_t tname[40] = ""; + if(cmsEnergy == 10) {snprintf(tname, 40, "CDF pp 10"); + } else if (cmsEnergy == 14){snprintf(tname, 40, "CDF pp"); + } else if (cmsEnergy == 7) {snprintf(tname, 40, "pp 7"); + // } else if (cmsEnergy == 2) {snprintf(tname, 40, "pp 2.76"); + } else if (cmsEnergy == 9) {snprintf(tname, 40, "pPb 8.8"); + if (fCentralityBin > 0) snprintf(tname, 40, "pPb 8.8c%d",fCentralityBin); + } else if (cmsEnergy == -9){snprintf(tname, 40, "Pbp 8.8"); + if (fCentralityBin > 0) snprintf(tname, 40, "Pbp 8.8c%d",fCentralityBin); + } else if (cmsEnergy == 3) {snprintf(tname, 40, "PbPb 2.76"); + if (fCentralityBin > 0) snprintf(tname, 40, "PbPb 2.76c%d",fCentralityBin); } else { - AliError("Initialisation failed"); + AliError("Initialisation failed, wrong cmsEnergy"); return; } - + genjpsi = new AliGenParam(1, AliGenMUONlib::kJpsi, tname, "Jpsi"); + genchic1 = new AliGenParam(1, AliGenMUONlib::kChic1, tname, "Chic1"); + genchic2 = new AliGenParam(1, AliGenMUONlib::kChic2, tname, "Chic2"); + genpsiP = new AliGenParam(1, AliGenMUONlib::kPsiP, tname, "PsiP"); + genupsilon = new AliGenParam(1, AliGenMUONlib::kUpsilon, tname, "Upsilon"); + genupsilonP = new AliGenParam(1, AliGenMUONlib::kUpsilonP, tname, "UpsilonP"); + genupsilonPP = new AliGenParam(1, AliGenMUONlib::kUpsilonPP, tname, "UpsilonPP"); + +// Hard process yield per pA or AA collision for i-th centrality bin is R*r[i]*shad[i] +// where R is the ratio of hard and geometrical x-sections, r[i] is the ratio of these +// x-section fractions for given centrality and shad[i] is the shadowing factor (in 4pi). +// The latter is assumed to be the same for HF-hadrons & quarkonia of the same flavour. + Int_t i = 0; + Double_t chard[20] = {0}; // charm & beauty shadowing factors are different + Double_t bhard[20] = {0}; + chard[0] = 1; // 1st element for pp and min. bias (MB) collisions + bhard[0] = 1; + +// 4 centrality bins for p-Pb & Pb-p: 0-20-40-60-100 % + if (cmsEnergy == 9 || cmsEnergy == -9) { + const Int_t n9 = 5; // 1st element for MB collisions + Double_t r9[n9] = {1, 1.936, 1.473, 0.914, 0.333}; // ratio of hard-over-geo fractions + Double_t cshad9[n9] = {0.785, 0.715, 0.775, 0.856, 0.951};// EKS98 shadowing factors + Double_t bshad9[n9] = {0.889, 0.853, 0.884, 0.926, 0.975}; + for(i=0; iSetMomentumRange(0,9999); gencharm->SetForceDecay(kAll); - Double_t ratioccbar = sigmaccbar/fSigmaReaction; + Double_t ratioccbar = chard[fCentralityBin]*sigmaccbar/fSigmaReaction; if (!gMC) gencharm->SetDecayer(fDecayer); gencharm->Init(); if (!fSigmaSilent) { @@ -340,7 +427,7 @@ void AliGenMUONCocktailpp::CreateCocktail() AliGenCorrHF *genbeauty = new AliGenCorrHF(1, 5, cmsEnergy); genbeauty->SetMomentumRange(0,9999); genbeauty->SetForceDecay(kAll); - Double_t ratiobbbar = sigmabbbar/fSigmaReaction; + Double_t ratiobbbar = bhard[fCentralityBin]*sigmabbbar/fSigmaReaction; if (!gMC) genbeauty->SetDecayer(fDecayer); genbeauty->Init(); if (!fSigmaSilent) { diff --git a/EVGEN/AliGenMUONCocktailpp.h b/EVGEN/AliGenMUONCocktailpp.h index d413f5ea5b2..c9b579ef962 100644 --- a/EVGEN/AliGenMUONCocktailpp.h +++ b/EVGEN/AliGenMUONCocktailpp.h @@ -20,7 +20,7 @@ class AliGenMUONCocktailpp : public AliGenCocktail public: AliGenMUONCocktailpp(); - enum CMSEnergyCode { kCMS07TeV, kCMS10TeV, kCMS14TeV, kNCMSEs }; + enum CMSEnergyCode { kCMS07TeV, kCMS10TeV, kCMS14TeV, kCMS09TeVpPb, kCMS09TeVPbp, kCMS03TeVPbPb, kNCMSEs }; virtual ~AliGenMUONCocktailpp(); virtual void Init(); @@ -28,6 +28,7 @@ class AliGenMUONCocktailpp : public AliGenCocktail virtual void Generate(); Int_t GetNSucceded() const {return fNSucceded;} Int_t GetNGenerated() const {return fNGenerated;} + Int_t GetCentralityBin() const {return fCentralityBin;} Int_t GetMuonMultiplicity() const {return fMuonMultiplicity;} Float_t GetMuonPtCut() const {return fMuonPtCut;} Float_t GetMuonPCut() const {return fMuonPCut;} @@ -37,6 +38,7 @@ class AliGenMUONCocktailpp : public AliGenCocktail Float_t GetDecayModeResonance()const {return fDecayModeResonance;} Float_t GetDecayModePythia() const {return fDecayModePythia;} + void SetCentralityBin(Int_t bin) { fCentralityBin = bin;} void SetMuonMultiplicity(Int_t MuonMultiplicity) { fMuonMultiplicity = MuonMultiplicity;} void SetMuonPtCut(Float_t PtCut) { fMuonPtCut = PtCut;} void SetMuonPCut(Float_t PCut) { fMuonPCut = PCut;} @@ -73,6 +75,7 @@ class AliGenMUONCocktailpp : public AliGenCocktail Float_t fMuonOriginCut; //use only muons whose "part->Vz()" value is larger than fMuonOrigin Int_t fNSucceded;// Number of Succes in the (di)-muon generation in the acceptance Int_t fNGenerated;// Number of generated cocktails + Int_t fCentralityBin;// Collision centrality bin number Double_t fJpsiPol, fChic1Pol, fChic2Pol, fPsiPPol, fUpsPol, fUpsPPol, fUpsPPPol;//Resonances polarization parameters Int_t fPolFrame;//Resonances polarization frame (Collins-Soper / Helicity) // Int_t fCMSEnergy; // CMS beam energy diff --git a/EVGEN/AliGenMUONlib.cxx b/EVGEN/AliGenMUONlib.cxx index 601c26c0f4c..43960f84d88 100644 --- a/EVGEN/AliGenMUONlib.cxx +++ b/EVGEN/AliGenMUONlib.cxx @@ -152,51 +152,282 @@ Int_t AliGenMUONlib::IpKaon(TRandom *ran) // // pt-distribution //____________________________________________________________ -Double_t AliGenMUONlib::PtJpsiPP7000( const Double_t *px, const Double_t */*dummy*/) +Double_t AliGenMUONlib::PtJpsiPPdummy(Double_t x, Double_t energy) { // J/Psi pT +// pp +// from the fit of RHIC, CDF & LHC data, see arXiv:1103.2394 // -// pp 7 TeV -// using ALICE data at 2.5 0) {y1 = y1 * x + c1[--j]; y2 = y2 * x + c2[j];} + + y1 /= 1.+c1[6]*TMath::Power(x,6); + y2 /= 1.+c2[6]*TMath::Power(x,6); + // + y1 = 1 + (y1-2)*f1[n] + (y2+1-y1)*f2[n]; + if(y1<0) y1=0; + return y1; +} + +Double_t AliGenMUONlib::PtJpsiPbPb2760(const Double_t *px, const Double_t *dummy) +{ +// J/Psi pT +// PbPb 2.76 TeV, minimum bias 0-100 % +// + return PtJpsiPbPb2760ShFdummy(*px, 0) * PtJpsiPP2760(px, dummy); } -Double_t AliGenMUONlib::PtJpsiPbPb2760( const Double_t *px, const Double_t *dummy) +Double_t AliGenMUONlib::PtJpsiPbPb2760c1(const Double_t *px, const Double_t *dummy) { // J/Psi pT +// PbPb 2.76 TeV, 1st centrality bin 0-5 % // -// PbPb 2.76 TeV, for EKS98 with minimum bias shadowing factor 0.66 + return PtJpsiPbPb2760ShFdummy(*px, 1) * PtJpsiPP2760(px, dummy); +} + +Double_t AliGenMUONlib::PtJpsiPbPb2760c2(const Double_t *px, const Double_t *dummy) +{ +// J/Psi pT +// PbPb 2.76 TeV, 2nd centrality bin 5-10 % // - Double_t c[5] = {6.01022e-01, 4.70988e-02, -2.27917e-03, 3.09885e-05, 1.31955e-06}; - Double_t x=*px; + return PtJpsiPbPb2760ShFdummy(*px, 2) * PtJpsiPP2760(px, dummy); +} + +Double_t AliGenMUONlib::PtJpsiPbPb2760c3(const Double_t *px, const Double_t *dummy) +{ +// J/Psi pT +// PbPb 2.76 TeV, 3rd centrality bin 10-20 % +// + return PtJpsiPbPb2760ShFdummy(*px, 3) * PtJpsiPP2760(px, dummy); +} + +Double_t AliGenMUONlib::PtJpsiPbPb2760c4(const Double_t *px, const Double_t *dummy) +{ +// J/Psi pT +// PbPb 2.76 TeV, 4th centrality bin 20-30 % +// + return PtJpsiPbPb2760ShFdummy(*px, 4) * PtJpsiPP2760(px, dummy); +} + +Double_t AliGenMUONlib::PtJpsiPbPb2760c5(const Double_t *px, const Double_t *dummy) +{ +// J/Psi pT +// PbPb 2.76 TeV, 5th centrality bin 30-40 % +// + return PtJpsiPbPb2760ShFdummy(*px, 5) * PtJpsiPP2760(px, dummy); +} + +Double_t AliGenMUONlib::PtJpsiPbPb2760c6(const Double_t *px, const Double_t *dummy) +{ +// J/Psi pT +// PbPb 2.76 TeV, 6th centrality bin 40-50 % +// + return PtJpsiPbPb2760ShFdummy(*px, 6) * PtJpsiPP2760(px, dummy); +} + +Double_t AliGenMUONlib::PtJpsiPbPb2760c7(const Double_t *px, const Double_t *dummy) +{ +// J/Psi pT +// PbPb 2.76 TeV, 7th centrality bin 50-60 % +// + return PtJpsiPbPb2760ShFdummy(*px, 7) * PtJpsiPP2760(px, dummy); +} + +Double_t AliGenMUONlib::PtJpsiPbPb2760c8(const Double_t *px, const Double_t *dummy) +{ +// J/Psi pT +// PbPb 2.76 TeV, 8th centrality bin 60-70 % +// + return PtJpsiPbPb2760ShFdummy(*px, 8) * PtJpsiPP2760(px, dummy); +} + +Double_t AliGenMUONlib::PtJpsiPbPb2760c9(const Double_t *px, const Double_t *dummy) +{ +// J/Psi pT +// PbPb 2.76 TeV, 9th centrality bin 70-80 % +// + return PtJpsiPbPb2760ShFdummy(*px, 9) * PtJpsiPP2760(px, dummy); +} + +Double_t AliGenMUONlib::PtJpsiPbPb2760c10(const Double_t *px, const Double_t *dummy) +{ +// J/Psi pT +// PbPb 2.76 TeV, 10th centrality bin 80-90 % +// + return PtJpsiPbPb2760ShFdummy(*px, 10) * PtJpsiPP2760(px, dummy); +} + +Double_t AliGenMUONlib::PtJpsiPbPb2760c11(const Double_t *px, const Double_t *dummy) +{ +// J/Psi pT +// PbPb 2.76 TeV, 11th centrality bin 90-100 % +// + return PtJpsiPbPb2760ShFdummy(*px, 11) * PtJpsiPP2760(px, dummy); +} + +Double_t AliGenMUONlib::PtJpsiPPb8800ShFdummy(Double_t x, Int_t n) +{ +// J/Psi shadowing factor vs pT for pPb min. bias and 4 centr. bins (in 2.5 0) y = y * x + c[--j]; + y /= 1 + c[6]*TMath::Power(x,6); // - Double_t d = 1.+c[4]*TMath::Power(x,4); - return y/d * AliGenMUONlib::PtJpsiPP2760(px,dummy); + return 1 + (y-1)*f[n]; +} + +Double_t AliGenMUONlib::PtJpsiPPb8800(const Double_t *px, const Double_t *dummy) +{ +// J/Psi pT +// pPb 8.8 TeV, minimum bias 0-100 % +// + return PtJpsiPPb8800ShFdummy(*px, 0) * PtJpsiPP8800(px, dummy); +} + +Double_t AliGenMUONlib::PtJpsiPPb8800c1(const Double_t *px, const Double_t *dummy) +{ +// J/Psi pT +// pPb 8.8 TeV, 1st centrality bin 0-20 % +// + return PtJpsiPPb8800ShFdummy(*px, 1) * PtJpsiPP8800(px, dummy); +} + +Double_t AliGenMUONlib::PtJpsiPPb8800c2(const Double_t *px, const Double_t *dummy) +{ +// J/Psi pT +// pPb 8.8 TeV, 2nd centrality bin 20-40 % +// + return PtJpsiPPb8800ShFdummy(*px, 2) * PtJpsiPP8800(px, dummy); +} + +Double_t AliGenMUONlib::PtJpsiPPb8800c3(const Double_t *px, const Double_t *dummy) +{ +// J/Psi pT +// pPb 8.8 TeV, 3rd centrality bin 40-60 % +// + return PtJpsiPPb8800ShFdummy(*px, 3) * PtJpsiPP8800(px, dummy); +} + +Double_t AliGenMUONlib::PtJpsiPPb8800c4(const Double_t *px, const Double_t *dummy) +{ +// J/Psi pT +// pPb 8.8 TeV, 4th centrality bin 60-100 % +// + return PtJpsiPPb8800ShFdummy(*px, 4) * PtJpsiPP8800(px, dummy); +} + +Double_t AliGenMUONlib::PtJpsiPbP8800ShFdummy(Double_t x, Int_t n) +{ +// J/Psi shadowing factor vs pT for Pbp min. bias and 4 centr. bins (in 2.5 0) y = y * x + c[--j]; + y /= 1 + c[6]*TMath::Power(x,6); + // + return 1 + (y-1)*f[n]; +} + +Double_t AliGenMUONlib::PtJpsiPbP8800(const Double_t *px, const Double_t *dummy) +{ +// J/Psi pT +// Pbp 8.8 TeV, minimum bias 0-100 % +// + return PtJpsiPbP8800ShFdummy(*px, 0) * PtJpsiPP8800(px, dummy); +} + +Double_t AliGenMUONlib::PtJpsiPbP8800c1(const Double_t *px, const Double_t *dummy) +{ +// J/Psi pT +// Pbp 8.8 TeV, 1st centrality bin 0-20 % +// + return PtJpsiPbP8800ShFdummy(*px, 1) * PtJpsiPP8800(px, dummy); +} + +Double_t AliGenMUONlib::PtJpsiPbP8800c2(const Double_t *px, const Double_t *dummy) +{ +// J/Psi pT +// Pbp 8.8 TeV, 2nd centrality bin 20-40 % +// + return PtJpsiPbP8800ShFdummy(*px, 2) * PtJpsiPP8800(px, dummy); +} + +Double_t AliGenMUONlib::PtJpsiPbP8800c3(const Double_t *px, const Double_t *dummy) +{ +// J/Psi pT +// Pbp 8.8 TeV, 3rd centrality bin 40-60 % +// + return PtJpsiPbP8800ShFdummy(*px, 3) * PtJpsiPP8800(px, dummy); +} + +Double_t AliGenMUONlib::PtJpsiPbP8800c4(const Double_t *px, const Double_t *dummy) +{ +// J/Psi pT +// Pbp 8.8 TeV, 4th centrality bin 60-100 % +// + return PtJpsiPbP8800ShFdummy(*px, 4) * PtJpsiPP8800(px, dummy); } Double_t AliGenMUONlib::PtJpsi( const Double_t *px, const Double_t */*dummy*/) @@ -320,8 +551,8 @@ Double_t AliGenMUONlib::PtJpsiCDFscaledPP2( const Double_t *px, const Double_t * { // J/Psi pT // -// pp 1.9 TeV -// fit of the CDF data at 1.9 TeV +// pp 1.96 TeV +// fit of the CDF data at 1.96 TeV // const Double_t kpt0 = 4.233; const Double_t kxn = 4.071; @@ -335,7 +566,7 @@ Double_t AliGenMUONlib::PtJpsiCDFscaledPPb9( const Double_t *px, const Double_t { // J/Psi pT // -// pPb 8.8 TeV, for EKS98 with minimum bias shadowing factor 0.80 +// pPb 8.8 TeV, for EKS98 with minimum bias shadowing factor 0.79 // Double_t c[5] = {6.42774e-01, 1.86168e-02, -6.77296e-04, 8.93512e-06, 1.31586e-07}; Double_t x=*px; @@ -352,7 +583,7 @@ Double_t AliGenMUONlib::PtJpsiCDFscaledPbP9( const Double_t *px, const Double_t { // J/Psi pT // -// Pbp 8.8 TeV, for EKS98 with minimum bias shadowing factor 0.80 +// Pbp 8.8 TeV, for EKS98 with minimum bias shadowing factor 0.79 // Double_t c[5] = {8.58557e-01, 5.39791e-02, -4.75180e-03, 2.49463e-04, 5.52396e-05}; Double_t x=*px; @@ -455,49 +686,303 @@ 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*/) +Double_t AliGenMUONlib::YJpsiPPdummy(Double_t x, Double_t energy) { // J/Psi y -// -// pp 7 TeV +// pp // from the fit of RHIC + LHC data, see arXiv:1103.2394 // - Double_t x = px[0]/7.72; + x = x/TMath::Log(energy/3.097); x = x*x; - Double_t y = TMath::Exp(-x/0.383/0.383/2); + Double_t y = TMath::Exp(-x/0.4/0.4/2); if(x > 1) y=0; return y; } -Double_t AliGenMUONlib::YJpsiPP2760( const Double_t *px, const Double_t */*dummy*/) +Double_t AliGenMUONlib::YJpsiPPpoly(Double_t x, Double_t energy) { // J/Psi y -// -// pp 2.76 TeV +// pp // from the fit of RHIC + LHC data, see arXiv:1103.2394 // - Double_t x = px[0]/6.79; + x = x/TMath::Log(energy/3.097); x = x*x; - Double_t y = TMath::Exp(-x/0.383/0.383/2); - if(x > 1) y=0; + Double_t y = 1 - 6.9*x*x; + if(y < 0) y=0; return y; } -Double_t AliGenMUONlib::YJpsiPbPb2760( const Double_t *px, const Double_t *dummy) +Double_t AliGenMUONlib::YJpsiPP7000(const Double_t *px, const Double_t */*dummy*/) { // J/Psi y +// pp 7 TeV // -// PbPb 2.76 TeV, for EKS98 with minimum bias shadowing factor 0.66 + return YJpsiPPdummy(*px, 7000); +} + +Double_t AliGenMUONlib::YJpsiPP2760(const Double_t *px, const Double_t */*dummy*/) +{ +// J/Psi y +// pp 2.76 TeV // - Double_t c[4] = {5.95228e-01, 9.45069e-03, 2.44710e-04, -1.32894e-05}; - Double_t x = px[0]*px[0]; + return YJpsiPPdummy(*px, 2760); +} + +Double_t AliGenMUONlib::YJpsiPP8800(const Double_t *px, const Double_t */*dummy*/) +{ +// J/Psi y +// pp 8.8 TeV +// + return YJpsiPPdummy(*px, 8800); +} + +Double_t AliGenMUONlib::YJpsiPPpoly7000(const Double_t *px, const Double_t */*dummy*/) +{ +// J/Psi y +// pp 7 TeV +// + return YJpsiPPpoly(*px, 7000); +} + +Double_t AliGenMUONlib::YJpsiPPpoly2760(const Double_t *px, const Double_t */*dummy*/) +{ +// J/Psi y +// pp 2.76 TeV +// + return YJpsiPPpoly(*px, 2760); +} + +Double_t AliGenMUONlib::YJpsiPbPb2760ShFdummy(Double_t x, Int_t n) +{ +// J/Psi shadowing factor vs y for PbPb min. bias and 11 centr. bins +// +// PbPb 2.76 TeV, for EKS98, minimum bias shadowing factor = 0.66 in 4pi +// + const Double_t f1[12] = {1, 1.128, 1.097, 1.037, 0.937, 0.821, 0.693, 0.558, + 0.428, 0.317, 0.231, 0.156}; + const Double_t f2[12] = {1, 1.313, 1.202, 1.039, 0.814, 0.593, 0.391, 0.224, + 0.106, 0.041, 0.013, 0.002}; + const Double_t c1[5] = {1.5591e+00, 7.5827e-03, 2.0676e-03,-1.1717e-04, 1.5237e-06}; + const Double_t c2[5] = {6.0861e-01, 4.8854e-03, 1.3685e-03,-7.9182e-05, 1.0475e-06}; + + x = x*x; + Double_t y1, y2; + Int_t j; + y1 = c1[j = 4]; y2 = c2[4]; + while (j > 0) {y1 = y1 * x + c1[--j]; y2 = y2 * x + c2[j];} + + y1 = 1 + (y1-2)*f1[n] + (y2+1-y1)*f2[n]; + if(y1<0) y1=0; + return y1; +} + +Double_t AliGenMUONlib::YJpsiPbPb2760(const Double_t *px, const Double_t *dummy) +{ +// J/Psi y +// PbPb 2.76 TeV, minimum bias 0-100 % +// + return YJpsiPbPb2760ShFdummy(*px, 0) * YJpsiPP2760(px, dummy); +} + +Double_t AliGenMUONlib::YJpsiPbPb2760c1(const Double_t *px, const Double_t *dummy) +{ +// J/Psi y +// PbPb 2.76 TeV, 1st centrality bin 0-5 % +// + return YJpsiPbPb2760ShFdummy(*px, 1) * YJpsiPP2760(px, dummy); +} + +Double_t AliGenMUONlib::YJpsiPbPb2760c2(const Double_t *px, const Double_t *dummy) +{ +// J/Psi y +// PbPb 2.76 TeV, 2nd centrality bin 5-10 % +// + return YJpsiPbPb2760ShFdummy(*px, 2) * YJpsiPP2760(px, dummy); +} + +Double_t AliGenMUONlib::YJpsiPbPb2760c3(const Double_t *px, const Double_t *dummy) +{ +// J/Psi y +// PbPb 2.76 TeV, 3rd centrality bin 10-20 % +// + return YJpsiPbPb2760ShFdummy(*px, 3) * YJpsiPP2760(px, dummy); +} + +Double_t AliGenMUONlib::YJpsiPbPb2760c4(const Double_t *px, const Double_t *dummy) +{ +// J/Psi y +// PbPb 2.76 TeV, 4th centrality bin 20-30 % +// + return YJpsiPbPb2760ShFdummy(*px, 4) * YJpsiPP2760(px, dummy); +} + +Double_t AliGenMUONlib::YJpsiPbPb2760c5(const Double_t *px, const Double_t *dummy) +{ +// J/Psi y +// PbPb 2.76 TeV, 5th centrality bin 30-40 % +// + return YJpsiPbPb2760ShFdummy(*px, 5) * YJpsiPP2760(px, dummy); +} + +Double_t AliGenMUONlib::YJpsiPbPb2760c6(const Double_t *px, const Double_t *dummy) +{ +// J/Psi y +// PbPb 2.76 TeV, 6th centrality bin 40-50 % +// + return YJpsiPbPb2760ShFdummy(*px, 6) * YJpsiPP2760(px, dummy); +} + +Double_t AliGenMUONlib::YJpsiPbPb2760c7(const Double_t *px, const Double_t *dummy) +{ +// J/Psi y +// PbPb 2.76 TeV, 7th centrality bin 50-60 % +// + return YJpsiPbPb2760ShFdummy(*px, 7) * YJpsiPP2760(px, dummy); +} + +Double_t AliGenMUONlib::YJpsiPbPb2760c8(const Double_t *px, const Double_t *dummy) +{ +// J/Psi y +// PbPb 2.76 TeV, 8th centrality bin 60-70 % +// + return YJpsiPbPb2760ShFdummy(*px, 8) * YJpsiPP2760(px, dummy); +} + +Double_t AliGenMUONlib::YJpsiPbPb2760c9(const Double_t *px, const Double_t *dummy) +{ +// J/Psi y +// PbPb 2.76 TeV, 9th centrality bin 70-80 % +// + return YJpsiPbPb2760ShFdummy(*px, 9) * YJpsiPP2760(px, dummy); +} + +Double_t AliGenMUONlib::YJpsiPbPb2760c10(const Double_t *px, const Double_t *dummy) +{ +// J/Psi y +// PbPb 2.76 TeV, 10th centrality bin 80-90 % +// + return YJpsiPbPb2760ShFdummy(*px, 10) * YJpsiPP2760(px, dummy); +} + +Double_t AliGenMUONlib::YJpsiPbPb2760c11(const Double_t *px, const Double_t *dummy) +{ +// J/Psi y +// PbPb 2.76 TeV, 11th centrality bin 90-100 % +// + return YJpsiPbPb2760ShFdummy(*px, 11) * YJpsiPP2760(px, dummy); +} + +Double_t AliGenMUONlib::YJpsiPP8800dummy(Double_t px) +{ + return AliGenMUONlib::YJpsiPP8800(&px, (Double_t*) 0); +} + +Double_t AliGenMUONlib::YJpsiPPb8800ShFdummy(Double_t x, Int_t n) +{ +// J/Psi shadowing factor vs y for pPb min. bias and 4 centr. bins +// +// pPb 8.8 TeV, for EKS98, minimum bias shadowing factor = 0.78 in 4pi +// + const Double_t f[5] = {1, 1.33, 1.05, 0.67, 0.23}; + const Double_t c[7] = {7.4372e-01, 2.3299e-02, 2.8678e-03, 1.9595e-03, + 3.2849e-04,-4.0547e-05,-7.9732e-06}; Double_t y; Int_t j; - y = c[j = 3]; - while (j > 0) y = y * x + c[--j]; + y = c[j = 6]; + while (j > 0) y = y * x + c[--j]; if(y<0) y=0; + // + return 1 +(y-1)*f[n]; +} + +Double_t AliGenMUONlib::YJpsiPPb8800(const Double_t *px, const Double_t */*dummy*/) +{ +// J/Psi y +// pPb 8.8 TeV, minimum bias 0-100 % +// + Double_t x = px[0] + 0.47; // rapidity shift + return YJpsiPPb8800ShFdummy(x, 0) * YJpsiPP8800dummy(x); +} + +Double_t AliGenMUONlib::YJpsiPPb8800c1(const Double_t *px, const Double_t */*dummy*/) +{ +// J/Psi y +// pPb 8.8 TeV, 1st centrality bin 0-20 % +// + Double_t x = px[0] + 0.47; // rapidity shift + return YJpsiPPb8800ShFdummy(x, 1) * YJpsiPP8800dummy(x); +} + +Double_t AliGenMUONlib::YJpsiPPb8800c2(const Double_t *px, const Double_t */*dummy*/) +{ +// J/Psi y +// pPb 8.8 TeV, 2nd centrality bin 20-40 % +// + Double_t x = px[0] + 0.47; // rapidity shift + return YJpsiPPb8800ShFdummy(x, 2) * YJpsiPP8800dummy(x); +} + +Double_t AliGenMUONlib::YJpsiPPb8800c3(const Double_t *px, const Double_t */*dummy*/) +{ +// J/Psi y +// pPb 8.8 TeV, 3rd centrality bin 40-60 % +// + Double_t x = px[0] + 0.47; // rapidity shift + return YJpsiPPb8800ShFdummy(x, 3) * YJpsiPP8800dummy(x); +} + +Double_t AliGenMUONlib::YJpsiPPb8800c4(const Double_t *px, const Double_t */*dummy*/) +{ +// J/Psi y +// pPb 8.8 TeV, 4th centrality bin 60-100 % +// + Double_t x = px[0] + 0.47; // rapidity shift + return YJpsiPPb8800ShFdummy(x, 4) * YJpsiPP8800dummy(x); +} - return y * AliGenMUONlib::YJpsiPP2760(px,dummy); +Double_t AliGenMUONlib::YJpsiPbP8800(const Double_t *px, const Double_t */*dummy*/) +{ +// J/Psi y +// Pbp 8.8 TeV, minimum bias 0-100 % +// + Double_t x = -px[0] + 0.47; // rapidity shift + return YJpsiPPb8800ShFdummy(x, 0) * YJpsiPP8800dummy(x); +} + +Double_t AliGenMUONlib::YJpsiPbP8800c1(const Double_t *px, const Double_t */*dummy*/) +{ +// J/Psi y +// Pbp 8.8 TeV, 1st centrality bin 0-20 % +// + Double_t x = -px[0] + 0.47; // rapidity shift + return YJpsiPPb8800ShFdummy(x, 1) * YJpsiPP8800dummy(x); +} + +Double_t AliGenMUONlib::YJpsiPbP8800c2(const Double_t *px, const Double_t */*dummy*/) +{ +// J/Psi y +// Pbp 8.8 TeV, 2nd centrality bin 20-40 % +// + Double_t x = -px[0] + 0.47; // rapidity shift + return YJpsiPPb8800ShFdummy(x, 2) * YJpsiPP8800dummy(x); +} + +Double_t AliGenMUONlib::YJpsiPbP8800c3(const Double_t *px, const Double_t */*dummy*/) +{ +// J/Psi y +// Pbp 8.8 TeV, 3rd centrality bin 40-60 % +// + Double_t x = -px[0] + 0.47; // rapidity shift + return YJpsiPPb8800ShFdummy(x, 3) * YJpsiPP8800dummy(x); +} + +Double_t AliGenMUONlib::YJpsiPbP8800c4(const Double_t *px, const Double_t */*dummy*/) +{ +// J/Psi y +// Pbp 8.8 TeV, 4th centrality bin 60-100 % +// + Double_t x = -px[0] + 0.47; // rapidity shift + return YJpsiPPb8800ShFdummy(x, 4) * YJpsiPP8800dummy(x); } Double_t AliGenMUONlib::YJpsi(const Double_t *py, const Double_t */*dummy*/) @@ -685,15 +1170,9 @@ Double_t AliGenMUONlib::YJpsiCDFscaledPP3( const Double_t *px, const Double_t *d Double_t AliGenMUONlib::YJpsiCDFscaledPP2( const Double_t *px, const Double_t */*dummy*/) { // J/Psi y +// pp 1.96 TeV // -// 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; + return YJpsiPPdummy(*px, 1960); } Double_t AliGenMUONlib::YJpsiPP( const Double_t *px, const Double_t */*dummy*/) @@ -730,7 +1209,7 @@ Double_t AliGenMUONlib::YJpsiCDFscaledPPb9( const Double_t *px, const Double_t * { // J/Psi y // -// pPb 8.8 TeV, for EKS98 with minimum bias shadowing factor 0.80 +// pPb 8.8 TeV, for EKS98 with minimum bias shadowing factor 0.79 // Double_t c[7] = {7.52296e-01, 2.49917e-02, 3.36500e-03, 1.91187e-03, 2.92154e-04, -4.16509e-05,-7.62709e-06}; @@ -748,7 +1227,7 @@ Double_t AliGenMUONlib::YJpsiCDFscaledPbP9( const Double_t *px, const Double_t * { // J/Psi y // -// Pbp 8.8 TeV, for EKS98 with minimum bias shadowing factor 0.80 +// Pbp 8.8 TeV, for EKS98 with minimum bias shadowing factor 0.79 // Double_t c[7] = {7.52296e-01, 2.49917e-02, 3.36500e-03, 1.91187e-03, 2.92154e-04, -4.16509e-05,-7.62709e-06}; @@ -779,65 +1258,339 @@ Double_t AliGenMUONlib::YJpsiCDFscaledPbPb4( const Double_t *px, const Double_t return y * AliGenMUONlib::YJpsiCDFscaledPP4(px,dummy); } -Double_t AliGenMUONlib::YJpsiBPbPb( const Double_t *px, const Double_t */*dummy*/) +Double_t AliGenMUONlib::YJpsiBPbPb( const Double_t *px, const 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; +} + + + +// particle composition +// +Int_t AliGenMUONlib::IpJpsi(TRandom *) +{ +// J/Psi composition + return 443; +} +Int_t AliGenMUONlib::IpPsiP(TRandom *) +{ +// Psi prime composition + return 100443; +} +Int_t AliGenMUONlib::IpJpsiFamily(TRandom *) +{ +// J/Psi composition + Int_t ip; + Float_t r = gRandom->Rndm(); + if (r < 0.98) { + ip = 443; + } else { + ip = 100443; + } + return ip; +} + + + +// Upsilon +// +// +// pt-distribution +//____________________________________________________________ +Double_t AliGenMUONlib::PtUpsilonPPdummy(Double_t x, Double_t energy) +{ +// Upsilon pT +// pp +// from the fit of CDF & LHC data, like for J/Psi in arXiv:1103.2394 +// + const Double_t kpt0 = 1.96*TMath::Power(energy,0.095); + const Double_t kxn = 3.4; + // + Double_t pass1 = 1.+0.471*(x/kpt0)*(x/kpt0); + return x/TMath::Power(pass1,kxn); +} + +Double_t AliGenMUONlib::PtUpsilonPP7000(const Double_t *px, const Double_t */*dummy*/) +{ +// Upsilon pT +// pp 7 TeV +// + return PtUpsilonPPdummy(*px,7000); +} + +Double_t AliGenMUONlib::PtUpsilonPP2760(const Double_t *px, const Double_t */*dummy*/) +{ +// Upsilon pT +// pp 2.76 TeV +// + return PtUpsilonPPdummy(*px,2760); +} + +Double_t AliGenMUONlib::PtUpsilonPP8800(const Double_t *px, const Double_t */*dummy*/) +{ +// Upsilon pT +// pp 8.8 TeV +// + return PtUpsilonPPdummy(*px,8800); +} + +Double_t AliGenMUONlib::PtUpsilonPbPb2760ShFdummy(Double_t x, Int_t n) +{ +// Usilon shadowing factor vs pT for PbPb min. bias and 11 centr. bins (in 2.5 0) {y1 = y1 * x + c1[--j]; y2 = y2 * x + c2[j];} + + y1 /= 1.+c1[6]*TMath::Power(x,6); + y2 /= 1.+c2[6]*TMath::Power(x,6); + // + y1 = 1 + (y1-2)*f1[n] + (y2+1-y1)*f2[n]; + if(y1<0) y1=0; + return y1; +} + +Double_t AliGenMUONlib::PtUpsilonPbPb2760(const Double_t *px, const Double_t *dummy) +{ +// Upsilon pT +// PbPb 2.76 TeV, minimum bias 0-100 % +// + return PtUpsilonPbPb2760ShFdummy(*px, 0) * PtUpsilonPP2760(px, dummy); +} + +Double_t AliGenMUONlib::PtUpsilonPbPb2760c1(const Double_t *px, const Double_t *dummy) +{ +// Upsilon pT +// PbPb 2.76 TeV, 1st centrality bin 0-5 % +// + return PtUpsilonPbPb2760ShFdummy(*px, 1) * PtUpsilonPP2760(px, dummy); +} + +Double_t AliGenMUONlib::PtUpsilonPbPb2760c2(const Double_t *px, const Double_t *dummy) +{ +// Upsilon pT +// PbPb 2.76 TeV, 2nd centrality bin 5-10 % +// + return PtUpsilonPbPb2760ShFdummy(*px, 2) * PtUpsilonPP2760(px, dummy); +} + +Double_t AliGenMUONlib::PtUpsilonPbPb2760c3(const Double_t *px, const Double_t *dummy) +{ +// Upsilon pT +// PbPb 2.76 TeV, 3rd centrality bin 10-20 % +// + return PtUpsilonPbPb2760ShFdummy(*px, 3) * PtUpsilonPP2760(px, dummy); +} + +Double_t AliGenMUONlib::PtUpsilonPbPb2760c4(const Double_t *px, const Double_t *dummy) +{ +// Upsilon pT +// PbPb 2.76 TeV, 4th centrality bin 20-30 % +// + return PtUpsilonPbPb2760ShFdummy(*px, 4) * PtUpsilonPP2760(px, dummy); +} + +Double_t AliGenMUONlib::PtUpsilonPbPb2760c5(const Double_t *px, const Double_t *dummy) +{ +// Upsilon pT +// PbPb 2.76 TeV, 5th centrality bin 30-40 % +// + return PtUpsilonPbPb2760ShFdummy(*px, 5) * PtUpsilonPP2760(px, dummy); +} + +Double_t AliGenMUONlib::PtUpsilonPbPb2760c6(const Double_t *px, const Double_t *dummy) +{ +// Upsilon pT +// PbPb 2.76 TeV, 6th centrality bin 40-50 % +// + return PtUpsilonPbPb2760ShFdummy(*px, 6) * PtUpsilonPP2760(px, dummy); +} + +Double_t AliGenMUONlib::PtUpsilonPbPb2760c7(const Double_t *px, const Double_t *dummy) +{ +// Upsilon pT +// PbPb 2.76 TeV, 7th centrality bin 50-60 % +// + return PtUpsilonPbPb2760ShFdummy(*px, 7) * PtUpsilonPP2760(px, dummy); +} + +Double_t AliGenMUONlib::PtUpsilonPbPb2760c8(const Double_t *px, const Double_t *dummy) +{ +// Upsilon pT +// PbPb 2.76 TeV, 8th centrality bin 60-70 % +// + return PtUpsilonPbPb2760ShFdummy(*px, 8) * PtUpsilonPP2760(px, dummy); +} + +Double_t AliGenMUONlib::PtUpsilonPbPb2760c9(const Double_t *px, const Double_t *dummy) +{ +// Upsilon pT +// PbPb 2.76 TeV, 9th centrality bin 70-80 % +// + return PtUpsilonPbPb2760ShFdummy(*px, 9) * PtUpsilonPP2760(px, dummy); +} + +Double_t AliGenMUONlib::PtUpsilonPbPb2760c10(const Double_t *px, const Double_t *dummy) +{ +// Upsilon pT +// PbPb 2.76 TeV, 10th centrality bin 80-90 % +// + return PtUpsilonPbPb2760ShFdummy(*px, 10) * PtUpsilonPP2760(px, dummy); +} + +Double_t AliGenMUONlib::PtUpsilonPbPb2760c11(const Double_t *px, const Double_t *dummy) +{ +// Upsilon pT +// PbPb 2.76 TeV, 11th centrality bin 90-100 % +// + return PtUpsilonPbPb2760ShFdummy(*px, 11) * PtUpsilonPP2760(px, dummy); +} + +Double_t AliGenMUONlib::PtUpsilonPPb8800ShFdummy(Double_t x, Int_t n) +{ +// Upsilon shadowing factor vs pT for pPb min. bias and 4 centr. bins (in 2.5 0) y = y * x + c[--j]; + y /= 1 + c[4]*TMath::Power(x,4); + // + return 1 + (y-1)*f[n]; +} + +Double_t AliGenMUONlib::PtUpsilonPPb8800(const Double_t *px, const Double_t *dummy) +{ +// Upsilon pT +// pPb 8.8 TeV, minimum bias 0-100 % +// + return PtUpsilonPPb8800ShFdummy(*px, 0) * PtUpsilonPP8800(px, dummy); +} + +Double_t AliGenMUONlib::PtUpsilonPPb8800c1(const Double_t *px, const Double_t *dummy) +{ +// Upsilon pT +// pPb 8.8 TeV, 1st centrality bin 0-20 % +// + return PtUpsilonPPb8800ShFdummy(*px, 1) * PtUpsilonPP8800(px, dummy); +} + +Double_t AliGenMUONlib::PtUpsilonPPb8800c2(const Double_t *px, const Double_t *dummy) +{ +// Upsilon pT +// pPb 8.8 TeV, 2nd centrality bin 20-40 % +// + return PtUpsilonPPb8800ShFdummy(*px, 2) * PtUpsilonPP8800(px, dummy); +} + +Double_t AliGenMUONlib::PtUpsilonPPb8800c3(const Double_t *px, const Double_t *dummy) { +// Upsilon pT +// pPb 8.8 TeV, 3rd centrality bin 40-60 % +// + return PtUpsilonPPb8800ShFdummy(*px, 3) * PtUpsilonPP8800(px, dummy); +} +Double_t AliGenMUONlib::PtUpsilonPPb8800c4(const Double_t *px, const Double_t *dummy) +{ +// Upsilon pT +// pPb 8.8 TeV, 4th centrality bin 60-100 % // -// J/Psi from B->J/Psi X + return PtUpsilonPPb8800ShFdummy(*px, 4) * PtUpsilonPP8800(px, dummy); +} + +Double_t AliGenMUONlib::PtUpsilonPbP8800ShFdummy(Double_t x, Int_t n) +{ +// Upsilon shadowing factor vs pT for Pbp min. bias and 4 centr. bins (in 2.5 6.) { - y = 0.; - } else { - Int_t j; - y = c[j = 6]; - while (j > 0) y = y * x + c[--j]; - } - - return y; + const Double_t f[5] = {1, 1.33, 1.05, 0.67, 0.23}; + const Double_t c[5] = {1.0975, 3.1905e-03,-2.0477e-04, 8.5270e-06, 2.5343e-06}; + Double_t y; + Int_t j; + y = c[j = 4]; + while (j > 0) y = y * x + c[--j]; + y /= 1 + c[4]*TMath::Power(x,4); + // + return 1 + (y-1)*f[n]; } - - -// particle composition -// -Int_t AliGenMUONlib::IpJpsi(TRandom *) +Double_t AliGenMUONlib::PtUpsilonPbP8800(const Double_t *px, const Double_t *dummy) { -// J/Psi composition - return 443; +// Upsilon pT +// Pbp 8.8 TeV, minimum bias 0-100 % +// + return PtUpsilonPbP8800ShFdummy(*px, 0) * PtUpsilonPP8800(px, dummy); } -Int_t AliGenMUONlib::IpPsiP(TRandom *) + +Double_t AliGenMUONlib::PtUpsilonPbP8800c1(const Double_t *px, const Double_t *dummy) { -// Psi prime composition - return 100443; +// Upsilon pT +// Pbp 8.8 TeV, 1st centrality bin 0-20 % +// + return PtUpsilonPbP8800ShFdummy(*px, 1) * PtUpsilonPP8800(px, dummy); } -Int_t AliGenMUONlib::IpJpsiFamily(TRandom *) + +Double_t AliGenMUONlib::PtUpsilonPbP8800c2(const Double_t *px, const Double_t *dummy) { -// J/Psi composition - Int_t ip; - Float_t r = gRandom->Rndm(); - if (r < 0.98) { - ip = 443; - } else { - ip = 100443; - } - return ip; +// Upsilon pT +// Pbp 8.8 TeV, 2nd centrality bin 20-40 % +// + return PtUpsilonPbP8800ShFdummy(*px, 2) * PtUpsilonPP8800(px, dummy); } - - -// Upsilon +Double_t AliGenMUONlib::PtUpsilonPbP8800c3(const Double_t *px, const Double_t *dummy) +{ +// Upsilon pT +// Pbp 8.8 TeV, 3rd centrality bin 40-60 % // + return PtUpsilonPbP8800ShFdummy(*px, 3) * PtUpsilonPP8800(px, dummy); +} + +Double_t AliGenMUONlib::PtUpsilonPbP8800c4(const Double_t *px, const Double_t *dummy) +{ +// Upsilon pT +// Pbp 8.8 TeV, 4th centrality bin 60-100 % // -// pt-distribution -//____________________________________________________________ + return PtUpsilonPbP8800ShFdummy(*px, 4) * PtUpsilonPP8800(px, dummy); +} + Double_t AliGenMUONlib::PtUpsilon( const Double_t *px, const Double_t */*dummy*/ ) { // Upsilon pT @@ -942,7 +1695,7 @@ Double_t AliGenMUONlib::PtUpsilonCDFscaledPPb9( const Double_t *px, const Double { // Upsilon pT // -// pPb 8.8 TeV, for EKS98 with minimum bias shadowing factor 0.90 +// pPb 8.8 TeV, for EKS98 with minimum bias shadowing factor 0.89 // Double_t c[5] = {7.64952e-01, 1.12501e-04, 4.96038e-04, -3.03198e-05, 3.74035e-06}; Double_t x=*px; @@ -959,7 +1712,7 @@ Double_t AliGenMUONlib::PtUpsilonCDFscaledPbP9( const Double_t *px, const Double { // Upsilon pT // -// Pbp 8.8 TeV, for EKS98 with minimum bias shadowing factor 0.90 +// Pbp 8.8 TeV, for EKS98 with minimum bias shadowing factor 0.89 // Double_t c[5] = {1.09881e+00, 3.08329e-03, -2.00356e-04, 8.28991e-06, 2.52576e-06}; Double_t x=*px; @@ -1053,6 +1806,305 @@ Double_t AliGenMUONlib::PtUpsilonPP( const Double_t *px, const Double_t */*dummy // y-distribution // //____________________________________________________________ +Double_t AliGenMUONlib::YUpsilonPPdummy(Double_t x, Double_t energy) +{ +// Upsilon y +// pp +// from the fit of CDF & LHC data, like for J/Psi in arXiv:1103.2394 +// + x = x/TMath::Log(energy/9.46); + x = x*x; + Double_t y = TMath::Exp(-x/0.4/0.4/2); + if(x > 1) y=0; + return y; +} + +Double_t AliGenMUONlib::YUpsilonPPpoly(Double_t x, Double_t energy) +{ +// Upsilon y +// pp +// from the fit of CDF & LHC data, like for J/Psi in arXiv:1103.2394 +// + x = x/TMath::Log(energy/9.46); + x = x*x; + Double_t y = 1 - 6.9*x*x; + if(y < 0) y=0; + return y; +} + +Double_t AliGenMUONlib::YUpsilonPP7000(const Double_t *px, const Double_t */*dummy*/) +{ +// Upsilon y +// pp 7 TeV +// + return YUpsilonPPdummy(*px, 7000); +} + +Double_t AliGenMUONlib::YUpsilonPP2760(const Double_t *px, const Double_t */*dummy*/) +{ +// Upsilon y +// pp 2.76 TeV +// + return YUpsilonPPdummy(*px, 2760); +} + +Double_t AliGenMUONlib::YUpsilonPP8800(const Double_t *px, const Double_t */*dummy*/) +{ +// Upsilon y +// pp 8.8 TeV +// + return YUpsilonPPdummy(*px, 8800); +} + +Double_t AliGenMUONlib::YUpsilonPPpoly7000(const Double_t *px, const Double_t */*dummy*/) +{ +// Upsilon y +// pp 7 TeV +// + return YUpsilonPPpoly(*px, 7000); +} + +Double_t AliGenMUONlib::YUpsilonPPpoly2760(const Double_t *px, const Double_t */*dummy*/) +{ +// Upsilon y +// pp 2.76 TeV +// + return YUpsilonPPpoly(*px, 2760); +} + +Double_t AliGenMUONlib::YUpsilonPbPb2760ShFdummy(Double_t x, Int_t n) +{ +// Upsilon shadowing factor vs y for PbPb min. bias and 11 centr. bins +// +// PbPb 2.76 TeV, for EKS98, minimum bias shadowing factor = 0.87 in 4pi +// + const Double_t f1[12] = {1, 1.128, 1.097, 1.037, 0.937, 0.821, 0.693, 0.558, + 0.428, 0.317, 0.231, 0.156}; + const Double_t f2[12] = {1, 1.313, 1.202, 1.039, 0.814, 0.593, 0.391, 0.224, + 0.106, 0.041, 0.013, 0.002}; + const Double_t c1[5] = {1.8547e+00, 1.6717e-02,-2.1285e-04,-9.7662e-05, 2.5768e-06}; + const Double_t c2[5] = {8.6029e-01, 1.1742e-02,-2.7944e-04,-6.7973e-05, 1.8838e-06}; + + x = x*x; + Double_t y1, y2; + Int_t j; + y1 = c1[j = 4]; y2 = c2[4]; + while (j > 0) {y1 = y1 * x + c1[--j]; y2 = y2 * x + c2[j];} + + y1 = 1 + (y1-2)*f1[n] + (y2+1-y1)*f2[n]; + if(y1<0) y1=0; + return y1; +} + +Double_t AliGenMUONlib::YUpsilonPbPb2760(const Double_t *px, const Double_t *dummy) +{ +// Upsilon y +// PbPb 2.76 TeV, minimum bias 0-100 % +// + return YUpsilonPbPb2760ShFdummy(*px, 0) * YUpsilonPP2760(px, dummy); +} + +Double_t AliGenMUONlib::YUpsilonPbPb2760c1(const Double_t *px, const Double_t *dummy) +{ +// Upsilon y +// PbPb 2.76 TeV, 1st centrality bin 0-5 % +// + return YUpsilonPbPb2760ShFdummy(*px, 1) * YUpsilonPP2760(px, dummy); +} + +Double_t AliGenMUONlib::YUpsilonPbPb2760c2(const Double_t *px, const Double_t *dummy) +{ +// Upsilon y +// PbPb 2.76 TeV, 2nd centrality bin 5-10 % +// + return YUpsilonPbPb2760ShFdummy(*px, 2) * YUpsilonPP2760(px, dummy); +} + +Double_t AliGenMUONlib::YUpsilonPbPb2760c3(const Double_t *px, const Double_t *dummy) +{ +// Upsilon y +// PbPb 2.76 TeV, 3rd centrality bin 10-20 % +// + return YUpsilonPbPb2760ShFdummy(*px, 3) * YUpsilonPP2760(px, dummy); +} + +Double_t AliGenMUONlib::YUpsilonPbPb2760c4(const Double_t *px, const Double_t *dummy) +{ +// Upsilon y +// PbPb 2.76 TeV, 4th centrality bin 20-30 % +// + return YUpsilonPbPb2760ShFdummy(*px, 4) * YUpsilonPP2760(px, dummy); +} + +Double_t AliGenMUONlib::YUpsilonPbPb2760c5(const Double_t *px, const Double_t *dummy) +{ +// Upsilon y +// PbPb 2.76 TeV, 5th centrality bin 30-40 % +// + return YUpsilonPbPb2760ShFdummy(*px, 5) * YUpsilonPP2760(px, dummy); +} + +Double_t AliGenMUONlib::YUpsilonPbPb2760c6(const Double_t *px, const Double_t *dummy) +{ +// Upsilon y +// PbPb 2.76 TeV, 6th centrality bin 40-50 % +// + return YUpsilonPbPb2760ShFdummy(*px, 6) * YUpsilonPP2760(px, dummy); +} + +Double_t AliGenMUONlib::YUpsilonPbPb2760c7(const Double_t *px, const Double_t *dummy) +{ +// Upsilon y +// PbPb 2.76 TeV, 7th centrality bin 50-60 % +// + return YUpsilonPbPb2760ShFdummy(*px, 7) * YUpsilonPP2760(px, dummy); +} + +Double_t AliGenMUONlib::YUpsilonPbPb2760c8(const Double_t *px, const Double_t *dummy) +{ +// Upsilon y +// PbPb 2.76 TeV, 8th centrality bin 60-70 % +// + return YUpsilonPbPb2760ShFdummy(*px, 8) * YUpsilonPP2760(px, dummy); +} + +Double_t AliGenMUONlib::YUpsilonPbPb2760c9(const Double_t *px, const Double_t *dummy) +{ +// Upsilon y +// PbPb 2.76 TeV, 9th centrality bin 70-80 % +// + return YUpsilonPbPb2760ShFdummy(*px, 9) * YUpsilonPP2760(px, dummy); +} + +Double_t AliGenMUONlib::YUpsilonPbPb2760c10(const Double_t *px, const Double_t *dummy) +{ +// Upsilon y +// PbPb 2.76 TeV, 10th centrality bin 80-90 % +// + return YUpsilonPbPb2760ShFdummy(*px, 10) * YUpsilonPP2760(px, dummy); +} + +Double_t AliGenMUONlib::YUpsilonPbPb2760c11(const Double_t *px, const Double_t *dummy) +{ +// Upsilon y +// PbPb 2.76 TeV, 11th centrality bin 90-100 % +// + return YUpsilonPbPb2760ShFdummy(*px, 11) * YUpsilonPP2760(px, dummy); +} + +Double_t AliGenMUONlib::YUpsilonPP8800dummy(Double_t px) +{ + return AliGenMUONlib::YUpsilonPP8800(&px, (Double_t*) 0); +} + +Double_t AliGenMUONlib::YUpsilonPPb8800ShFdummy(Double_t x, Int_t n) +{ +// Upsilon shadowing factor vs y for pPb min. bias and 4 centr. bins +// +// pPb 8.8 TeV, for EKS98, minimum bias shadowing factor = 0.89 in 4pi +// + const Double_t f[5] = {1, 1.33, 1.05, 0.67, 0.23}; + const Double_t c[7] = {8.6581e-01, 4.6111e-02, 7.6911e-03, 8.7313e-04, + -1.4700e-04,-5.0975e-05,-3.5718e-06}; + Double_t y; + Int_t j; + y = c[j = 6]; + while (j > 0) y = y * x + c[--j]; + if(y<0) y=0; + // + return 1 +(y-1)*f[n]; +} + +Double_t AliGenMUONlib::YUpsilonPPb8800(const Double_t *px, const Double_t */*dummy*/) +{ +// Upsilon y +// pPb 8.8 TeV, minimum bias 0-100 % +// + Double_t x = px[0] + 0.47; // rapidity shift + return YUpsilonPPb8800ShFdummy(x, 0) * YUpsilonPP8800dummy(x); +} + +Double_t AliGenMUONlib::YUpsilonPPb8800c1(const Double_t *px, const Double_t */*dummy*/) +{ +// Upsilon y +// pPb 8.8 TeV, 1st centrality bin 0-20 % +// + Double_t x = px[0] + 0.47; // rapidity shift + return YUpsilonPPb8800ShFdummy(x, 1) * YUpsilonPP8800dummy(x); +} + +Double_t AliGenMUONlib::YUpsilonPPb8800c2(const Double_t *px, const Double_t */*dummy*/) +{ +// Upsilon y +// pPb 8.8 TeV, 2nd centrality bin 20-40 % +// + Double_t x = px[0] + 0.47; // rapidity shift + return YUpsilonPPb8800ShFdummy(x, 2) * YUpsilonPP8800dummy(x); +} + +Double_t AliGenMUONlib::YUpsilonPPb8800c3(const Double_t *px, const Double_t */*dummy*/) +{ +// Upsilon y +// pPb 8.8 TeV, 3rd centrality bin 40-60 % +// + Double_t x = px[0] + 0.47; // rapidity shift + return YUpsilonPPb8800ShFdummy(x, 3) * YUpsilonPP8800dummy(x); +} + +Double_t AliGenMUONlib::YUpsilonPPb8800c4(const Double_t *px, const Double_t */*dummy*/) +{ +// Upsilon y +// pPb 8.8 TeV, 4th centrality bin 60-100 % +// + Double_t x = px[0] + 0.47; // rapidity shift + return YUpsilonPPb8800ShFdummy(x, 4) * YUpsilonPP8800dummy(x); +} + +Double_t AliGenMUONlib::YUpsilonPbP8800(const Double_t *px, const Double_t */*dummy*/) +{ +// Upsilon y +// Pbp 8.8 TeV, minimum bias 0-100 % +// + Double_t x = -px[0] + 0.47; // rapidity shift + return YUpsilonPPb8800ShFdummy(x, 0) * YUpsilonPP8800dummy(x); +} + +Double_t AliGenMUONlib::YUpsilonPbP8800c1(const Double_t *px, const Double_t */*dummy*/) +{ +// Upsilon y +// Pbp 8.8 TeV, 1st centrality bin 0-20 % +// + Double_t x = -px[0] + 0.47; // rapidity shift + return YUpsilonPPb8800ShFdummy(x, 1) * YUpsilonPP8800dummy(x); +} + +Double_t AliGenMUONlib::YUpsilonPbP8800c2(const Double_t *px, const Double_t */*dummy*/) +{ +// Upsilon y +// Pbp 8.8 TeV, 2nd centrality bin 20-40 % +// + Double_t x = -px[0] + 0.47; // rapidity shift + return YUpsilonPPb8800ShFdummy(x, 2) * YUpsilonPP8800dummy(x); +} + +Double_t AliGenMUONlib::YUpsilonPbP8800c3(const Double_t *px, const Double_t */*dummy*/) +{ +// Upsilon y +// Pbp 8.8 TeV, 3rd centrality bin 40-60 % +// + Double_t x = -px[0] + 0.47; // rapidity shift + return YUpsilonPPb8800ShFdummy(x, 3) * YUpsilonPP8800dummy(x); +} + +Double_t AliGenMUONlib::YUpsilonPbP8800c4(const Double_t *px, const Double_t */*dummy*/) +{ +// Upsilon y +// Pbp 8.8 TeV, 4th centrality bin 60-100 % +// + Double_t x = -px[0] + 0.47; // rapidity shift + return YUpsilonPPb8800ShFdummy(x, 4) * YUpsilonPP8800dummy(x); +} + Double_t AliGenMUONlib::YUpsilon(const Double_t *py, const Double_t */*dummy*/) { // Upsilon y @@ -1210,7 +2262,7 @@ Double_t AliGenMUONlib::YUpsilonCDFscaledPPb9( const Double_t *px, const Double_ { // Upsilon y // -// pPb 8.8 TeV, for EKS98 with minimum bias shadowing factor 0.90 +// pPb 8.8 TeV, for EKS98 with minimum bias shadowing factor 0.89 // Double_t c[7] = {8.71829e-01, 4.77467e-02, 8.09671e-03, 6.45294e-04, -2.15730e-04, -4.67538e-05,-2.11683e-06}; @@ -1228,7 +2280,7 @@ Double_t AliGenMUONlib::YUpsilonCDFscaledPbP9( const Double_t *px, const Double_ { // Upsilon y // -// Pbp 8.8 TeV, for EKS98 with minimum bias shadowing factor 0.90 +// Pbp 8.8 TeV, for EKS98 with minimum bias shadowing factor 0.89 // Double_t c[7] = {8.71829e-01, 4.77467e-02, 8.09671e-03, 6.45294e-04, -2.15730e-04, -4.67538e-05,-2.11683e-06}; @@ -2292,6 +3344,54 @@ GenFunc AliGenMUONlib::GetPt(Int_t param, const char* tname) const func=PtJpsiPP2760; } else if (sname == "PbPb 2.76") { func=PtJpsiPbPb2760; + } else if (sname == "PbPb 2.76c1") { + func=PtJpsiPbPb2760c1; + } else if (sname == "PbPb 2.76c2") { + func=PtJpsiPbPb2760c2; + } else if (sname == "PbPb 2.76c3") { + func=PtJpsiPbPb2760c3; + } else if (sname == "PbPb 2.76c4") { + func=PtJpsiPbPb2760c4; + } else if (sname == "PbPb 2.76c5") { + func=PtJpsiPbPb2760c5; + } else if (sname == "PbPb 2.76c6") { + func=PtJpsiPbPb2760c6; + } else if (sname == "PbPb 2.76c7") { + func=PtJpsiPbPb2760c7; + } else if (sname == "PbPb 2.76c8") { + func=PtJpsiPbPb2760c8; + } else if (sname == "PbPb 2.76c9") { + func=PtJpsiPbPb2760c9; + } else if (sname == "PbPb 2.76c10") { + func=PtJpsiPbPb2760c10; + } else if (sname == "PbPb 2.76c11") { + func=PtJpsiPbPb2760c11; + } else if (sname == "pp 7 poly") { + func=PtJpsiPP7000; + } else if (sname == "pp 2.76 poly") { + func=PtJpsiPP2760; + } else if (sname == "pp 8.8") { + func=PtJpsiPP8800; + } else if (sname == "pPb 8.8") { + func=PtJpsiPPb8800; + } else if (sname == "pPb 8.8c1") { + func=PtJpsiPPb8800c1; + } else if (sname == "pPb 8.8c2") { + func=PtJpsiPPb8800c2; + } else if (sname == "pPb 8.8c3") { + func=PtJpsiPPb8800c3; + } else if (sname == "pPb 8.8c4") { + func=PtJpsiPPb8800c4; + } else if (sname == "Pbp 8.8") { + func=PtJpsiPbP8800; + } else if (sname == "Pbp 8.8c1") { + func=PtJpsiPbP8800c1; + } else if (sname == "Pbp 8.8c2") { + func=PtJpsiPbP8800c2; + } else if (sname == "Pbp 8.8c3") { + func=PtJpsiPbP8800c3; + } else if (sname == "Pbp 8.8c4") { + func=PtJpsiPbP8800c4; } else if (sname == "CDF scaled") { func=PtJpsiCDFscaled; } else if (sname == "CDF pp") { @@ -2331,6 +3431,60 @@ GenFunc AliGenMUONlib::GetPt(Int_t param, const char* tname) const func=PtUpsilonPbPb; } else if (sname == "Vogt pp") { func=PtUpsilonPP; + } else if (sname == "pp 7") { + func=PtUpsilonPP7000; + } else if (sname == "pp 2.76") { + func=PtUpsilonPP2760; + } else if (sname == "PbPb 2.76") { + func=PtUpsilonPbPb2760; + } else if (sname == "PbPb 2.76c1") { + func=PtUpsilonPbPb2760c1; + } else if (sname == "PbPb 2.76c2") { + func=PtUpsilonPbPb2760c2; + } else if (sname == "PbPb 2.76c3") { + func=PtUpsilonPbPb2760c3; + } else if (sname == "PbPb 2.76c4") { + func=PtUpsilonPbPb2760c4; + } else if (sname == "PbPb 2.76c5") { + func=PtUpsilonPbPb2760c5; + } else if (sname == "PbPb 2.76c6") { + func=PtUpsilonPbPb2760c6; + } else if (sname == "PbPb 2.76c7") { + func=PtUpsilonPbPb2760c7; + } else if (sname == "PbPb 2.76c8") { + func=PtUpsilonPbPb2760c8; + } else if (sname == "PbPb 2.76c9") { + func=PtUpsilonPbPb2760c9; + } else if (sname == "PbPb 2.76c10") { + func=PtUpsilonPbPb2760c10; + } else if (sname == "PbPb 2.76c11") { + func=PtUpsilonPbPb2760c11; + } else if (sname == "pp 7 poly") { + func=PtUpsilonPP7000; + } else if (sname == "pp 2.76 poly") { + func=PtUpsilonPP2760; + } else if (sname == "pp 8.8") { + func=PtUpsilonPP8800; + } else if (sname == "pPb 8.8") { + func=PtUpsilonPPb8800; + } else if (sname == "pPb 8.8c1") { + func=PtUpsilonPPb8800c1; + } else if (sname == "pPb 8.8c2") { + func=PtUpsilonPPb8800c2; + } else if (sname == "pPb 8.8c3") { + func=PtUpsilonPPb8800c3; + } else if (sname == "pPb 8.8c4") { + func=PtUpsilonPPb8800c4; + } else if (sname == "Pbp 8.8") { + func=PtUpsilonPbP8800; + } else if (sname == "Pbp 8.8c1") { + func=PtUpsilonPbP8800c1; + } else if (sname == "Pbp 8.8c2") { + func=PtUpsilonPbP8800c2; + } else if (sname == "Pbp 8.8c3") { + func=PtUpsilonPbP8800c3; + } else if (sname == "Pbp 8.8c4") { + func=PtUpsilonPbP8800c4; } else if (sname == "CDF scaled") { func=PtUpsilonCDFscaled; } else if (sname == "CDF pp") { @@ -2477,6 +3631,54 @@ GenFunc AliGenMUONlib::GetY(Int_t param, const char* tname) const func=YJpsiPP2760; } else if (sname == "PbPb 2.76") { func=YJpsiPbPb2760; + } else if (sname == "PbPb 2.76c1") { + func=YJpsiPbPb2760c1; + } else if (sname == "PbPb 2.76c2") { + func=YJpsiPbPb2760c2; + } else if (sname == "PbPb 2.76c3") { + func=YJpsiPbPb2760c3; + } else if (sname == "PbPb 2.76c4") { + func=YJpsiPbPb2760c4; + } else if (sname == "PbPb 2.76c5") { + func=YJpsiPbPb2760c5; + } else if (sname == "PbPb 2.76c6") { + func=YJpsiPbPb2760c6; + } else if (sname == "PbPb 2.76c7") { + func=YJpsiPbPb2760c7; + } else if (sname == "PbPb 2.76c8") { + func=YJpsiPbPb2760c8; + } else if (sname == "PbPb 2.76c9") { + func=YJpsiPbPb2760c9; + } else if (sname == "PbPb 2.76c10") { + func=YJpsiPbPb2760c10; + } else if (sname == "PbPb 2.76c11") { + func=YJpsiPbPb2760c11; + } else if (sname == "pp 7 poly") { + func=YJpsiPPpoly7000; + } else if (sname == "pp 2.76 poly") { + func=YJpsiPPpoly2760; + } else if (sname == "pp 8.8") { + func=YJpsiPP8800; + } else if (sname == "pPb 8.8") { + func=YJpsiPPb8800; + } else if (sname == "pPb 8.8c1") { + func=YJpsiPPb8800c1; + } else if (sname == "pPb 8.8c2") { + func=YJpsiPPb8800c2; + } else if (sname == "pPb 8.8c3") { + func=YJpsiPPb8800c3; + } else if (sname == "pPb 8.8c4") { + func=YJpsiPPb8800c4; + } else if (sname == "Pbp 8.8") { + func=YJpsiPbP8800; + } else if (sname == "Pbp 8.8c1") { + func=YJpsiPbP8800c1; + } else if (sname == "Pbp 8.8c2") { + func=YJpsiPbP8800c2; + } else if (sname == "Pbp 8.8c3") { + func=YJpsiPbP8800c3; + } else if (sname == "Pbp 8.8c4") { + func=YJpsiPbP8800c4; } else if (sname == "CDF scaled") { func=YJpsiCDFscaled; } else if (sname == "CDF pp") { @@ -2516,6 +3718,60 @@ GenFunc AliGenMUONlib::GetY(Int_t param, const char* tname) const func=YUpsilonPbPb; } else if (sname == "Vogt pp") { func = YUpsilonPP; + } else if (sname == "pp 7") { + func=YUpsilonPP7000; + } else if (sname == "pp 2.76") { + func=YUpsilonPP2760; + } else if (sname == "PbPb 2.76") { + func=YUpsilonPbPb2760; + } else if (sname == "PbPb 2.76c1") { + func=YUpsilonPbPb2760c1; + } else if (sname == "PbPb 2.76c2") { + func=YUpsilonPbPb2760c2; + } else if (sname == "PbPb 2.76c3") { + func=YUpsilonPbPb2760c3; + } else if (sname == "PbPb 2.76c4") { + func=YUpsilonPbPb2760c4; + } else if (sname == "PbPb 2.76c5") { + func=YUpsilonPbPb2760c5; + } else if (sname == "PbPb 2.76c6") { + func=YUpsilonPbPb2760c6; + } else if (sname == "PbPb 2.76c7") { + func=YUpsilonPbPb2760c7; + } else if (sname == "PbPb 2.76c8") { + func=YUpsilonPbPb2760c8; + } else if (sname == "PbPb 2.76c9") { + func=YUpsilonPbPb2760c9; + } else if (sname == "PbPb 2.76c10") { + func=YUpsilonPbPb2760c10; + } else if (sname == "PbPb 2.76c11") { + func=YUpsilonPbPb2760c11; + } else if (sname == "pp 7 poly") { + func=YUpsilonPPpoly7000; + } else if (sname == "pp 2.76 poly") { + func=YUpsilonPPpoly2760; + } else if (sname == "pp 8.8") { + func=YUpsilonPP8800; + } else if (sname == "pPb 8.8") { + func=YUpsilonPPb8800; + } else if (sname == "pPb 8.8c1") { + func=YUpsilonPPb8800c1; + } else if (sname == "pPb 8.8c2") { + func=YUpsilonPPb8800c2; + } else if (sname == "pPb 8.8c3") { + func=YUpsilonPPb8800c3; + } else if (sname == "pPb 8.8c4") { + func=YUpsilonPPb8800c4; + } else if (sname == "Pbp 8.8") { + func=YUpsilonPbP8800; + } else if (sname == "Pbp 8.8c1") { + func=YUpsilonPbP8800c1; + } else if (sname == "Pbp 8.8c2") { + func=YUpsilonPbP8800c2; + } else if (sname == "Pbp 8.8c3") { + func=YUpsilonPbP8800c3; + } else if (sname == "Pbp 8.8c4") { + func=YUpsilonPbP8800c4; } else if (sname == "CDF scaled") { func=YUpsilonCDFscaled; } else if (sname == "CDF pp") { diff --git a/EVGEN/AliGenMUONlib.h b/EVGEN/AliGenMUONlib.h index 12296802de9..c8f1a922840 100644 --- a/EVGEN/AliGenMUONlib.h +++ b/EVGEN/AliGenMUONlib.h @@ -34,7 +34,7 @@ class AliGenMUONlib : static Double_t PtKaon(const Double_t *px, const Double_t *dummy); static Double_t YKaon( const Double_t *py, const Double_t *dummy); static Int_t IpKaon(TRandom *ran); -// XZhang 20100621 +// XZhang 20110621 static Double_t PtPionPos2010PP(const Double_t *px, const Double_t *dummy); static Double_t PtPionNeg2010PP(const Double_t *px, const Double_t *dummy); static Double_t PtKaonPos2010PP(const Double_t *px, const Double_t *dummy); @@ -57,9 +57,35 @@ 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 PtJpsiPPdummy(Double_t px, Double_t en); + 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 PtJpsiPP8800(const Double_t *px, const Double_t *dummy); + static Double_t PtJpsiPbPb2760ShFdummy(Double_t px, Int_t n); + static Double_t PtJpsiPbPb2760(const Double_t *px, const Double_t *dummy); + static Double_t PtJpsiPbPb2760c1(const Double_t *px, const Double_t *dummy); + static Double_t PtJpsiPbPb2760c2(const Double_t *px, const Double_t *dummy); + static Double_t PtJpsiPbPb2760c3(const Double_t *px, const Double_t *dummy); + static Double_t PtJpsiPbPb2760c4(const Double_t *px, const Double_t *dummy); + static Double_t PtJpsiPbPb2760c5(const Double_t *px, const Double_t *dummy); + static Double_t PtJpsiPbPb2760c6(const Double_t *px, const Double_t *dummy); + static Double_t PtJpsiPbPb2760c7(const Double_t *px, const Double_t *dummy); + static Double_t PtJpsiPbPb2760c8(const Double_t *px, const Double_t *dummy); + static Double_t PtJpsiPbPb2760c9(const Double_t *px, const Double_t *dummy); + static Double_t PtJpsiPbPb2760c10(const Double_t *px, const Double_t *dummy); + static Double_t PtJpsiPbPb2760c11(const Double_t *px, const Double_t *dummy); + static Double_t PtJpsiPPb8800ShFdummy(Double_t px, Int_t n); + static Double_t PtJpsiPPb8800(const Double_t *px, const Double_t *dummy); + static Double_t PtJpsiPPb8800c1(const Double_t *px, const Double_t *dummy); + static Double_t PtJpsiPPb8800c2(const Double_t *px, const Double_t *dummy); + static Double_t PtJpsiPPb8800c3(const Double_t *px, const Double_t *dummy); + static Double_t PtJpsiPPb8800c4(const Double_t *px, const Double_t *dummy); + static Double_t PtJpsiPbP8800ShFdummy(Double_t px, Int_t n); + static Double_t PtJpsiPbP8800(const Double_t *px, const Double_t *dummy); + static Double_t PtJpsiPbP8800c1(const Double_t *px, const Double_t *dummy); + static Double_t PtJpsiPbP8800c2(const Double_t *px, const Double_t *dummy); + static Double_t PtJpsiPbP8800c3(const Double_t *px, const Double_t *dummy); + static Double_t PtJpsiPbP8800c4(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); @@ -75,9 +101,39 @@ class AliGenMUONlib : 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 YJpsiPPdummy(Double_t px, Double_t en); + static Double_t YJpsiPPpoly(Double_t px, Double_t en); + 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 YJpsiPPpoly7000(const Double_t *px, const Double_t *dummy); + static Double_t YJpsiPPpoly2760(const Double_t *px, const Double_t *dummy); + static Double_t YJpsiPP8800(const Double_t *px, const Double_t *dummy); + static Double_t YJpsiPbPb2760ShFdummy(Double_t px, Int_t n); + static Double_t YJpsiPbPb2760(const Double_t *px, const Double_t *dummy); + static Double_t YJpsiPbPb2760c1(const Double_t *px, const Double_t *dummy); + static Double_t YJpsiPbPb2760c2(const Double_t *px, const Double_t *dummy); + static Double_t YJpsiPbPb2760c3(const Double_t *px, const Double_t *dummy); + static Double_t YJpsiPbPb2760c4(const Double_t *px, const Double_t *dummy); + static Double_t YJpsiPbPb2760c5(const Double_t *px, const Double_t *dummy); + static Double_t YJpsiPbPb2760c6(const Double_t *px, const Double_t *dummy); + static Double_t YJpsiPbPb2760c7(const Double_t *px, const Double_t *dummy); + static Double_t YJpsiPbPb2760c8(const Double_t *px, const Double_t *dummy); + static Double_t YJpsiPbPb2760c9(const Double_t *px, const Double_t *dummy); + static Double_t YJpsiPbPb2760c10(const Double_t *px, const Double_t *dummy); + static Double_t YJpsiPbPb2760c11(const Double_t *px, const Double_t *dummy); + static Double_t YJpsiPP8800dummy(Double_t px); + static Double_t YJpsiPPb8800ShFdummy(Double_t px, Int_t n); + static Double_t YJpsiPPb8800(const Double_t *px, const Double_t *dummy); + static Double_t YJpsiPPb8800c1(const Double_t *px, const Double_t *dummy); + static Double_t YJpsiPPb8800c2(const Double_t *px, const Double_t *dummy); + static Double_t YJpsiPPb8800c3(const Double_t *px, const Double_t *dummy); + static Double_t YJpsiPPb8800c4(const Double_t *px, const Double_t *dummy); + static Double_t YJpsiPbP8800(const Double_t *px, const Double_t *dummy); + static Double_t YJpsiPbP8800c1(const Double_t *px, const Double_t *dummy); + static Double_t YJpsiPbP8800c2(const Double_t *px, const Double_t *dummy); + static Double_t YJpsiPbP8800c3(const Double_t *px, const Double_t *dummy); + static Double_t YJpsiPbP8800c4(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); @@ -101,6 +157,35 @@ class AliGenMUONlib : static Double_t YJpsiFlat(const Double_t *py, const Double_t *dummy); // Upsilon + static Double_t PtUpsilonPPdummy(Double_t px, Double_t en); + static Double_t PtUpsilonPP7000(const Double_t *px, const Double_t *dummy ); + static Double_t PtUpsilonPP2760(const Double_t *px, const Double_t *dummy ); + static Double_t PtUpsilonPP8800(const Double_t *px, const Double_t *dummy ); + static Double_t PtUpsilonPbPb2760ShFdummy(Double_t px, Int_t n); + static Double_t PtUpsilonPbPb2760(const Double_t *px, const Double_t *dummy ); + static Double_t PtUpsilonPbPb2760c1(const Double_t *px, const Double_t *dummy ); + static Double_t PtUpsilonPbPb2760c2(const Double_t *px, const Double_t *dummy ); + static Double_t PtUpsilonPbPb2760c3(const Double_t *px, const Double_t *dummy ); + static Double_t PtUpsilonPbPb2760c4(const Double_t *px, const Double_t *dummy ); + static Double_t PtUpsilonPbPb2760c5(const Double_t *px, const Double_t *dummy ); + static Double_t PtUpsilonPbPb2760c6(const Double_t *px, const Double_t *dummy ); + static Double_t PtUpsilonPbPb2760c7(const Double_t *px, const Double_t *dummy ); + static Double_t PtUpsilonPbPb2760c8(const Double_t *px, const Double_t *dummy ); + static Double_t PtUpsilonPbPb2760c9(const Double_t *px, const Double_t *dummy ); + static Double_t PtUpsilonPbPb2760c10(const Double_t *px, const Double_t *dummy ); + static Double_t PtUpsilonPbPb2760c11(const Double_t *px, const Double_t *dummy ); + static Double_t PtUpsilonPPb8800ShFdummy(Double_t px, Int_t n); + static Double_t PtUpsilonPPb8800(const Double_t *px, const Double_t *dummy ); + static Double_t PtUpsilonPPb8800c1(const Double_t *px, const Double_t *dummy ); + static Double_t PtUpsilonPPb8800c2(const Double_t *px, const Double_t *dummy ); + static Double_t PtUpsilonPPb8800c3(const Double_t *px, const Double_t *dummy ); + static Double_t PtUpsilonPPb8800c4(const Double_t *px, const Double_t *dummy ); + static Double_t PtUpsilonPbP8800ShFdummy(Double_t px, Int_t n); + static Double_t PtUpsilonPbP8800(const Double_t *px, const Double_t *dummy ); + static Double_t PtUpsilonPbP8800c1(const Double_t *px, const Double_t *dummy ); + static Double_t PtUpsilonPbP8800c2(const Double_t *px, const Double_t *dummy ); + static Double_t PtUpsilonPbP8800c3(const Double_t *px, const Double_t *dummy ); + static Double_t PtUpsilonPbP8800c4(const Double_t *px, const Double_t *dummy ); static Double_t PtUpsilon( const Double_t *px, const Double_t *dummy ); static Double_t PtUpsilonCDFscaled( const Double_t *px, const Double_t *dummy ); static Double_t PtUpsilonCDFscaledPP( const Double_t *px, const Double_t *dummy ); @@ -111,6 +196,39 @@ class AliGenMUONlib : static Double_t PtUpsilonCDFscaledPPb9( const Double_t *px, const Double_t *dummy ); static Double_t PtUpsilonCDFscaledPbP9( const Double_t *px, const Double_t *dummy ); static Double_t PtUpsilonCDFscaledPbPb4( const Double_t *px, const Double_t *dummy ); + + static Double_t YUpsilonPPdummy(Double_t px, Double_t en); + static Double_t YUpsilonPPpoly(Double_t px, Double_t en); + static Double_t YUpsilonPP7000(const Double_t *px, const Double_t *dummy ); + static Double_t YUpsilonPP2760(const Double_t *px, const Double_t *dummy ); + static Double_t YUpsilonPPpoly7000(const Double_t *px, const Double_t *dummy ); + static Double_t YUpsilonPPpoly2760(const Double_t *px, const Double_t *dummy ); + static Double_t YUpsilonPP8800(const Double_t *px, const Double_t *dummy ); + static Double_t YUpsilonPbPb2760ShFdummy(Double_t px, Int_t n); + static Double_t YUpsilonPbPb2760(const Double_t *px, const Double_t *dummy ); + static Double_t YUpsilonPbPb2760c1(const Double_t *px, const Double_t *dummy ); + static Double_t YUpsilonPbPb2760c2(const Double_t *px, const Double_t *dummy ); + static Double_t YUpsilonPbPb2760c3(const Double_t *px, const Double_t *dummy ); + static Double_t YUpsilonPbPb2760c4(const Double_t *px, const Double_t *dummy ); + static Double_t YUpsilonPbPb2760c5(const Double_t *px, const Double_t *dummy ); + static Double_t YUpsilonPbPb2760c6(const Double_t *px, const Double_t *dummy ); + static Double_t YUpsilonPbPb2760c7(const Double_t *px, const Double_t *dummy ); + static Double_t YUpsilonPbPb2760c8(const Double_t *px, const Double_t *dummy ); + static Double_t YUpsilonPbPb2760c9(const Double_t *px, const Double_t *dummy ); + static Double_t YUpsilonPbPb2760c10(const Double_t *px, const Double_t *dummy ); + static Double_t YUpsilonPbPb2760c11(const Double_t *px, const Double_t *dummy ); + static Double_t YUpsilonPP8800dummy(Double_t px); + static Double_t YUpsilonPPb8800ShFdummy(Double_t px, Int_t n); + static Double_t YUpsilonPPb8800(const Double_t *px, const Double_t *dummy ); + static Double_t YUpsilonPPb8800c1(const Double_t *px, const Double_t *dummy ); + static Double_t YUpsilonPPb8800c2(const Double_t *px, const Double_t *dummy ); + static Double_t YUpsilonPPb8800c3(const Double_t *px, const Double_t *dummy ); + static Double_t YUpsilonPPb8800c4(const Double_t *px, const Double_t *dummy ); + static Double_t YUpsilonPbP8800(const Double_t *px, const Double_t *dummy ); + static Double_t YUpsilonPbP8800c1(const Double_t *px, const Double_t *dummy ); + static Double_t YUpsilonPbP8800c2(const Double_t *px, const Double_t *dummy ); + static Double_t YUpsilonPbP8800c3(const Double_t *px, const Double_t *dummy ); + static Double_t YUpsilonPbP8800c4(const Double_t *px, const Double_t *dummy ); static Double_t YUpsilon(const Double_t *py, const Double_t *dummy); static Double_t YUpsilonCDFscaled(const Double_t *py, const Double_t *dummy); static Double_t YUpsilonCDFscaledPP( const Double_t *px, const Double_t *dummy ); -- 2.39.3