]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EVGEN/AliGenEMlib.h
Propagate SetUseMCchain to the generated LEGO test
[u/mrichter/AliRoot.git] / EVGEN / AliGenEMlib.h
CommitLineData
e40b9538 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"
19class TRandom;
20
21class AliGenEMlib :public AliGenLib {
6078e216 22public:
e40b9538 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;
6078e216 26 GenFunc GetV2(Int_t param, const char * tname=0) const;
e40b9538 27
6078e216 28 typedef enum {k0005=0, k0510, k1020, k2030, k3040, k4050, k5060, kpp} Centbins_t;
29 enum particles{kPizero, kEta, kRho, kOmega, kEtaprime, kPhi};
e40b9538 30
6078e216 31private:
e40b9538 32
6078e216 33 // Pizero
e40b9538 34 static Int_t IpPizero(TRandom *ran);
35 static Double_t PtPizero( const Double_t *px, const Double_t *dummy );
36 static Double_t YPizero(const Double_t *py, const Double_t *dummy);
6078e216 37 static Double_t V2Pizero(const Double_t *px, const Double_t *dummy);
e40b9538 38
6078e216 39 // Eta
e40b9538 40 static Int_t IpEta(TRandom *ran);
41 static Double_t PtEta( const Double_t *px, const Double_t *dummy );
42 static Double_t YEta(const Double_t *py, const Double_t *dummy);
6078e216 43 static Double_t V2Eta(const Double_t *px, const Double_t *dummy);
e40b9538 44
6078e216 45 // Rho
e40b9538 46 static Int_t IpRho(TRandom *ran);
47 static Double_t PtRho( const Double_t *px, const Double_t *dummy );
48 static Double_t YRho(const Double_t *py, const Double_t *dummy);
49
6078e216 50 // Omega
e40b9538 51 static Int_t IpOmega(TRandom *ran);
52 static Double_t PtOmega( const Double_t *px, const Double_t *dummy );
53 static Double_t YOmega(const Double_t *py, const Double_t *dummy);
54
6078e216 55 // Etaprime
e40b9538 56 static Int_t IpEtaprime(TRandom *ran);
57 static Double_t PtEtaprime( const Double_t *px, const Double_t *dummy );
58 static Double_t YEtaprime(const Double_t *py, const Double_t *dummy);
59
6078e216 60 // Phi
e40b9538 61 static Int_t IpPhi(TRandom *ran);
62 static Double_t PtPhi( const Double_t *px, const Double_t *dummy );
63 static Double_t YPhi(const Double_t *py, const Double_t *dummy);
64
6078e216 65 // General
e40b9538 66 static Double_t PtFlat(const Double_t *px, const Double_t *dummy);
67 static Double_t YFlat(Double_t y);
6078e216 68 static Double_t MtScal(Double_t pt, Int_t np);
69 static Double_t V2Param(const Double_t *px, const Double_t *param);
70 static Double_t V2Flat(const Double_t *px, const Double_t *param);
e40b9538 71
6078e216 72 static Double_t CrossOverLc(const double a, const double b, const double x);
73 static Double_t CrossOverRc(const double a, const double b, const double x);
74
75 static const Double_t fv2param[2][8][9];
76 static const Double_t fpTparam[8][14];
77 static Centbins_t fCentbin;
e40b9538 78
79 ClassDef(AliGenEMlib,0)
80};
81
82#endif