SetSeed implementation
[u/mrichter/AliRoot.git] / EVGEN / AliGenThermalPhotons.h
1 #ifndef ALIGENTHERMALPHOTONS_H
2 #define ALIGENTHERMALPHOTONS_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 //-------------------------------------------------------------------------
7 // author: Sergey Kiselev, ITEP, Moscow
8 // e-mail: Sergey.Kiselev@cern.ch
9 // tel.: 007 495 129 95 45
10 //-------------------------------------------------------------------------
11 // Generator of direct thermal photons for the reaction A+B, sqrt(S)
12 // main assumptions:
13 // 1+1 Bjorken scaling hydrodinamics.
14 // 1st order phase transition
15 // QGP + Mixed (QGP+HHG) + HHG (Hot Hadron Gas) phases, 
16 // an ideal massless parton gas and ideal massless HHG 
17 // see 
18 // F.D.Steffen, nucl-th/9909035
19 // F.D.Steffen and M.H.Thoma, Phys.Lett. B510, 98 (2001)
20 // T.Peitzmann and M.H.Thoma, Phys.Rep., 364, 175 (2002) 
21 //
22 // photon rates for QGP: Phys.Rep., 364, 175 (2002), section 2.1.1
23 //
24 // photon rates for HHG
25 // prates for i rho --> pi gamma, pi pi --> rho gamma and rho --> pi pi gamma:
26 // Song and Fai, Phys.Rev. C58, 1689 (1998)
27 // rates for omega --> pi gamma: Phys.Rev. D44, 2774 (1991)
28 //
29 // input parameters:
30 //       fAProjectile, fATarget - number of nucleons in a nucleus A and B
31 //       fMinImpactParam - minimal impct parameter, fm
32 //       fMaxImpactParam - maximal impct parameter, fm
33 //       fEnergyCMS - sqrt(S) per nucleon pair, AGeV
34 //       fTau0 - initial proper time, fm/c
35 //       fT0 - initial temperature, GeV
36 //       fTc - critical temperature, GeV
37 //       fTf - freeze-out temperature, GeV
38 //       fGhhg - effective number of degrees of freedom in HHG
39 //
40 //       fYMin - minimal rapidity of photons 
41 //       fYMax - maximal rapidity of photons
42 //              in [fYMin,fYMax] uniform distribution of gamma is assumed
43 //       fPtMin - minimal p_t value of gamma, GeV/c
44 //       fPtMax - maximal p_t value of gamma, GeV/c
45 //-------------------------------------------------------------------------
46 // comparison with SPS and RHIC data, prediction for LHC can be found in
47 // arXiv:0811.2634 [nucl-th]
48 //-------------------------------------------------------------------------
49
50 class TH1F;
51
52 #include "AliGenerator.h"
53
54 class AliGenThermalPhotons : public AliGenerator
55 {
56  public:
57
58   AliGenThermalPhotons();
59   AliGenThermalPhotons(Int_t npart);
60   virtual ~AliGenThermalPhotons();
61   virtual void Generate();
62   virtual void Init();
63   virtual void SetPtRange(Float_t ptmin = 0.1, Float_t ptmax=10.);
64   virtual void SetYRange(Float_t ymin = -1., Float_t ymax=1.);
65
66 // Setters
67     virtual void SetAProjectile(Int_t a = 208.) {fAProjectile = a;}
68     virtual void SetATarget(Int_t a = 208.)         {fATarget     = a;}
69     virtual void SetEnergyCMS(Float_t energy = 5500.) {fEnergyCMS = energy;}
70     virtual void    SetImpactParameterRange(Float_t bmin = 0., Float_t bmax = 0.)
71         {fMinImpactParam=bmin; fMaxImpactParam=bmax;}
72     virtual void    SetTau0(Float_t tau0 = 0.1)             {fTau0   = tau0;}
73     virtual void    SetT0(Float_t   T0   = 0.650)           {fT0     = T0;}
74     virtual void    SetTc(Float_t   Tc   = 0.170)           {fTc     = Tc;}
75     virtual void    SetTf(Float_t   Tf   = 0.100)           {fTf     = Tf;}
76     virtual void    SetGhhg(Int_t   Ghhg = 8)               {fGhhg   = Ghhg;}
77
78  protected:
79   Float_t fMinImpactParam;  // minimum impact parameter
80   Float_t fMaxImpactParam;  // maximum impact parameter 
81   Float_t fTau0;            // initial proper time, fm  
82   Float_t fT0;              // initial temperature, GeV 
83   Float_t fTc;              // critical temperature, GeV        
84   Float_t fTf;              // freeze-out temperature, GeV      
85   Int_t   fGhhg;            // number of degrees of freedom in HHG      
86
87   TH1F *fSumPt;             // histo with pt from all origins
88
89  private:
90
91   AliGenThermalPhotons(const AliGenThermalPhotons & ThermalPhotons);
92   AliGenThermalPhotons& operator = (const AliGenThermalPhotons & ThermalPhotons) ;
93
94
95   ClassDef(AliGenThermalPhotons, 1) // Direct thermal photon generator
96 };
97 #endif