]>
Commit | Line | Data |
---|---|---|
014616eb | 1 | #ifndef ALIGENGSILIB_H |
2 | #define ALIGENGSILIB_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* $Id$ */ | |
7 | ||
fdcaa191 | 8 | ///////////////////////////////////////////////////////////////////////////// |
9 | // // | |
10 | // Implementation of AliGenLib for GSI simulations. // | |
11 | // It is an extension of AliMUONLib providing the option for different // | |
12 | // parametrisations of pt, y for every particle type // | |
13 | // // | |
14 | // Responsible: Andres.Sandoval@cern.ch // | |
15 | // // | |
16 | ///////////////////////////////////////////////////////////////////////////// | |
675e9664 | 17 | |
b22ee262 | 18 | #include "AliGenLib.h" |
65fb704d | 19 | class TRandom; |
014616eb | 20 | |
b22ee262 | 21 | class AliGenGSIlib :public AliGenLib { |
014616eb | 22 | public: |
fdcaa191 | 23 | enum constants{kUpsilon, kJPsi, kCharm, kBeauty, kEta, kEtaprime, kOmega, kRho, kKaon, kPion, kPhi, kLambda, kBaryons}; |
24 | ||
25 | static Double_t PtScal(Double_t pt, Int_t np); | |
26 | ||
27 | // Upsilon | |
28 | static Int_t IpUpsilon(TRandom *ran); | |
014616eb | 29 | // Upsilon RITMAN |
30 | static Double_t PtUpsilonRitman( Double_t *px, Double_t *dummy ); | |
31 | static Double_t YUpsilonRitman(Double_t *py, Double_t *dummy); | |
fdcaa191 | 32 | // Upsilon FLAT |
33 | static Double_t PtUpsilonFlat( Double_t *px, Double_t *dummy ); | |
34 | static Double_t YUpsilonFlat(Double_t *py, Double_t *dummy); | |
014616eb | 35 | // Upsilon Karel |
36 | static Double_t PtUpsilonKarel( Double_t *px, Double_t *dummy ); | |
37 | static Double_t YUpsilonKarel(Double_t *py, Double_t *dummy); | |
fdcaa191 | 38 | // Upsilon MUONlib |
014616eb | 39 | static Double_t PtUpsilonMUON( Double_t *px, Double_t *dummy ); |
40 | static Double_t YUpsilonMUON(Double_t *py, Double_t *dummy); | |
014616eb | 41 | |
fdcaa191 | 42 | |
43 | // JPsi | |
44 | static Int_t IpJpsi(TRandom *ran); | |
45 | // JPsi FLAT | |
46 | static Double_t PtJpsiFlat( Double_t *px, Double_t *dummy ); | |
47 | static Double_t YJpsiFlat(Double_t *py, Double_t *dummy); | |
48 | // JPsi from MUONlib | |
49 | static Double_t PtJpsiMUON( Double_t *px, Double_t *dummy ); | |
50 | static Double_t YJpsiMUON(Double_t *py, Double_t *dummy); | |
51 | // JPsi from Ritman | |
52 | static Double_t PtJpsiRitman( Double_t *px, Double_t *dummy ); | |
53 | ||
54 | // JPsi from Sergei | |
55 | // static Double_t PtJpsi( Double_t *px, Double_t *dummy ); | |
56 | // static Double_t YJpsi(Double_t *py, Double_t *dummy); | |
57 | // static Int_t IpJpsi(TRandom *ran); | |
58 | ||
59 | ||
60 | // Charm | |
61 | static Int_t IpCharm(TRandom *ran); | |
62 | static Double_t PtCharmFlat( Double_t *px, Double_t *dummy ); | |
63 | static Double_t PtCharmMUON( Double_t *px, Double_t *dummy ); | |
64 | static Double_t PtCharmGSI( Double_t *px, Double_t *dummy ); | |
65 | static Double_t YCharm(Double_t *py, Double_t *dummy); | |
66 | ||
67 | ||
68 | // Beauty | |
69 | static Int_t IpBeauty(TRandom *ran); | |
70 | static Double_t PtBeautyFlat( Double_t *px, Double_t *dummy ); | |
71 | static Double_t PtBeautyMUON( Double_t *px, Double_t *dummy ); | |
72 | static Double_t PtBeautyGSI( Double_t *px, Double_t *dummy ); | |
73 | static Double_t YBeauty(Double_t *py, Double_t *dummy); | |
74 | ||
75 | ||
76 | // Eta | |
77 | static Int_t IpEta(TRandom *ran); | |
78 | static Double_t PtEtaPHOS( Double_t *px, Double_t *dummy ); | |
79 | static Double_t YEtaPHOS(Double_t *py, Double_t *dummy); | |
80 | ||
81 | ||
82 | // Etaprime | |
83 | static Int_t IpEtaprime(TRandom *ran); | |
84 | static Double_t PtEtaprimePHOS( Double_t *px, Double_t *dummy ); | |
85 | static Double_t YEtaprimePHOS(Double_t *py, Double_t *dummy); | |
86 | ||
87 | ||
88 | // Omega | |
89 | static Int_t IpOmega(TRandom *ran); | |
90 | static Double_t PtOmega( Double_t *px, Double_t *dummy ); | |
91 | static Double_t YOmega(Double_t *py, Double_t *dummy); | |
92 | ||
93 | ||
94 | // Rho | |
95 | static Int_t IpRho(TRandom *ran); | |
96 | static Double_t PtRho( Double_t *px, Double_t *dummy ); | |
97 | static Double_t YRho(Double_t *py, Double_t *dummy); | |
98 | ||
99 | ||
100 | ||
101 | // Kaon | |
102 | static Int_t IpKaonPHOS(TRandom *ran); | |
103 | static Double_t PtKaonPHOS( Double_t *px, Double_t *dummy ); | |
104 | static Double_t YKaonPHOS(Double_t *py, Double_t *dummy); | |
105 | ||
106 | ||
107 | // Pion | |
108 | static Int_t IpPionPHOS(TRandom *ran); | |
109 | static Double_t PtPion( Double_t *px, Double_t *dummy ); | |
110 | static Double_t YPion(Double_t *py, Double_t *dummy); | |
111 | ||
112 | ||
113 | // Phi | |
114 | static Int_t IpPhi(TRandom *ran); | |
115 | static Double_t PtPhiPHOS( Double_t *px, Double_t *dummy ); | |
116 | static Double_t YPhiPHOS(Double_t *py, Double_t *dummy); | |
117 | ||
118 | ||
119 | // Lambda | |
120 | // static Double_t PtLambda( Double_t *px, Double_t *dummy ); | |
121 | // static Double_t YLambda(Double_t *py, Double_t *dummy); | |
122 | // static Int_t IpLambda(TRandom *ran); | |
123 | ||
124 | ||
125 | // Baryons | |
126 | static Int_t IpBaryons(TRandom *ran); | |
127 | static Double_t PtBaryons( Double_t *px, Double_t *dummy ); | |
128 | static Double_t YBaryons(Double_t *py, Double_t *dummy); | |
129 | ||
130 | ||
014616eb | 131 | typedef Double_t (*GenFunc) (Double_t *, Double_t *); |
65fb704d | 132 | typedef Int_t (*GenFuncIp)(TRandom *ran); |
b22ee262 | 133 | |
f4cd22aa | 134 | GenFunc GetPt(Int_t param, const char * tname=0) const; |
135 | GenFunc GetY(Int_t param, const char * tname=0) const; | |
136 | GenFuncIp GetIp(Int_t param, const char * tname=0) const; | |
fdcaa191 | 137 | |
762c0d1d | 138 | ClassDef(AliGenGSIlib,0) |
014616eb | 139 | }; |
140 | ||
141 | #endif | |
142 | ||
143 | ||
144 | ||
145 | ||
146 | ||
147 | ||
148 |