New class added.
[u/mrichter/AliRoot.git] / EVGEN / AliGenEMlib.h
1 #ifndef ALIGENEMLIB_H
2 #define ALIGENEMLIB_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id: AliGenEMlib.h 30052 2008-11-25 14:54:18Z morsch $ */
7
8 /////////////////////////////////////////////////////////////////////////////
9 //                                                                         //
10 // Implementation of AliGenEMlib for electron, di-electron, and photon     //
11 // cocktail calculations.                                                  //
12 // It is based on AliGenGSIlib.                                            //
13 //                                                                         //
14 // Responsible: R.Averbeck@gsi.de                                          //
15 //                                                                         //
16 /////////////////////////////////////////////////////////////////////////////
17
18 #include "AliGenLib.h"
19 class TRandom;
20
21 class AliGenEMlib :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{kPizero, kEta, kRho, kOmega, kEtaprime, kPhi};
28
29  private:
30
31 // Pizero
32     static Int_t    IpPizero(TRandom *ran);
33     static Double_t PtPizero( const Double_t *px, const Double_t *dummy );
34     static Double_t YPizero(const Double_t *py, const Double_t *dummy);
35     static Double_t MtScal(Double_t pt, Int_t np);
36
37 // Eta
38     static Int_t    IpEta(TRandom *ran);
39     static Double_t PtEta( const Double_t *px, const Double_t *dummy );
40     static Double_t YEta(const Double_t *py, const Double_t *dummy);
41
42 // Rho
43     static Int_t    IpRho(TRandom *ran);
44     static Double_t PtRho( const Double_t *px, const Double_t *dummy );
45     static Double_t YRho(const Double_t *py, const Double_t *dummy);
46
47 // Omega
48     static Int_t    IpOmega(TRandom *ran);
49     static Double_t PtOmega( const Double_t *px, const Double_t *dummy );
50     static Double_t YOmega(const Double_t *py, const Double_t *dummy);
51
52 // Etaprime
53     static Int_t    IpEtaprime(TRandom *ran);
54     static Double_t PtEtaprime( const Double_t *px, const Double_t *dummy );
55     static Double_t YEtaprime(const Double_t *py, const Double_t *dummy);
56
57 // Phi
58     static Int_t    IpPhi(TRandom *ran);
59     static Double_t PtPhi( const Double_t *px, const Double_t *dummy );
60     static Double_t YPhi(const Double_t *py, const Double_t *dummy);
61
62 // General
63     static Double_t PtFlat(const Double_t *px, const Double_t *dummy);
64     static Double_t YFlat(Double_t y);
65
66
67   ClassDef(AliGenEMlib,0)
68 };
69
70 #endif