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


/* $Id$ */

// Library class for particle pt and y distributions used for 
// HMPIDsimulations.
// To be used with AliGenParam.
//
// Author: Annalisa Mastroserio <Annalisa.Mastroserio@ba.infn.it>

#include "AliGenLib.h"

class TRandom;

class AliGenHMPIDlib :public AliGenLib {

 public:
  enum EPartId {kPhi=333};

  //Getters
    
  GenFunc   GetPt(Int_t iPID, const char * sForm=0) const;
  GenFunc   GetY (Int_t iPID, const char * sForm=0) const;
  GenFuncIp GetIp(Int_t iPID, const char * sForm=0) const;    
 private:

//Pi+
  static Int_t IpPiPlus(TRandom *ran);
  static Double_t PtPiPlusFlat(const Double_t *px, const Double_t *dummy);
  static Double_t PtPiPlusExp (const Double_t *px, const Double_t *dummy);
  static Double_t YPiPlusFlat (const Double_t *py, const Double_t *dummy);

//Pi-
  static Int_t IpPiMinus(TRandom *ran);
  static Double_t PtPiMinusFlat(const Double_t *px, const Double_t *dummy);
  static Double_t PtPiMinusExp (const Double_t *px, const Double_t *dummy);
  static Double_t YPiMinusFlat (const Double_t *py, const Double_t *dummy);

//K+
  static Int_t IpKPlus(TRandom *ran);
  static Double_t PtKPlusFlat(const Double_t *px, const Double_t *dummy);
  static Double_t PtKPlusExp (const Double_t *px, const Double_t *dummy);
  static Double_t YKPlusFlat (const Double_t *py, const Double_t *dummy);

//K-
  static Int_t IpKMinus(TRandom *ran);
  static Double_t PtKMinusFlat(const Double_t *px, const Double_t *dummy);
  static Double_t PtKMinusExp (const Double_t *px, const Double_t *dummy);
  static Double_t YKMinusFlat (const Double_t *py, const Double_t *dummy);

// K0_s
  static Int_t IpK0s(TRandom *ran);
  static Double_t PtK0sFlat(const Double_t *px, const Double_t *dummy);
  static Double_t PtK0sExp (const Double_t *px, const Double_t *dummy);
  static Double_t YK0sFlat (const Double_t *py, const Double_t *dummy);

// Phi(1020)
  static Int_t IpPhi(TRandom *ran);
  static Double_t PtPhiFlat(const Double_t *px, const Double_t *dummy);
  static Double_t PtPhiExp (const Double_t *px, const Double_t *dummy);
  static Double_t YPhiFlat (const Double_t *py, const Double_t *dummy);

//Proton
  static Int_t IpProton(TRandom *ran);
  static Double_t PtProtonFlat(const Double_t *px, const Double_t *dummy);
  static Double_t PtProtonExp (const Double_t *px, const Double_t *dummy);
  static Double_t YProtonFlat (const Double_t *py, const Double_t *dummy);

//ProtonBar
  static Int_t IpProtonBar(TRandom *ran);
  static Double_t PtProtonBarFlat(const Double_t *px, const Double_t *dummy);
  static Double_t PtProtonBarExp (const Double_t *px, const Double_t *dummy);
  static Double_t YProtonBarFlat (const Double_t *py, const Double_t *dummy);

// Lambda
  static Int_t IpLambda(TRandom *ran);
  static Double_t PtLambdaFlat(const Double_t *px, const Double_t *dummy);
  static Double_t PtLambdaExp (const Double_t *px, const Double_t *dummy);
  static Double_t YLambdaFlat (const Double_t *py, const Double_t *dummy);

// LambdaBar
  static Int_t IpLambdaBar(TRandom *ran);
  static Double_t PtLambdaBarFlat(const Double_t *px, const Double_t *dummy);
  static Double_t PtLambdaBarExp (const Double_t *px, const Double_t *dummy);
  static Double_t YLambdaBarFlat (const Double_t *py, const Double_t *dummy);

  ClassDef(AliGenHMPIDlib,0)
};

#endif







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