]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STARLIGHT/starlight/include/photonNucleusCrossSection.h
STARLIGHT update:
[u/mrichter/AliRoot.git] / STARLIGHT / starlight / include / photonNucleusCrossSection.h
1 ///////////////////////////////////////////////////////////////////////////
2 //
3 //    Copyright 2010
4 //
5 //    This file is part of starlight.
6 //
7 //    starlight is free software: you can redistribute it and/or modify
8 //    it under the terms of the GNU General Public License as published by
9 //    the Free Software Foundation, either version 3 of the License, or
10 //    (at your option) any later version.
11 //
12 //    starlight is distributed in the hope that it will be useful,
13 //    but WITHOUT ANY WARRANTY; without even the implied warranty of
14 //    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 //    GNU General Public License for more details.
16 //
17 //    You should have received a copy of the GNU General Public License
18 //    along with starlight. If not, see <http://www.gnu.org/licenses/>.
19 //
20 ///////////////////////////////////////////////////////////////////////////
21 //
22 // File and Version Information:
23 // $Rev:: 192                         $: revision of last commit
24 // $Author:: jnystrand                $: author of last commit
25 // $Date:: 2014-12-01 20:39:25 +0100 #$: date of last commit
26 //
27 // Description:
28 //
29 //
30 //
31 ///////////////////////////////////////////////////////////////////////////
32
33
34 #ifndef PHOTONNUCLEUSCROSSSECTION_H
35 #define PHOTONNUCLEUSCROSSSECTION_H
36
37
38 #include "starlightconstants.h"
39 #include "beambeamsystem.h"
40
41
42 class photonNucleusCrossSection {
43
44 public:
45
46         photonNucleusCrossSection(const beamBeamSystem&  bbsystem);
47         ~photonNucleusCrossSection();
48   
49         double         slopeParameter  () const { return _slopeParameter;   }  ///< returns slope of t-distribution [(GeV/c)^{-2}]
50         double         getChannelMass  () const { return _channelMass;      }  ///< returns mass of the produced system [GeV/c^2]
51         double         getBNORM        () const { return _BNORM;            }
52         double         luminosity      () const { return _luminosity;       }  ///< returns luminosity [10^{26} cm^{-2} sec^{-1}]
53         beamBeamSystem getbbs          () const { return _bbs;              }  ///< returns beamBeamSystem
54         double         vmPhotonCoupling() const { return _vmPhotonCoupling; }  ///< vectormeson-photon coupling constant f_v / 4 pi (cf. Eq. 10 in KN PRC 60 (1999) 014903)
55         double         getDefaultC     () const { return _defaultC;         }
56         double         maxPhotonEnergy () const { return _maxPhotonEnergy;  }  ///< returns max photon energy in lab frame [GeV] (for vectormesons only)
57
58         void crossSectionCalculation(const double bwnormsave);
59         // Will think about it...For VMs we just calculate it
60         // So just use the wide or narrow constructor to calculate it
61         // wide/narrow will inherit this.
62         double getcsgA(const double Egamma,
63                        const double W,
64                        const int beam);
65         double photonFlux(const double Egamma,
66                        const int beam);
67         double sigmagp(const double Wgp);
68         double sigma_A(const double sig_N, 
69                        const int beam);
70         double sigma_N(const double Wgp);
71         double breitWigner(const double W,
72                            const double C);
73         double nepoint(const double Egamma,
74                        const double bmin);
75         
76 protected:
77         const unsigned int _nWbins;
78         const unsigned int _nYbins;
79         
80         const double _wMin;
81         const double _wMax;
82         const double _yMax;
83         
84         const double _beamLorentzGamma;
85         
86 private:
87
88         beamBeamSystem _bbs;
89   
90         // copied from inputParameters
91         double                               _protonEnergy;
92         starlightConstants::particleTypeEnum _particleType;
93         int                                  _beamBreakupMode;     ///< breakup mode for beam particles
94         bool                                 _coherentProduction;  ///< if true, production is coherent, else incoherent
95         double                               _incoherentFactor;    ///< allows to scale the incoherent contribution in vector meson production
96         int                                  _productionMode; 
97         int                                  _sigmaNucleus; 
98
99         // locally defined parameters
100         double _slopeParameter;    ///< slope of t-distribution [(GeV/c)^{-2}]
101         double _vmPhotonCoupling;  ///< vectormeson-photon coupling constant f_v / 4 pi (cf. Eq. 10 in KN PRC 60 (1999) 014903)
102         double _ANORM;
103         double _BNORM;
104         double _defaultC;
105         double _luminosity;       ///< luminosity [10^{26} cm^{-2} sec^{-1}]
106         double _maxPhotonEnergy;  ///< max photon energy in lab frame [GeV] (for vectormesons only)
107         double _width;            ///< width of the produced system  [GeV/c^2]
108         double _channelMass;      ///< mass of the produced system  [GeV/c^2]
109         
110 };
111
112
113 #endif  // PHOTONNUCLEUSCROSSSECTION_H