EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
photonNucleusCrossSection.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file 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 //
21 //
22 // File and Version Information:
23 // $Rev:: 259 $: revision of last commit
24 // $Author:: jseger $: author of last commit
25 // $Date:: 2016-04-19 01:58:25 +0100 #$: date of last commit
26 //
27 // Description:
28 //
29 //
30 //
32 
33 
34 #ifndef PHOTONNUCLEUSCROSSSECTION_H
35 #define PHOTONNUCLEUSCROSSSECTION_H
36 
37 
38 #include "starlightconstants.h"
39 #include "beambeamsystem.h"
40 #include "inputParameters.h"
41 
43 
44 public:
45 
46  photonNucleusCrossSection(const inputParameters& input, const beamBeamSystem& bbsystem);
48 
49  double slopeParameter () const { return _slopeParameter; }
50  double getChannelMass () const { return _channelMass; }
51  double getBNORM () const { return _BNORM; }
52  beamBeamSystem getbbs () const { return _bbs; }
53  double vmPhotonCoupling() const { return _vmPhotonCoupling; }
54  double vmQ2Power (double Q2) const { return _vmQ2Power_c1+ _vmQ2Power_c2*(_channelMass*_channelMass + Q2); }
55  double getDefaultC () const { return _defaultC; }
56  double maxPhotonEnergy () const { return _maxPhotonEnergy; }
57 
58  void crossSectionCalculation(const double bwnormsave);
59  double backwardsPropagationOmegaCrossSection(const double targetEgamma);
60 
61  // Use the wide or narrow constructor to calculate sigma
62  // wide/narrow will inherit this.
63  double getcsgA(const double Egamma,
64  const double Q2,
65  const int beam);
66  double e_getcsgA(const double Egamma, double Q2,
67  const double W,
68  const int beam);
69  // Midification to csg due to virtuality
70  double getcsgA_Q2_dep(const double Q2);
71  double photonFlux(const double Egamma,
72  const int beam);
73  // --- Added for electron
74  double photonFlux(const double Egamma,
75  const double Q2);
76  double integrated_Q2_dep(const double Egamma, const double _min = 0 , const double _max = 0);
77  double integrated_x_section(const double Egamma, const double _min = 0 , const double _max = 0);
78  std::pair<double,double>* Q2arraylimits(double const Egamma);
79  double g(double const Egamma, double const Q2);
80  // ---
81  double sigmagp(const double Wgp);
82  double sigma_A(const double sig_N,
83  const int beam);
84  double sigma_N(const double Wgp);
85  double breitWigner(const double W,
86  const double C);
87  double nepoint(const double Egamma,
88  const double bmin);
89 
90  double getPhotonNucleusSigma () const {return _photonNucleusSigma;}
91  void setPhotonNucleusSigma (double sigma) {_photonNucleusSigma = sigma;}
92 
93 protected:
94  const unsigned int _nWbins;
95  const unsigned int _nYbins;
96 
97  const double _wMin;
98  const double _wMax;
99  const double _yMax;
100 
101  const double _beamLorentzGamma;
102 
104 
105  int _printDef;
107  int _quantumGlauber; // from input parameter; 1 for Quantum Glauber, 0 for classical Glauber
108 
109 private:
110 
112 
113  // copied from inputParameters
121 
122  // locally defined parameters
125  double _vmQ2Power_c1;
126  double _vmQ2Power_c2;
127  double _ANORM;
128  double _BNORM;
129  double _defaultC;
130  double _width;
131  double _channelMass;
132  double _fixedQ2range;
133  double _minQ2;
134  double _maxQ2;
137  double _targetRadii;
138  double _maxW_GP;
139  double _minW_GP;
140 
141 };
142 
143 
144 #endif // PHOTONNUCLEUSCROSSSECTION_H