ROOT logo
#ifndef ALIGENPHOSLIB_H
#define ALIGENPHOSLIB_H
#include "AliGenLib.h"
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

//======================================================================
//  AliGenPHOSlib class contains parameterizations of the
//  pion, kaon, eta, omega, etaprime, phi and baryon (proton, 
//  antiproton, neutron and anti-neutron) particles for the 
//  study of the neutral background in PHOS detector. 
//  Additional particle species simulation options has been added:
//  Charged Pion, Charged Kaons, KLong Proton, Anti-Proton, Neutron,
//  Anti-Neutron --> Changes made by Gustavo Conesa in November 2004
//======================================================================

class TRandom;

class AliGenPHOSlib :
public AliGenLib
{
 public:
    enum constants{kPion, kChargedPion, kPi0, kPi0Flat, kKaon, kChargedKaon, kKaon0L,
		   kEta, kEtaFlat,kOmega, kOmegaFlat, kEtaPrime, kPhi, 
		   kBaryon, kProton, kAProton, kNeutron, kANeutron};
    GenFunc   GetPt(Int_t param, const char* tname=0) const;
    GenFunc   GetY (Int_t param, const char* tname=0) const;
    GenFuncIp GetIp(Int_t param, const char* tname=0) const;   
 private:
// pions
    static Double_t PtPion(const Double_t *px, const Double_t *dummy);
    static Double_t PtScal(Double_t pt, Int_t np);
    static Double_t YPion( const Double_t *py, const Double_t *dummy);
    static Int_t    IpPion(TRandom* ran);
    static Int_t    IpChargedPion(TRandom* ran);
//  pi0 Distribution
    static Double_t PtPi0(const Double_t *px, const Double_t *dummy);
//  pi0 Flat Distribution
    static Double_t PtPi0Flat(const Double_t *px, const Double_t *dummy);
    static Double_t YPi0Flat( const Double_t *py, const Double_t *dummy);
    static Int_t    IpPi0Flat(TRandom* ran); 
    
// kaons
    static Double_t PtKaon(const Double_t *px, const Double_t *dummy);
    static Double_t YKaon( const Double_t *py, const Double_t *dummy);
    static Int_t    IpKaon(TRandom* ran);
    static Int_t    IpChargedKaon(TRandom* ran);
    static Int_t    IpKaon0L(TRandom* ran);
// etas
    static Double_t PtEta(const Double_t *px, const Double_t *dummy);
    static Double_t YEta( const Double_t *py, const Double_t *dummy);
    static Int_t    IpEta(TRandom *ran);
    
// etas Flat Distribution
    static Double_t PtEtaFlat(const Double_t *px, const Double_t *dummy);
    static Double_t YEtaFlat( const Double_t *py, const Double_t *dummy);
    static Int_t    IpEtaFlat(TRandom *ran);

// omegas
    static Double_t PtOmega(const Double_t *px, const Double_t *dummy);
    static Double_t YOmega( const Double_t *py, const Double_t *dummy);
    static Int_t    IpOmega(TRandom *ran);
   
// omegas  Flat Distribution
    static Double_t PtOmegaFlat(const Double_t *px, const Double_t *dummy);
    static Double_t YOmegaFlat( const Double_t *py, const Double_t *dummy);
    static Int_t    IpOmegaFlat(TRandom *ran); 

// etaprime
    static Double_t PtEtaprime(const Double_t *px, const Double_t *dummy);
    static Double_t YEtaprime( const Double_t *py, const Double_t *dummy);
    static Int_t    IpEtaprime(TRandom* ran);
    
// phis
    static Double_t PtPhi(const Double_t *px, const Double_t *dummy);
    static Double_t YPhi( const Double_t *py, const Double_t *dummy);
    static Int_t    IpPhi(TRandom* ran);
    
// baryons
    static Double_t PtBaryon(const Double_t *px, const Double_t *dummy);
    static Double_t YBaryon( const Double_t *py, const Double_t *dummy);
    static Int_t    IpBaryon(TRandom *ran);
    static Int_t    IpProton(TRandom *ran);
    static Int_t    IpAProton(TRandom *ran);
    static Int_t    IpNeutron(TRandom *ran);
    static Int_t    IpANeutron(TRandom *ran);

    ClassDef(AliGenPHOSlib,0) // Library providing y and pT parameterisations
};
#endif







 AliGenPHOSlib.h:1
 AliGenPHOSlib.h:2
 AliGenPHOSlib.h:3
 AliGenPHOSlib.h:4
 AliGenPHOSlib.h:5
 AliGenPHOSlib.h:6
 AliGenPHOSlib.h:7
 AliGenPHOSlib.h:8
 AliGenPHOSlib.h:9
 AliGenPHOSlib.h:10
 AliGenPHOSlib.h:11
 AliGenPHOSlib.h:12
 AliGenPHOSlib.h:13
 AliGenPHOSlib.h:14
 AliGenPHOSlib.h:15
 AliGenPHOSlib.h:16
 AliGenPHOSlib.h:17
 AliGenPHOSlib.h:18
 AliGenPHOSlib.h:19
 AliGenPHOSlib.h:20
 AliGenPHOSlib.h:21
 AliGenPHOSlib.h:22
 AliGenPHOSlib.h:23
 AliGenPHOSlib.h:24
 AliGenPHOSlib.h:25
 AliGenPHOSlib.h:26
 AliGenPHOSlib.h:27
 AliGenPHOSlib.h:28
 AliGenPHOSlib.h:29
 AliGenPHOSlib.h:30
 AliGenPHOSlib.h:31
 AliGenPHOSlib.h:32
 AliGenPHOSlib.h:33
 AliGenPHOSlib.h:34
 AliGenPHOSlib.h:35
 AliGenPHOSlib.h:36
 AliGenPHOSlib.h:37
 AliGenPHOSlib.h:38
 AliGenPHOSlib.h:39
 AliGenPHOSlib.h:40
 AliGenPHOSlib.h:41
 AliGenPHOSlib.h:42
 AliGenPHOSlib.h:43
 AliGenPHOSlib.h:44
 AliGenPHOSlib.h:45
 AliGenPHOSlib.h:46
 AliGenPHOSlib.h:47
 AliGenPHOSlib.h:48
 AliGenPHOSlib.h:49
 AliGenPHOSlib.h:50
 AliGenPHOSlib.h:51
 AliGenPHOSlib.h:52
 AliGenPHOSlib.h:53
 AliGenPHOSlib.h:54
 AliGenPHOSlib.h:55
 AliGenPHOSlib.h:56
 AliGenPHOSlib.h:57
 AliGenPHOSlib.h:58
 AliGenPHOSlib.h:59
 AliGenPHOSlib.h:60
 AliGenPHOSlib.h:61
 AliGenPHOSlib.h:62
 AliGenPHOSlib.h:63
 AliGenPHOSlib.h:64
 AliGenPHOSlib.h:65
 AliGenPHOSlib.h:66
 AliGenPHOSlib.h:67
 AliGenPHOSlib.h:68
 AliGenPHOSlib.h:69
 AliGenPHOSlib.h:70
 AliGenPHOSlib.h:71
 AliGenPHOSlib.h:72
 AliGenPHOSlib.h:73
 AliGenPHOSlib.h:74
 AliGenPHOSlib.h:75
 AliGenPHOSlib.h:76
 AliGenPHOSlib.h:77
 AliGenPHOSlib.h:78
 AliGenPHOSlib.h:79
 AliGenPHOSlib.h:80
 AliGenPHOSlib.h:81
 AliGenPHOSlib.h:82
 AliGenPHOSlib.h:83
 AliGenPHOSlib.h:84
 AliGenPHOSlib.h:85
 AliGenPHOSlib.h:86
 AliGenPHOSlib.h:87
 AliGenPHOSlib.h:88
 AliGenPHOSlib.h:89
 AliGenPHOSlib.h:90
 AliGenPHOSlib.h:91
 AliGenPHOSlib.h:92
 AliGenPHOSlib.h:93
 AliGenPHOSlib.h:94
 AliGenPHOSlib.h:95
 AliGenPHOSlib.h:96
 AliGenPHOSlib.h:97
 AliGenPHOSlib.h:98
 AliGenPHOSlib.h:99