Line data Source code
1 : #ifndef ALIGENHMPIDLIB_H
2 : #define ALIGENHMPIDLIB_H
3 : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 : * See cxx source for full Copyright notice */
5 :
6 :
7 : /* $Id$ */
8 :
9 : // Library class for particle pt and y distributions used for
10 : // HMPIDsimulations.
11 : // To be used with AliGenParam.
12 : //
13 : // Author: Annalisa Mastroserio <Annalisa.Mastroserio@ba.infn.it>
14 :
15 : #include "AliGenLib.h"
16 :
17 : class TRandom;
18 :
19 0 : class AliGenHMPIDlib :public AliGenLib {
20 :
21 : public:
22 : enum EPartId {kPhi=333};
23 :
24 : //Getters
25 :
26 : GenFunc GetPt(Int_t iPID, const char * sForm=0) const;
27 : GenFunc GetY (Int_t iPID, const char * sForm=0) const;
28 : GenFuncIp GetIp(Int_t iPID, const char * sForm=0) const;
29 : private:
30 :
31 : //Pi+
32 : static Int_t IpPiPlus(TRandom *ran);
33 : static Double_t PtPiPlusFlat(const Double_t *px, const Double_t *dummy);
34 : static Double_t PtPiPlusExp (const Double_t *px, const Double_t *dummy);
35 : static Double_t YPiPlusFlat (const Double_t *py, const Double_t *dummy);
36 :
37 : //Pi-
38 : static Int_t IpPiMinus(TRandom *ran);
39 : static Double_t PtPiMinusFlat(const Double_t *px, const Double_t *dummy);
40 : static Double_t PtPiMinusExp (const Double_t *px, const Double_t *dummy);
41 : static Double_t YPiMinusFlat (const Double_t *py, const Double_t *dummy);
42 :
43 : //K+
44 : static Int_t IpKPlus(TRandom *ran);
45 : static Double_t PtKPlusFlat(const Double_t *px, const Double_t *dummy);
46 : static Double_t PtKPlusExp (const Double_t *px, const Double_t *dummy);
47 : static Double_t YKPlusFlat (const Double_t *py, const Double_t *dummy);
48 :
49 : //K-
50 : static Int_t IpKMinus(TRandom *ran);
51 : static Double_t PtKMinusFlat(const Double_t *px, const Double_t *dummy);
52 : static Double_t PtKMinusExp (const Double_t *px, const Double_t *dummy);
53 : static Double_t YKMinusFlat (const Double_t *py, const Double_t *dummy);
54 :
55 : // K0_s
56 : static Int_t IpK0s(TRandom *ran);
57 : static Double_t PtK0sFlat(const Double_t *px, const Double_t *dummy);
58 : static Double_t PtK0sExp (const Double_t *px, const Double_t *dummy);
59 : static Double_t YK0sFlat (const Double_t *py, const Double_t *dummy);
60 :
61 : // Phi(1020)
62 : static Int_t IpPhi(TRandom *ran);
63 : static Double_t PtPhiFlat(const Double_t *px, const Double_t *dummy);
64 : static Double_t PtPhiExp (const Double_t *px, const Double_t *dummy);
65 : static Double_t YPhiFlat (const Double_t *py, const Double_t *dummy);
66 :
67 : //Proton
68 : static Int_t IpProton(TRandom *ran);
69 : static Double_t PtProtonFlat(const Double_t *px, const Double_t *dummy);
70 : static Double_t PtProtonExp (const Double_t *px, const Double_t *dummy);
71 : static Double_t YProtonFlat (const Double_t *py, const Double_t *dummy);
72 :
73 : //ProtonBar
74 : static Int_t IpProtonBar(TRandom *ran);
75 : static Double_t PtProtonBarFlat(const Double_t *px, const Double_t *dummy);
76 : static Double_t PtProtonBarExp (const Double_t *px, const Double_t *dummy);
77 : static Double_t YProtonBarFlat (const Double_t *py, const Double_t *dummy);
78 :
79 : // Lambda
80 : static Int_t IpLambda(TRandom *ran);
81 : static Double_t PtLambdaFlat(const Double_t *px, const Double_t *dummy);
82 : static Double_t PtLambdaExp (const Double_t *px, const Double_t *dummy);
83 : static Double_t YLambdaFlat (const Double_t *py, const Double_t *dummy);
84 :
85 : // LambdaBar
86 : static Int_t IpLambdaBar(TRandom *ran);
87 : static Double_t PtLambdaBarFlat(const Double_t *px, const Double_t *dummy);
88 : static Double_t PtLambdaBarExp (const Double_t *px, const Double_t *dummy);
89 : static Double_t YLambdaBarFlat (const Double_t *py, const Double_t *dummy);
90 :
91 6 : ClassDef(AliGenHMPIDlib,0)
92 : };
93 :
94 : #endif
95 :
96 :
97 :
98 :
99 :
100 :
101 :
|