]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVGEN/AliGenMUONlib.h
All the necessary for fast Chi_c generation. (P. Ladron de Guevara)
[u/mrichter/AliRoot.git] / EVGEN / AliGenMUONlib.h
index 999572a8ce5c56b3222d0c26a7732d61dc51c183..f35a9c6b73bbd79f8ad50cd7cda6b5a215c7b60a 100644 (file)
@@ -18,8 +18,12 @@ class AliGenMUONlib :
 {
  public:
   enum constants{kPhi, kOmega, kEta, kJpsi, kJpsiFamily, kPsiP, kJpsiFromB, kUpsilon, kUpsilonFamily,
-                  kUpsilonP, kUpsilonPP, kCharm, kBeauty, kPion, kKaon};
+                  kUpsilonP, kUpsilonPP, kCharm, kBeauty, kPion, kKaon,kChi_c, kChi_c0, kChi_c1, kChi_c2 }; 
     
+    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(Double_t *px, Double_t *dummy);
@@ -44,20 +48,30 @@ class AliGenMUONlib :
     static Int_t    IpEta(TRandom *ran);
 // J/Psi     
     static Double_t PtJpsi( Double_t *px, Double_t *dummy);
+    static Double_t PtJpsiCDFscaled( Double_t *px, Double_t *dummy);
+    static Double_t PtJpsiCDFscaledPP( Double_t *px, Double_t *dummy);
     static Double_t YJpsi(Double_t *py, Double_t *dummy);
     static Double_t PtJpsiPbPb( Double_t *px, Double_t *dummy);
     static Double_t PtJpsiBPbPb( Double_t *px, Double_t *dummy);
     static Double_t YJpsiPbPb(Double_t *py, Double_t *dummy);
+    static Double_t YJpsiCDFscaled(Double_t *py, Double_t *dummy);
+    static Double_t YJpsiCDFscaledPP( Double_t *px, Double_t *dummy);
     static Double_t PtJpsiPP( Double_t *px, Double_t *dummy);
     static Double_t YJpsiPP(Double_t *py, Double_t *dummy);
     static Double_t YJpsiBPbPb(Double_t *py, Double_t *dummy);
     static Int_t    IpJpsi(TRandom *ran);
     static Int_t    IpJpsiFamily(TRandom *ran);
     static Int_t    IpPsiP(TRandom *ran);
+    static Double_t PtJpsiFlat( Double_t *px, Double_t *dummy );
+    static Double_t YJpsiFlat(Double_t *py, Double_t *dummy);
 
 // Upsilon    
     static Double_t PtUpsilon( Double_t *px, Double_t *dummy );
+    static Double_t PtUpsilonCDFscaled( Double_t *px, Double_t *dummy );
+    static Double_t PtUpsilonCDFscaledPP( Double_t *px, Double_t *dummy );
     static Double_t YUpsilon(Double_t *py, Double_t *dummy);
+    static Double_t YUpsilonCDFscaled(Double_t *py, Double_t *dummy);
+    static Double_t YUpsilonCDFscaledPP( Double_t *px, Double_t *dummy );
     static Double_t PtUpsilonPbPb( Double_t *px, Double_t *dummy );
     static Double_t YUpsilonPbPb(Double_t *py, Double_t *dummy);
     static Double_t PtUpsilonPP( Double_t *px, Double_t *dummy );
@@ -66,6 +80,8 @@ class AliGenMUONlib :
     static Int_t    IpUpsilonFamily(TRandom *ran);
     static Int_t    IpUpsilonP(TRandom *ran);
     static Int_t    IpUpsilonPP(TRandom *ran);
+    static Double_t PtUpsilonFlat( Double_t *px, Double_t *dummy );
+    static Double_t YUpsilonFlat(Double_t *py, Double_t *dummy);
 //
 // Charm    
     static Double_t PtCharm( Double_t *px, Double_t *dummy );
@@ -79,10 +95,26 @@ class AliGenMUONlib :
     static Double_t YBeauty(Double_t *py, Double_t *dummy);
     static Int_t    IpBeauty(TRandom *ran);
 //
-    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:
+
+   // Chi 1c 2c
+   static Double_t PtChi_c0( Double_t *px, Double_t *dummy);
+   static Double_t YChi_c0(Double_t *py, Double_t *dummy);
+   static Int_t    IpChi_c0(TRandom *ran);
+
+   static Double_t PtChi_c1( Double_t *px, Double_t *dummy);
+   static Double_t YChi_c1(Double_t *py, Double_t *dummy);
+   static Int_t    IpChi_c1(TRandom *ran);
+
+   static Double_t PtChi_c2( Double_t *px, Double_t *dummy);
+   static Double_t YChi_c2(Double_t *py, Double_t *dummy);
+   static Int_t    IpChi_c2(TRandom *ran);
+
+   static Double_t PtChi_c( Double_t *px, Double_t *dummy);
+   static Double_t YChi_c(Double_t *py, Double_t *dummy);
+   static Int_t    IpChi_c(TRandom *ran);
+
+//
+
     
     static Float_t Interpolate(Float_t x, Float_t* y, Float_t x0, 
                        Float_t dx,