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 */
9 // Library class for particle pt and y distributions used for
11 // To be used with AliGenParam.
13 // Author: Annalisa Mastroserio <Annalisa.Mastroserio@ba.infn.it>
15 #include "AliGenLib.h"
19 class AliGenHMPIDlib :public AliGenLib {
22 enum EPartId {kPhi=333};
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;
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);
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);
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);
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);
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);
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);
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);
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);
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);
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);
91 ClassDef(AliGenHMPIDlib,0)