LCOV - code coverage report
Current view: top level - EVGEN - AliGenPromptPhotons.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 1 5 20.0 %
Date: 2016-06-14 17:26:59 Functions: 1 12 8.3 %

          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

Generated by: LCOV version 1.11