Line data Source code
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 :
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 : /////////////////////////////////////////////////////////////////////////////
17 :
18 : #include "AliGenLib.h"
19 : class TRandom;
20 :
21 0 : class AliGenGSIlib :public AliGenLib {
22 : public:
23 : GenFunc GetPt(Int_t param, const char * tname=0) const;
24 : GenFunc GetY(Int_t param, const char * tname=0) const;
25 : GenFuncIp GetIp(Int_t param, const char * tname=0) const;
26 :
27 : enum constants{kUpsilon, kJPsi, kCharm, kBeauty, kEta, kEtaprime, kOmega, kRho, kKaon, kPion, kPhi, kLambda, kBaryons};
28 :
29 : private:
30 :
31 : static Double_t PtScal(Double_t pt, Int_t np);
32 :
33 : // Upsilon
34 : static Int_t IpUpsilon(TRandom *ran);
35 : // Upsilon RITMAN
36 : static Double_t PtUpsilonRitman( const Double_t *px, const Double_t *dummy );
37 : static Double_t YUpsilonRitman(const Double_t *py, const Double_t *dummy);
38 : // Upsilon FLAT
39 : static Double_t PtUpsilonFlat( const Double_t *px, const Double_t *dummy );
40 : static Double_t YUpsilonFlat(const Double_t *py, const Double_t *dummy);
41 : // Upsilon Karel
42 : static Double_t PtUpsilonKarel( const Double_t *px, const Double_t *dummy );
43 : static Double_t YUpsilonKarel(const Double_t *py, const Double_t *dummy);
44 : // Upsilon MUONlib
45 : static Double_t PtUpsilonMUON( const Double_t *px, const Double_t *dummy );
46 : static Double_t YUpsilonMUON(const Double_t *py, const Double_t *dummy);
47 :
48 :
49 : // JPsi
50 : static Int_t IpJpsi(TRandom *ran);
51 : // JPsi FLAT
52 : static Double_t PtJpsiFlat( const Double_t *px, const Double_t *dummy );
53 : static Double_t YJpsiFlat(const Double_t *py, const Double_t *dummy);
54 : // JPsi from MUONlib
55 : static Double_t PtJpsiMUON( const Double_t *px, const Double_t *dummy );
56 : static Double_t YJpsiMUON(const Double_t *py, const Double_t *dummy);
57 : // JPsi from Ritman
58 : static Double_t PtJpsiRitman( const Double_t *px, const Double_t *dummy );
59 :
60 : // JPsi from Sergei
61 : // static Double_t PtJpsi( Double_t *px, Double_t *dummy );
62 : // static Double_t YJpsi(Double_t *py, Double_t *dummy);
63 : // static Int_t IpJpsi(TRandom *ran);
64 :
65 :
66 : // Charm
67 : static Int_t IpCharm(TRandom *ran);
68 : static Double_t PtCharmFlat( const Double_t *px, const Double_t *dummy );
69 : static Double_t PtCharmMUON( const Double_t *px, const Double_t *dummy );
70 : static Double_t PtCharmGSI( const Double_t *px, const Double_t *dummy );
71 : static Double_t YCharm(const Double_t *py, const Double_t *dummy);
72 :
73 :
74 : // Beauty
75 : static Int_t IpBeauty(TRandom *ran);
76 : static Double_t PtBeautyFlat( const Double_t *px, const Double_t *dummy );
77 : static Double_t PtBeautyMUON( const Double_t *px, const Double_t *dummy );
78 : static Double_t PtBeautyGSI( const Double_t *px, const Double_t *dummy );
79 : static Double_t YBeauty(const Double_t *py, const Double_t *dummy);
80 :
81 :
82 : // Eta
83 : static Int_t IpEta(TRandom *ran);
84 : static Double_t PtEtaPHOS( const Double_t *px, const Double_t *dummy );
85 : static Double_t YEtaPHOS(const Double_t *py, const Double_t *dummy);
86 :
87 :
88 : // Etaprime
89 : static Int_t IpEtaprime(TRandom *ran);
90 : static Double_t PtEtaprimePHOS( const Double_t *px, const Double_t *dummy );
91 : static Double_t YEtaprimePHOS(const Double_t *py, const Double_t *dummy);
92 :
93 :
94 : // Omega
95 : static Int_t IpOmega(TRandom *ran);
96 : static Double_t PtOmega( const Double_t *px, const Double_t *dummy );
97 : static Double_t YOmega(const Double_t *py, const Double_t *dummy);
98 :
99 :
100 : // Rho
101 : static Int_t IpRho(TRandom *ran);
102 : static Double_t PtRho( const Double_t *px, const Double_t *dummy );
103 : static Double_t YRho(const Double_t *py, const Double_t *dummy);
104 :
105 :
106 :
107 : // Kaon
108 : static Int_t IpKaonPHOS(TRandom *ran);
109 : static Double_t PtKaonPHOS( const Double_t *px, const Double_t *dummy );
110 : static Double_t YKaonPHOS(const Double_t *py, const Double_t *dummy);
111 :
112 :
113 : // Pion
114 : static Int_t IpPionPHOS(TRandom *ran);
115 : static Double_t PtPion( const Double_t *px, const Double_t *dummy );
116 : static Double_t YPion(const Double_t *py, const Double_t *dummy);
117 :
118 :
119 : // Phi
120 : static Int_t IpPhi(TRandom *ran);
121 : static Double_t PtPhiPHOS( const Double_t *px, const Double_t *dummy );
122 : static Double_t YPhiPHOS(const Double_t *py, const Double_t *dummy);
123 :
124 :
125 : // Lambda
126 : // static Double_t PtLambda( Double_t *px, Double_t *dummy );
127 : // static Double_t YLambda(Double_t *py, Double_t *dummy);
128 : // static Int_t IpLambda(TRandom *ran);
129 :
130 :
131 : // Baryons
132 : static Int_t IpBaryons(TRandom *ran);
133 : static Double_t PtBaryons( const Double_t *px, const Double_t *dummy );
134 : static Double_t YBaryons(const Double_t *py, const Double_t *dummy);
135 :
136 :
137 :
138 6 : ClassDef(AliGenGSIlib,0)
139 : };
140 :
141 : #endif
142 :
143 :
144 :
145 :
146 :
147 :
148 :
|