]>
Commit | Line | Data |
---|---|---|
1 | #ifndef ALIGENPHOSLIB_H | |
2 | #define ALIGENPHOSLIB_H | |
3 | #include "AliGenLib.h" | |
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
6 | ||
7 | /* $Id$ */ | |
8 | ||
9 | //====================================================================== | |
10 | // AliGenPHOSlib class contains parameterizations of the | |
11 | // pion, kaon, eta, omega, etaprime, phi and baryon (proton, | |
12 | // antiproton, neutron and anti-neutron) particles for the | |
13 | // study of the neutral background in PHOS detector. | |
14 | // Additional particle species simulation options has been added: | |
15 | // Charged Pion, Charged Kaons, KLong Proton, Anti-Proton, Neutron, | |
16 | // Anti-Neutron --> Changes made by Gustavo Conesa in November 2004 | |
17 | //====================================================================== | |
18 | ||
19 | class TRandom; | |
20 | ||
21 | class AliGenPHOSlib : | |
22 | public AliGenLib | |
23 | { | |
24 | public: | |
25 | enum constants{kPion, kChargedPion, kPi0, kPi0Flat, kKaon, kChargedKaon, kKaon0L, | |
26 | kEta, kEtaFlat,kOmega, kOmegaFlat, kEtaPrime, kPhi, | |
27 | kBaryon, kProton, kAProton, kNeutron, kANeutron}; | |
28 | GenFunc GetPt(Int_t param, const char* tname=0) const; | |
29 | GenFunc GetY (Int_t param, const char* tname=0) const; | |
30 | GenFuncIp GetIp(Int_t param, const char* tname=0) const; | |
31 | private: | |
32 | // pions | |
33 | static Double_t PtPion(const Double_t *px, const Double_t *dummy); | |
34 | static Double_t PtScal(Double_t pt, Int_t np); | |
35 | static Double_t YPion( const Double_t *py, const Double_t *dummy); | |
36 | static Int_t IpPion(TRandom* ran); | |
37 | static Int_t IpChargedPion(TRandom* ran); | |
38 | // pi0 Distribution | |
39 | static Double_t PtPi0(const Double_t *px, const Double_t *dummy); | |
40 | // pi0 Flat Distribution | |
41 | static Double_t PtPi0Flat(const Double_t *px, const Double_t *dummy); | |
42 | static Double_t YPi0Flat( const Double_t *py, const Double_t *dummy); | |
43 | static Int_t IpPi0Flat(TRandom* ran); | |
44 | ||
45 | // kaons | |
46 | static Double_t PtKaon(const Double_t *px, const Double_t *dummy); | |
47 | static Double_t YKaon( const Double_t *py, const Double_t *dummy); | |
48 | static Int_t IpKaon(TRandom* ran); | |
49 | static Int_t IpChargedKaon(TRandom* ran); | |
50 | static Int_t IpKaon0L(TRandom* ran); | |
51 | // etas | |
52 | static Double_t PtEta(const Double_t *px, const Double_t *dummy); | |
53 | static Double_t YEta( const Double_t *py, const Double_t *dummy); | |
54 | static Int_t IpEta(TRandom *ran); | |
55 | ||
56 | // etas Flat Distribution | |
57 | static Double_t PtEtaFlat(const Double_t *px, const Double_t *dummy); | |
58 | static Double_t YEtaFlat( const Double_t *py, const Double_t *dummy); | |
59 | static Int_t IpEtaFlat(TRandom *ran); | |
60 | ||
61 | // omegas | |
62 | static Double_t PtOmega(const Double_t *px, const Double_t *dummy); | |
63 | static Double_t YOmega( const Double_t *py, const Double_t *dummy); | |
64 | static Int_t IpOmega(TRandom *ran); | |
65 | ||
66 | // omegas Flat Distribution | |
67 | static Double_t PtOmegaFlat(const Double_t *px, const Double_t *dummy); | |
68 | static Double_t YOmegaFlat( const Double_t *py, const Double_t *dummy); | |
69 | static Int_t IpOmegaFlat(TRandom *ran); | |
70 | ||
71 | // etaprime | |
72 | static Double_t PtEtaprime(const Double_t *px, const Double_t *dummy); | |
73 | static Double_t YEtaprime( const Double_t *py, const Double_t *dummy); | |
74 | static Int_t IpEtaprime(TRandom* ran); | |
75 | ||
76 | // phis | |
77 | static Double_t PtPhi(const Double_t *px, const Double_t *dummy); | |
78 | static Double_t YPhi( const Double_t *py, const Double_t *dummy); | |
79 | static Int_t IpPhi(TRandom* ran); | |
80 | ||
81 | // baryons | |
82 | static Double_t PtBaryon(const Double_t *px, const Double_t *dummy); | |
83 | static Double_t YBaryon( const Double_t *py, const Double_t *dummy); | |
84 | static Int_t IpBaryon(TRandom *ran); | |
85 | static Int_t IpProton(TRandom *ran); | |
86 | static Int_t IpAProton(TRandom *ran); | |
87 | static Int_t IpNeutron(TRandom *ran); | |
88 | static Int_t IpANeutron(TRandom *ran); | |
89 | ||
90 | ClassDef(AliGenPHOSlib,0) // Library providing y and pT parameterisations | |
91 | }; | |
92 | #endif | |
93 | ||
94 | ||
95 | ||
96 | ||
97 | ||
98 | ||
99 |