Line data Source code
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 :
41 : class TF1;
42 :
43 : #include "AliGenerator.h"
44 :
45 : class 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 0 : virtual void SetAProjectile(Float_t a = 208) {fAProjectile = a;}
59 0 : virtual void SetATarget(Float_t a = 208) {fATarget = a;}
60 0 : virtual void SetEnergyCMS(Float_t energy = 5500.) {fEnergyCMS = energy;}
61 : virtual void SetImpactParameterRange(Float_t bmin = 0., Float_t bmax = 0.)
62 0 : {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 (const Double_t *xx, const Double_t *par);
72 : static Double_t WSforNorm (const Double_t *xx, const Double_t *par);
73 : static Double_t WSz (const Double_t *xx, const Double_t *par);
74 : static Double_t TA (const Double_t *xx, const Double_t *par);
75 : static Double_t TB (const Double_t *xx, const Double_t *par);
76 : static Double_t TAxTB (const Double_t *xx, const Double_t *par);
77 : static Double_t TAB (const Double_t *xx, const Double_t *par);
78 :
79 : static TF1 *fgDataPt; // d^{2}#sigma^{pp}/(dp_t dy) from data fit
80 : static TF1 *fgWSzA; // Wood Saxon parameterisation for nucleus A
81 : static TF1 *fgWSzB; // Wood Saxon parameterisation for nucleus B
82 : static TF1 *fgTA; // nuclear thickness function T_A(b) (1/fm**2)
83 : static TF1 *fgTB; // nuclear thickness function T_B(phi)=T_B(sqtr(s**2+b**2-2*s*b*cos(phi)))
84 : static TF1 *fgTAxTB; // s * TA(s) * 2 * Integral(0,phiMax) TB(phi(s,b))
85 : static TF1 *fgTAB; // 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 6 : ClassDef(AliGenPromptPhotons, 1) // prompt photon generator
94 : };
95 : #endif
|