]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STARLIGHT/starlight/include/photonNucleusCrossSection.h
nbins added as data member + axes renamed
[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:: 164                         $: revision of last commit
24 // $Author:: odjuvsla                 $: author of last commit
25 // $Date:: 2013-10-06 16:18:08 +0200 #$: 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         double photonFlux(const double Egamma);
65         double sigmagp(const double Wgp);
66         double sigma_A(const double sig_N);
67         double sigma_N(const double Wgp);
68         double breitWigner(const double W,
69                            const double C);
70         double nepoint(const double Egamma,
71                        const double bmin);
72         
73 protected:
74         const unsigned int _nWbins;
75         const unsigned int _nYbins;
76         
77         const double _wMin;
78         const double _wMax;
79         const double _yMax;
80         
81         const double _beamLorentzGamma;
82         
83 private:
84
85         beamBeamSystem _bbs;
86   
87         // copied from inputParameters
88         double                               _protonEnergy;
89         starlightConstants::particleTypeEnum _particleType;
90         int                                  _beamBreakupMode;     ///< breakup mode for beam particles
91         bool                                 _coherentProduction;  ///< if true, production is coherent, else incoherent
92         double                               _incoherentFactor;    ///< allows to scale the incoherent contribution in vector meson production
93         int                                  _productionMode; 
94         int                                  _sigmaNucleus; 
95
96         // locally defined parameters
97         double _slopeParameter;    ///< slope of t-distribution [(GeV/c)^{-2}]
98         double _vmPhotonCoupling;  ///< vectormeson-photon coupling constant f_v / 4 pi (cf. Eq. 10 in KN PRC 60 (1999) 014903)
99         double _ANORM;
100         double _BNORM;
101         double _defaultC;
102         double _luminosity;       ///< luminosity [10^{26} cm^{-2} sec^{-1}]
103         double _maxPhotonEnergy;  ///< max photon energy in lab frame [GeV] (for vectormesons only)
104         double _width;            ///< width of the produced system  [GeV/c^2]
105         double _channelMass;      ///< mass of the produced system  [GeV/c^2]
106         
107 };
108
109
110 #endif  // PHOTONNUCLEUSCROSSSECTION_H