fix flow calculation in scalar product
[u/mrichter/AliRoot.git] / EVGEN / AliGenPromptPhotons.h
CommitLineData
3bc7f4d6 1#ifndef ALIGENPROMPTPHOTONS_H
2#define ALIGENPROMPTPHOTONS_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 prompt photons for the reaction A+B, sqrt(S)
12//
13// main assumptions:
14// 1. flat rapidity distribution
15// 2. all existing p+p(pbar) data at y_{c.m.} can be described by the function
16// F(x_T) = (sqrt(s))^5 Ed^3sigma/d^3p, x_T = 2p_t/sqrt(s)
17// all data points cover the region x_T: 0.01 - 0.6
18// see Nucl.Phys.A783:577-582,2007, hep-ex/0609037
19// 3. binary scaling: for A+B at the impact parameter b
20// Ed^3N^{AB}(b)/d^3p = Ed^3sigma^{pp}/d^3p A B T_{AB}(b),
21// T_{AB}(b) - nuclear overlapping fuction, calculated in the Glauber approach,
22// nuclear density is parametrized by a Woods-Saxon with nuclear radius
23// R_A = 1.19 A^{1/3} - 1.61 A^{-1/3} fm and surface thickness a=0.54 fm
24// 4. nuclear effects (Cronin, shadowing, ...) are ignored
25//
26// input parameters:
27// fAProjectile, fATarget - number of nucleons in a nucleus A and B
28// fMinImpactParam - minimal impct parameter, fm
29// fMaxImpactParam - maximal impct parameter, fm
30// fEnergyCMS - sqrt(S) per nucleon pair, AGeV
31//
32// fYMin - minimal rapidity of photons
33// fYMax - maximal rapidity of photons
34// fPtMin - minimal p_t value of gamma, GeV/c
35// fPtMax - maximal p_t value of gamma, GeV/c
36//-------------------------------------------------------------------------
37// comparison with SPS and RHIC data, prediction for LHC can be found in
38// arXiv:0811.2634 [nucl-th]
39//-------------------------------------------------------------------------
40
41class TF1;
42
43#include "AliGenerator.h"
44
45class AliGenPromptPhotons : public AliGenerator
46{
47 public:
48
49 AliGenPromptPhotons();
50 AliGenPromptPhotons(Int_t npart);
51 virtual ~AliGenPromptPhotons();
52 virtual void Generate();
53 virtual void Init();
54 virtual void SetPtRange(Float_t ptmin = 0.1, Float_t ptmax=10.);
55 virtual void SetYRange(Float_t ymin = -1., Float_t ymax=1.);
56
57// Setters
58 virtual void SetAProjectile(Float_t a = 208) {fAProjectile = a;}
59 virtual void SetATarget(Float_t a = 208) {fATarget = a;}
60 virtual void SetEnergyCMS(Float_t energy = 5500.) {fEnergyCMS = energy;}
61 virtual void SetImpactParameterRange(Float_t bmin = 0., Float_t bmax = 0.)
62 {fMinImpactParam=bmin; fMaxImpactParam=bmax;}
63
64 protected:
65 Float_t fAProjectile; // Projectile nucleus mass number
66 Float_t fATarget; // Target nucleus mass number
67 Float_t fEnergyCMS; // Center of mass energy
68 Float_t fMinImpactParam; // minimum impact parameter
69 Float_t fMaxImpactParam; // maximum impact parameter
70
71 static Double_t fitData (Double_t *xx, Double_t *par);
72 static Double_t WSforNorm (Double_t *xx, Double_t *par);
73 static Double_t WSz (Double_t *xx, Double_t *par);
74 static Double_t TA (Double_t *xx, Double_t *par);
75 static Double_t TB (Double_t *xx, Double_t *par);
76 static Double_t TAxTB (Double_t *xx, Double_t *par);
77 static Double_t TAB (Double_t *xx, Double_t *par);
78
79 static TF1 *fDataPt; // d^{2}#sigma^{pp}/(dp_t dy) from data fit
80 static TF1 *fWSzA; // Wood Saxon parameterisation for nucleus A
81 static TF1 *fWSzB; // Wood Saxon parameterisation for nucleus B
82 static TF1 *fTA; // nuclear thickness function T_A(b) (1/fm**2)
83 static TF1 *fTB; // nuclear thickness function T_B(phi)=T_B(sqtr(s**2+b**2-2*s*b*cos(phi)))
84 static TF1 *fTAxTB; // s * TA(s) * 2 * Integral(0,phiMax) TB(phi(s,b))
85 static TF1 *fTAB; // overlap function T_AB(b) (1/fm**2)
86
87 private:
88
89 AliGenPromptPhotons(const AliGenPromptPhotons & PromptPhotons);
90 AliGenPromptPhotons& operator = (const AliGenPromptPhotons & PromptPhotons) ;
91
92
93 ClassDef(AliGenPromptPhotons, 1) // prompt photon generator
94};
95#endif