]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVGEN/AliGenHMPIDlib.h
Afterburner to generate light nuclei
[u/mrichter/AliRoot.git] / EVGEN / AliGenHMPIDlib.h
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 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   ClassDef(AliGenHMPIDlib,0)
92 };
93
94 #endif
95
96
97
98
99
100
101