EIC Software
Reference for
EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
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
42
class
photonNucleusCrossSection
{
43
44
public
:
45
46
photonNucleusCrossSection
(
const
inputParameters
& input,
const
beamBeamSystem
& bbsystem);
47
~photonNucleusCrossSection
();
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
103
double
_photonNucleusSigma
;
104
105
int
_printDef
;
106
int
_impulseSelected
;
107
int
_quantumGlauber
;
// from input parameter; 1 for Quantum Glauber, 0 for classical Glauber
108
109
private
:
110
111
beamBeamSystem
_bbs
;
112
113
// copied from inputParameters
114
double
_protonEnergy
;
115
double
_electronEnergy
;
116
starlightConstants::particleTypeEnum
_particleType
;
117
int
_beamBreakupMode
;
118
bool
_backwardsProduction
;
119
int
_productionMode
;
120
int
_sigmaNucleus
;
121
122
// locally defined parameters
123
double
_slopeParameter
;
124
double
_vmPhotonCoupling
;
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
;
135
double
_maxPhotonEnergy
;
136
double
_cmsMinPhotonEnergy
;
137
double
_targetRadii
;
138
double
_maxW_GP
;
139
double
_minW_GP
;
140
141
};
142
143
144
#endif // PHOTONNUCLEUSCROSSSECTION_H
estarlight
blob
master
include
photonNucleusCrossSection.h
Built by
Jin Huang
. updated:
Mon Jan 22 2024 12:43:38
using
1.8.2 with
EIC GitHub integration