ROOT logo
#ifndef ALIGENMUONLIB_H
#define ALIGENMUONLIB_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

// Library class for particle pt and y distributions used for 
// muon spectrometer simulations.
// To be used with AliGenParam.
//
// andreas.morsch@cern.ch

#include "AliGenLib.h"

class AliGenMUONlib :
  public AliGenLib
{
 public:
  enum constants{kPhi, kOmega, kEta, kJpsi, kJpsiFamily, kPsiP, kJpsiFromB, kUpsilon, kUpsilonFamily,
		   kUpsilonP, kUpsilonPP, kCharm, kBeauty, kPion, kKaon, kChic, kChic0, kChic1, kChic2 }; 
    
    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;
 private:
    
// pions
    static Double_t PtPion(const Double_t *px, const Double_t *dummy);
    static Double_t PtScal(Double_t pt, Int_t np);
    static Double_t YPion( const Double_t *py, const Double_t *dummy);
    static Int_t    IpPion(TRandom *ran);
// kaons
    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 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);
    static Double_t PtKaonNeg2010PP(const Double_t *px, const Double_t *dummy);
    static Double_t YKaonPion2010PP(const Double_t *px, const Double_t *dummy);
    static Int_t    IpPionPos(TRandom *ran);
    static Int_t    IpPionNeg(TRandom *ran);
    static Int_t    IpKaonPos(TRandom *ran);
    static Int_t    IpKaonNeg(TRandom *ran);
// Phi
    static Double_t PtPhi( const Double_t *px, const Double_t *dummy);
    static Double_t YPhi( const  Double_t *px, const Double_t *dummy);
    static Int_t    IpPhi(TRandom *ran);
// Omega
    static Double_t PtOmega( const Double_t *px, const Double_t *dummy);
    static Double_t YOmega( const Double_t *px, const Double_t *dummy);
    static Int_t    IpOmega(TRandom *ran);
// Eta
    static Double_t PtEta( const Double_t *px, const Double_t *dummy);
    static Double_t YEta( const Double_t *px, const Double_t *dummy);
    static Int_t    IpEta(TRandom *ran);
// J/Psi     
    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 PtJpsiPP8000(const Double_t *px, const Double_t *dummy);
    static Double_t PtJpsiPP2760(const Double_t *px, const Double_t *dummy);
    static Double_t PtJpsiPP4400(const Double_t *px, const Double_t *dummy);	
    static Double_t PtJpsiPP5030(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 PtJpsiPPb5030ShFdummy(Double_t px, Int_t n);
    static Double_t PtJpsiPPb5030(const Double_t *px, const Double_t *dummy);
    static Double_t PtJpsiPPb5030c1(const Double_t *px, const Double_t *dummy);
    static Double_t PtJpsiPPb5030c2(const Double_t *px, const Double_t *dummy);
    static Double_t PtJpsiPPb5030c3(const Double_t *px, const Double_t *dummy);
    static Double_t PtJpsiPPb5030c4(const Double_t *px, const Double_t *dummy);
    static Double_t PtJpsiPbP5030ShFdummy(Double_t px, Int_t n);
    static Double_t PtJpsiPbP5030(const Double_t *px, const Double_t *dummy);
    static Double_t PtJpsiPbP5030c1(const Double_t *px, const Double_t *dummy);
    static Double_t PtJpsiPbP5030c2(const Double_t *px, const Double_t *dummy);
    static Double_t PtJpsiPbP5030c3(const Double_t *px, const Double_t *dummy);
    static Double_t PtJpsiPbP5030c4(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);
    static Double_t PtJpsiCDFscaledPP10( const Double_t *px, const Double_t *dummy);
    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 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 YJpsiPP8000(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 YJpsiPP4400(const Double_t *px, const Double_t *dummy);	
    static Double_t YJpsiPP5030(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 YJpsiPP5030dummy(Double_t px);
    static Double_t YJpsiPPb5030ShFdummy(Double_t px, Int_t n);
    static Double_t YJpsiPPb5030(const Double_t *px, const Double_t *dummy);
    static Double_t YJpsiPPb5030c1(const Double_t *px, const Double_t *dummy);
    static Double_t YJpsiPPb5030c2(const Double_t *px, const Double_t *dummy);
    static Double_t YJpsiPPb5030c3(const Double_t *px, const Double_t *dummy);
    static Double_t YJpsiPPb5030c4(const Double_t *px, const Double_t *dummy);
    static Double_t YJpsiPbP5030(const Double_t *px, const Double_t *dummy);
    static Double_t YJpsiPbP5030c1(const Double_t *px, const Double_t *dummy);
    static Double_t YJpsiPbP5030c2(const Double_t *px, const Double_t *dummy);
    static Double_t YJpsiPbP5030c3(const Double_t *px, const Double_t *dummy);
    static Double_t YJpsiPbP5030c4(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);
    static Double_t YJpsiCDFscaledPP10( const Double_t *px, const Double_t *dummy);
    static Double_t YJpsiCDFscaledPP9( const Double_t *px, const Double_t *dummy);
    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);
    static Double_t PtJpsiPP( const Double_t *px, const Double_t *dummy);
    static Double_t YJpsiPP(const Double_t *py, const Double_t *dummy);
    static Double_t YJpsiBPbPb(const Double_t *py, const Double_t *dummy);
    static Int_t    IpJpsi(TRandom *ran);
    static Int_t    IpJpsiFamily(TRandom *ran);
    static Int_t    IpPsiP(TRandom *ran);
    static Double_t PtJpsiFlat( const Double_t *px, const Double_t *dummy );
    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 PtUpsilonPP8000(const Double_t *px, const Double_t *dummy );
    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 PtUpsilonPP4400(const Double_t *px, const Double_t *dummy );
    static Double_t PtUpsilonPP5030(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 PtUpsilonPPb5030ShFdummy(Double_t px, Int_t n);
    static Double_t PtUpsilonPPb5030(const Double_t *px, const Double_t *dummy );
    static Double_t PtUpsilonPPb5030c1(const Double_t *px, const Double_t *dummy );
    static Double_t PtUpsilonPPb5030c2(const Double_t *px, const Double_t *dummy );
    static Double_t PtUpsilonPPb5030c3(const Double_t *px, const Double_t *dummy );
    static Double_t PtUpsilonPPb5030c4(const Double_t *px, const Double_t *dummy );
    static Double_t PtUpsilonPbP5030ShFdummy(Double_t px, Int_t n);
    static Double_t PtUpsilonPbP5030(const Double_t *px, const Double_t *dummy );
    static Double_t PtUpsilonPbP5030c1(const Double_t *px, const Double_t *dummy );
    static Double_t PtUpsilonPbP5030c2(const Double_t *px, const Double_t *dummy );
    static Double_t PtUpsilonPbP5030c3(const Double_t *px, const Double_t *dummy );
    static Double_t PtUpsilonPbP5030c4(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 );
    static Double_t PtUpsilonCDFscaledPP10( const Double_t *px, const Double_t *dummy );
    static Double_t PtUpsilonCDFscaledPP9( const Double_t *px, const Double_t *dummy );
    static Double_t PtUpsilonCDFscaledPP7( const Double_t *px, const Double_t *dummy );
    static Double_t PtUpsilonCDFscaledPP4( const Double_t *px, const Double_t *dummy );
    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 YUpsilonPP8000(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 YUpsilonPP4400(const Double_t *px, const Double_t *dummy );
    static Double_t YUpsilonPP5030(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 YUpsilonPP5030dummy(Double_t px);
    static Double_t YUpsilonPPb5030ShFdummy(Double_t px, Int_t n);
    static Double_t YUpsilonPPb5030(const Double_t *px, const Double_t *dummy );
    static Double_t YUpsilonPPb5030c1(const Double_t *px, const Double_t *dummy );
    static Double_t YUpsilonPPb5030c2(const Double_t *px, const Double_t *dummy );
    static Double_t YUpsilonPPb5030c3(const Double_t *px, const Double_t *dummy );
    static Double_t YUpsilonPPb5030c4(const Double_t *px, const Double_t *dummy );
    static Double_t YUpsilonPbP5030(const Double_t *px, const Double_t *dummy );
    static Double_t YUpsilonPbP5030c1(const Double_t *px, const Double_t *dummy );
    static Double_t YUpsilonPbP5030c2(const Double_t *px, const Double_t *dummy );
    static Double_t YUpsilonPbP5030c3(const Double_t *px, const Double_t *dummy );
    static Double_t YUpsilonPbP5030c4(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 );
    static Double_t YUpsilonCDFscaledPP10( const Double_t *px, const Double_t *dummy );
    static Double_t YUpsilonCDFscaledPP9( const Double_t *px, const Double_t *dummy );
    static Double_t YUpsilonCDFscaledPP9dummy(Double_t px);
    static Double_t YUpsilonCDFscaledPP7( const Double_t *px, const Double_t *dummy );
    static Double_t YUpsilonCDFscaledPP4( const Double_t *px, const Double_t *dummy );
    static Double_t YUpsilonCDFscaledPPb9( const Double_t *px, const Double_t *dummy );
    static Double_t YUpsilonCDFscaledPbP9( const Double_t *px, const Double_t *dummy );
    static Double_t YUpsilonCDFscaledPbPb4( const Double_t *px, const Double_t *dummy );
    static Double_t PtUpsilonPbPb( const Double_t *px, const Double_t *dummy );
    static Double_t YUpsilonPbPb(const Double_t *py, const Double_t *dummy);
    static Double_t PtUpsilonPP( const Double_t *px, const Double_t *dummy );
    static Double_t YUpsilonPP(const Double_t *py, const Double_t *dummy);
    static Int_t    IpUpsilon(TRandom *ran);
    static Int_t    IpUpsilonFamily(TRandom *ran);
    static Int_t    IpUpsilonP(TRandom *ran);
    static Int_t    IpUpsilonPP(TRandom *ran);
    static Double_t PtUpsilonFlat( const Double_t *px, const Double_t *dummy );
    static Double_t YUpsilonFlat(const Double_t *py, const Double_t *dummy);
//
// Charm    
    static Double_t PtCharm( const Double_t *px, const Double_t *dummy );
    static Double_t PtCharmCentral( const Double_t *px, const Double_t *dummy );
    static Double_t PtCharmF0M0S0PP( const Double_t *px, const Double_t *dummy );
    static Double_t PtCharmF1M0S0PP( const Double_t *px, const Double_t *dummy );
    static Double_t PtCharmF2M0S0PP( const Double_t *px, const Double_t *dummy );
    static Double_t PtCharmF0M1S0PP( const Double_t *px, const Double_t *dummy );
    static Double_t PtCharmF0M2S0PP( const Double_t *px, const Double_t *dummy );
    static Double_t PtCharmF0M0S1PP( const Double_t *px, const Double_t *dummy );
    static Double_t PtCharmF0M0S2PP( const Double_t *px, const Double_t *dummy );
    static Double_t PtCharmF0M0S3PP( const Double_t *px, const Double_t *dummy );
    static Double_t PtCharmF0M0S4PP( const Double_t *px, const Double_t *dummy );
    static Double_t PtCharmF0M0S5PP( const Double_t *px, const Double_t *dummy );
    static Double_t PtCharmF0M0S6PP( const Double_t *px, const Double_t *dummy );
    static Double_t YCharm(const Double_t *py, const Double_t *dummy);
    static Double_t YCharmF0M0S0PP(const Double_t *py, const Double_t *dummy);
    static Double_t YCharmF1M0S0PP(const Double_t *py, const Double_t *dummy);
    static Double_t YCharmF2M0S0PP(const Double_t *py, const Double_t *dummy);
    static Double_t YCharmF0M1S0PP(const Double_t *py, const Double_t *dummy);
    static Double_t YCharmF0M2S0PP(const Double_t *py, const Double_t *dummy);
    static Double_t YCharmF0M0S1PP(const Double_t *py, const Double_t *dummy);
    static Double_t YCharmF0M0S2PP(const Double_t *py, const Double_t *dummy);
    static Double_t YCharmF0M0S3PP(const Double_t *py, const Double_t *dummy);
    static Double_t YCharmF0M0S4PP(const Double_t *py, const Double_t *dummy);
    static Double_t YCharmF0M0S5PP(const Double_t *py, const Double_t *dummy);
    static Double_t YCharmF0M0S6PP(const Double_t *py, const Double_t *dummy);
    static Int_t    IpCharm(TRandom *ran);
//
// Beauty
    static Double_t PtBeauty( const Double_t *px, const Double_t *dummy );
    static Double_t PtBeautyF0M0S0PP( const Double_t *px, const Double_t *dummy );
    static Double_t PtBeautyF1M0S0PP( const Double_t *px, const Double_t *dummy );
    static Double_t PtBeautyF2M0S0PP( const Double_t *px, const Double_t *dummy );
    static Double_t PtBeautyF0M1S0PP( const Double_t *px, const Double_t *dummy );
    static Double_t PtBeautyF0M2S0PP( const Double_t *px, const Double_t *dummy );
    static Double_t PtBeautyF0M0S1PP( const Double_t *px, const Double_t *dummy );
    static Double_t PtBeautyF0M0S2PP( const Double_t *px, const Double_t *dummy );
    static Double_t PtBeautyF0M0S3PP( const Double_t *px, const Double_t *dummy );
    static Double_t PtBeautyF0M0S4PP( const Double_t *px, const Double_t *dummy );
    static Double_t PtBeautyF0M0S5PP( const Double_t *px, const Double_t *dummy );
    static Double_t PtBeautyF0M0S6PP( const Double_t *px, const Double_t *dummy );
    static Double_t YBeauty(const Double_t *py, const Double_t *dummy);
    static Double_t YBeautyF0M0S0PP(const Double_t *py, const Double_t *dummy);
    static Double_t YBeautyF1M0S0PP(const Double_t *py, const Double_t *dummy);
    static Double_t YBeautyF2M0S0PP(const Double_t *py, const Double_t *dummy);
    static Double_t YBeautyF0M1S0PP(const Double_t *py, const Double_t *dummy);
    static Double_t YBeautyF0M2S0PP(const Double_t *py, const Double_t *dummy);
    static Double_t YBeautyF0M0S1PP(const Double_t *py, const Double_t *dummy);
    static Double_t YBeautyF0M0S2PP(const Double_t *py, const Double_t *dummy);
    static Double_t YBeautyF0M0S3PP(const Double_t *py, const Double_t *dummy);
    static Double_t YBeautyF0M0S4PP(const Double_t *py, const Double_t *dummy);
    static Double_t YBeautyF0M0S5PP(const Double_t *py, const Double_t *dummy);
    static Double_t YBeautyF0M0S6PP(const Double_t *py, const Double_t *dummy);
    static Double_t PtBeautyCentral( const Double_t *px, const Double_t *dummy );
    static Int_t    IpBeauty(TRandom *ran);
//

   // Chi 1c 2c
   static Double_t PtChic0( const Double_t *px, const Double_t *dummy);
   static Double_t YChic0(const Double_t *py, const Double_t *dummy);
   static Int_t    IpChic0(TRandom *ran);

   static Double_t PtChic1( const Double_t *px, const Double_t *dummy);
   static Double_t YChic1(const Double_t *py, const Double_t *dummy);
   static Int_t    IpChic1(TRandom *ran);

   static Double_t PtChic2( const Double_t *px, const Double_t *dummy);
   static Double_t YChic2(const Double_t *py, const Double_t *dummy);
   static Int_t    IpChic2(TRandom *ran);

   static Double_t PtChic( const Double_t *px, const Double_t *dummy);
   static Double_t YChic(const Double_t *py, const Double_t *dummy);
   static Int_t    IpChic(TRandom *ran);

//

    
    static Float_t Interpolate(Float_t x, Float_t* y, Float_t x0, 
			Float_t dx,
			Int_t n, Int_t no);
    
    ClassDef(AliGenMUONlib,0) // Library providing y and pT parameterisations
};
#endif







 AliGenMUONlib.h:1
 AliGenMUONlib.h:2
 AliGenMUONlib.h:3
 AliGenMUONlib.h:4
 AliGenMUONlib.h:5
 AliGenMUONlib.h:6
 AliGenMUONlib.h:7
 AliGenMUONlib.h:8
 AliGenMUONlib.h:9
 AliGenMUONlib.h:10
 AliGenMUONlib.h:11
 AliGenMUONlib.h:12
 AliGenMUONlib.h:13
 AliGenMUONlib.h:14
 AliGenMUONlib.h:15
 AliGenMUONlib.h:16
 AliGenMUONlib.h:17
 AliGenMUONlib.h:18
 AliGenMUONlib.h:19
 AliGenMUONlib.h:20
 AliGenMUONlib.h:21
 AliGenMUONlib.h:22
 AliGenMUONlib.h:23
 AliGenMUONlib.h:24
 AliGenMUONlib.h:25
 AliGenMUONlib.h:26
 AliGenMUONlib.h:27
 AliGenMUONlib.h:28
 AliGenMUONlib.h:29
 AliGenMUONlib.h:30
 AliGenMUONlib.h:31
 AliGenMUONlib.h:32
 AliGenMUONlib.h:33
 AliGenMUONlib.h:34
 AliGenMUONlib.h:35
 AliGenMUONlib.h:36
 AliGenMUONlib.h:37
 AliGenMUONlib.h:38
 AliGenMUONlib.h:39
 AliGenMUONlib.h:40
 AliGenMUONlib.h:41
 AliGenMUONlib.h:42
 AliGenMUONlib.h:43
 AliGenMUONlib.h:44
 AliGenMUONlib.h:45
 AliGenMUONlib.h:46
 AliGenMUONlib.h:47
 AliGenMUONlib.h:48
 AliGenMUONlib.h:49
 AliGenMUONlib.h:50
 AliGenMUONlib.h:51
 AliGenMUONlib.h:52
 AliGenMUONlib.h:53
 AliGenMUONlib.h:54
 AliGenMUONlib.h:55
 AliGenMUONlib.h:56
 AliGenMUONlib.h:57
 AliGenMUONlib.h:58
 AliGenMUONlib.h:59
 AliGenMUONlib.h:60
 AliGenMUONlib.h:61
 AliGenMUONlib.h:62
 AliGenMUONlib.h:63
 AliGenMUONlib.h:64
 AliGenMUONlib.h:65
 AliGenMUONlib.h:66
 AliGenMUONlib.h:67
 AliGenMUONlib.h:68
 AliGenMUONlib.h:69
 AliGenMUONlib.h:70
 AliGenMUONlib.h:71
 AliGenMUONlib.h:72
 AliGenMUONlib.h:73
 AliGenMUONlib.h:74
 AliGenMUONlib.h:75
 AliGenMUONlib.h:76
 AliGenMUONlib.h:77
 AliGenMUONlib.h:78
 AliGenMUONlib.h:79
 AliGenMUONlib.h:80
 AliGenMUONlib.h:81
 AliGenMUONlib.h:82
 AliGenMUONlib.h:83
 AliGenMUONlib.h:84
 AliGenMUONlib.h:85
 AliGenMUONlib.h:86
 AliGenMUONlib.h:87
 AliGenMUONlib.h:88
 AliGenMUONlib.h:89
 AliGenMUONlib.h:90
 AliGenMUONlib.h:91
 AliGenMUONlib.h:92
 AliGenMUONlib.h:93
 AliGenMUONlib.h:94
 AliGenMUONlib.h:95
 AliGenMUONlib.h:96
 AliGenMUONlib.h:97
 AliGenMUONlib.h:98
 AliGenMUONlib.h:99
 AliGenMUONlib.h:100
 AliGenMUONlib.h:101
 AliGenMUONlib.h:102
 AliGenMUONlib.h:103
 AliGenMUONlib.h:104
 AliGenMUONlib.h:105
 AliGenMUONlib.h:106
 AliGenMUONlib.h:107
 AliGenMUONlib.h:108
 AliGenMUONlib.h:109
 AliGenMUONlib.h:110
 AliGenMUONlib.h:111
 AliGenMUONlib.h:112
 AliGenMUONlib.h:113
 AliGenMUONlib.h:114
 AliGenMUONlib.h:115
 AliGenMUONlib.h:116
 AliGenMUONlib.h:117
 AliGenMUONlib.h:118
 AliGenMUONlib.h:119
 AliGenMUONlib.h:120
 AliGenMUONlib.h:121
 AliGenMUONlib.h:122
 AliGenMUONlib.h:123
 AliGenMUONlib.h:124
 AliGenMUONlib.h:125
 AliGenMUONlib.h:126
 AliGenMUONlib.h:127
 AliGenMUONlib.h:128
 AliGenMUONlib.h:129
 AliGenMUONlib.h:130
 AliGenMUONlib.h:131
 AliGenMUONlib.h:132
 AliGenMUONlib.h:133
 AliGenMUONlib.h:134
 AliGenMUONlib.h:135
 AliGenMUONlib.h:136
 AliGenMUONlib.h:137
 AliGenMUONlib.h:138
 AliGenMUONlib.h:139
 AliGenMUONlib.h:140
 AliGenMUONlib.h:141
 AliGenMUONlib.h:142
 AliGenMUONlib.h:143
 AliGenMUONlib.h:144
 AliGenMUONlib.h:145
 AliGenMUONlib.h:146
 AliGenMUONlib.h:147
 AliGenMUONlib.h:148
 AliGenMUONlib.h:149
 AliGenMUONlib.h:150
 AliGenMUONlib.h:151
 AliGenMUONlib.h:152
 AliGenMUONlib.h:153
 AliGenMUONlib.h:154
 AliGenMUONlib.h:155
 AliGenMUONlib.h:156
 AliGenMUONlib.h:157
 AliGenMUONlib.h:158
 AliGenMUONlib.h:159
 AliGenMUONlib.h:160
 AliGenMUONlib.h:161
 AliGenMUONlib.h:162
 AliGenMUONlib.h:163
 AliGenMUONlib.h:164
 AliGenMUONlib.h:165
 AliGenMUONlib.h:166
 AliGenMUONlib.h:167
 AliGenMUONlib.h:168
 AliGenMUONlib.h:169
 AliGenMUONlib.h:170
 AliGenMUONlib.h:171
 AliGenMUONlib.h:172
 AliGenMUONlib.h:173
 AliGenMUONlib.h:174
 AliGenMUONlib.h:175
 AliGenMUONlib.h:176
 AliGenMUONlib.h:177
 AliGenMUONlib.h:178
 AliGenMUONlib.h:179
 AliGenMUONlib.h:180
 AliGenMUONlib.h:181
 AliGenMUONlib.h:182
 AliGenMUONlib.h:183
 AliGenMUONlib.h:184
 AliGenMUONlib.h:185
 AliGenMUONlib.h:186
 AliGenMUONlib.h:187
 AliGenMUONlib.h:188
 AliGenMUONlib.h:189
 AliGenMUONlib.h:190
 AliGenMUONlib.h:191
 AliGenMUONlib.h:192
 AliGenMUONlib.h:193
 AliGenMUONlib.h:194
 AliGenMUONlib.h:195
 AliGenMUONlib.h:196
 AliGenMUONlib.h:197
 AliGenMUONlib.h:198
 AliGenMUONlib.h:199
 AliGenMUONlib.h:200
 AliGenMUONlib.h:201
 AliGenMUONlib.h:202
 AliGenMUONlib.h:203
 AliGenMUONlib.h:204
 AliGenMUONlib.h:205
 AliGenMUONlib.h:206
 AliGenMUONlib.h:207
 AliGenMUONlib.h:208
 AliGenMUONlib.h:209
 AliGenMUONlib.h:210
 AliGenMUONlib.h:211
 AliGenMUONlib.h:212
 AliGenMUONlib.h:213
 AliGenMUONlib.h:214
 AliGenMUONlib.h:215
 AliGenMUONlib.h:216
 AliGenMUONlib.h:217
 AliGenMUONlib.h:218
 AliGenMUONlib.h:219
 AliGenMUONlib.h:220
 AliGenMUONlib.h:221
 AliGenMUONlib.h:222
 AliGenMUONlib.h:223
 AliGenMUONlib.h:224
 AliGenMUONlib.h:225
 AliGenMUONlib.h:226
 AliGenMUONlib.h:227
 AliGenMUONlib.h:228
 AliGenMUONlib.h:229
 AliGenMUONlib.h:230
 AliGenMUONlib.h:231
 AliGenMUONlib.h:232
 AliGenMUONlib.h:233
 AliGenMUONlib.h:234
 AliGenMUONlib.h:235
 AliGenMUONlib.h:236
 AliGenMUONlib.h:237
 AliGenMUONlib.h:238
 AliGenMUONlib.h:239
 AliGenMUONlib.h:240
 AliGenMUONlib.h:241
 AliGenMUONlib.h:242
 AliGenMUONlib.h:243
 AliGenMUONlib.h:244
 AliGenMUONlib.h:245
 AliGenMUONlib.h:246
 AliGenMUONlib.h:247
 AliGenMUONlib.h:248
 AliGenMUONlib.h:249
 AliGenMUONlib.h:250
 AliGenMUONlib.h:251
 AliGenMUONlib.h:252
 AliGenMUONlib.h:253
 AliGenMUONlib.h:254
 AliGenMUONlib.h:255
 AliGenMUONlib.h:256
 AliGenMUONlib.h:257
 AliGenMUONlib.h:258
 AliGenMUONlib.h:259
 AliGenMUONlib.h:260
 AliGenMUONlib.h:261
 AliGenMUONlib.h:262
 AliGenMUONlib.h:263
 AliGenMUONlib.h:264
 AliGenMUONlib.h:265
 AliGenMUONlib.h:266
 AliGenMUONlib.h:267
 AliGenMUONlib.h:268
 AliGenMUONlib.h:269
 AliGenMUONlib.h:270
 AliGenMUONlib.h:271
 AliGenMUONlib.h:272
 AliGenMUONlib.h:273
 AliGenMUONlib.h:274
 AliGenMUONlib.h:275
 AliGenMUONlib.h:276
 AliGenMUONlib.h:277
 AliGenMUONlib.h:278
 AliGenMUONlib.h:279
 AliGenMUONlib.h:280
 AliGenMUONlib.h:281
 AliGenMUONlib.h:282
 AliGenMUONlib.h:283
 AliGenMUONlib.h:284
 AliGenMUONlib.h:285
 AliGenMUONlib.h:286
 AliGenMUONlib.h:287
 AliGenMUONlib.h:288
 AliGenMUONlib.h:289
 AliGenMUONlib.h:290
 AliGenMUONlib.h:291
 AliGenMUONlib.h:292
 AliGenMUONlib.h:293
 AliGenMUONlib.h:294
 AliGenMUONlib.h:295
 AliGenMUONlib.h:296
 AliGenMUONlib.h:297
 AliGenMUONlib.h:298
 AliGenMUONlib.h:299
 AliGenMUONlib.h:300
 AliGenMUONlib.h:301
 AliGenMUONlib.h:302
 AliGenMUONlib.h:303
 AliGenMUONlib.h:304
 AliGenMUONlib.h:305
 AliGenMUONlib.h:306
 AliGenMUONlib.h:307
 AliGenMUONlib.h:308
 AliGenMUONlib.h:309
 AliGenMUONlib.h:310
 AliGenMUONlib.h:311
 AliGenMUONlib.h:312
 AliGenMUONlib.h:313
 AliGenMUONlib.h:314
 AliGenMUONlib.h:315
 AliGenMUONlib.h:316
 AliGenMUONlib.h:317
 AliGenMUONlib.h:318
 AliGenMUONlib.h:319
 AliGenMUONlib.h:320
 AliGenMUONlib.h:321
 AliGenMUONlib.h:322
 AliGenMUONlib.h:323
 AliGenMUONlib.h:324
 AliGenMUONlib.h:325
 AliGenMUONlib.h:326
 AliGenMUONlib.h:327
 AliGenMUONlib.h:328
 AliGenMUONlib.h:329
 AliGenMUONlib.h:330
 AliGenMUONlib.h:331
 AliGenMUONlib.h:332
 AliGenMUONlib.h:333
 AliGenMUONlib.h:334
 AliGenMUONlib.h:335
 AliGenMUONlib.h:336
 AliGenMUONlib.h:337
 AliGenMUONlib.h:338
 AliGenMUONlib.h:339
 AliGenMUONlib.h:340
 AliGenMUONlib.h:341
 AliGenMUONlib.h:342
 AliGenMUONlib.h:343
 AliGenMUONlib.h:344
 AliGenMUONlib.h:345
 AliGenMUONlib.h:346
 AliGenMUONlib.h:347
 AliGenMUONlib.h:348
 AliGenMUONlib.h:349
 AliGenMUONlib.h:350
 AliGenMUONlib.h:351
 AliGenMUONlib.h:352
 AliGenMUONlib.h:353
 AliGenMUONlib.h:354
 AliGenMUONlib.h:355
 AliGenMUONlib.h:356
 AliGenMUONlib.h:357
 AliGenMUONlib.h:358
 AliGenMUONlib.h:359
 AliGenMUONlib.h:360
 AliGenMUONlib.h:361
 AliGenMUONlib.h:362
 AliGenMUONlib.h:363
 AliGenMUONlib.h:364
 AliGenMUONlib.h:365
 AliGenMUONlib.h:366
 AliGenMUONlib.h:367
 AliGenMUONlib.h:368
 AliGenMUONlib.h:369
 AliGenMUONlib.h:370
 AliGenMUONlib.h:371
 AliGenMUONlib.h:372
 AliGenMUONlib.h:373
 AliGenMUONlib.h:374
 AliGenMUONlib.h:375
 AliGenMUONlib.h:376
 AliGenMUONlib.h:377
 AliGenMUONlib.h:378
 AliGenMUONlib.h:379
 AliGenMUONlib.h:380
 AliGenMUONlib.h:381
 AliGenMUONlib.h:382
 AliGenMUONlib.h:383
 AliGenMUONlib.h:384
 AliGenMUONlib.h:385
 AliGenMUONlib.h:386
 AliGenMUONlib.h:387
 AliGenMUONlib.h:388
 AliGenMUONlib.h:389
 AliGenMUONlib.h:390
 AliGenMUONlib.h:391
 AliGenMUONlib.h:392
 AliGenMUONlib.h:393
 AliGenMUONlib.h:394
 AliGenMUONlib.h:395
 AliGenMUONlib.h:396
 AliGenMUONlib.h:397
 AliGenMUONlib.h:398
 AliGenMUONlib.h:399
 AliGenMUONlib.h:400
 AliGenMUONlib.h:401
 AliGenMUONlib.h:402
 AliGenMUONlib.h:403
 AliGenMUONlib.h:404