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
gammaavm.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file gammaavm.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:: 276 $: revision of last commit
24
// $Author:: jnystrand $: author of last commit
25
// $Date:: 2016-09-13 19:54:42 +0100 #$: date of last commit
26
//
27
// Description:
28
//
29
//
30
//
32
33
34
#ifndef GAMMAAVM_H
35
#define GAMMAAVM_H
36
37
38
#include <vector>
39
40
#include "
starlightconstants.h
"
41
#include "
readinluminosity.h
"
42
#include "
beambeamsystem.h
"
43
#include "
randomgenerator.h
"
44
#include "
eventchannel.h
"
45
#include "
eXevent.h
"
46
#include "
nBodyPhaseSpaceGen.h
"
47
//Now here for eSTARlight
48
#include "
photonNucleusCrossSection.h
"
49
50
class
Gammaavectormeson
:
public
eventChannel
51
{
52
53
public
:
54
Gammaavectormeson
(
const
inputParameters
& ipnut,
beamBeamSystem
& bbsystem);
55
virtual
~Gammaavectormeson
();
56
57
eXEvent
e_produceEvent
();
58
59
void
pickwy
(
double
&W,
double
&Y);
60
void
pickwEgamq2
(
double
&W,
double
&cmsEgamma,
double
&targetEgamma,
61
double
&Q2,
double
&gamma_pz,
double
& gamma_pt,
62
double
&E_prime,
double
&cos_theta_e);
63
void
momenta
(
double
W,
double
Y,
double
&E,
double
&px,
double
&py,
double
&pz,
int
&tcheck);
64
void
momenta
(
double
W,
double
Egam,
double
Q2,
double
gamma_pz,
double
gamma_pt,
65
double
&rapidity,
double
&E,
double
&px,
double
&py,
double
&pz,
66
double
&t_px,
double
&t_py,
double
&t_pz,
double
&t_E,
67
double
&e_phi,
int
&tcheck);
68
double
pTgamma
(
double
E);
69
void
vmpt
(
double
W,
double
Y,
double
&E,
double
&px,
double
&py,
double
&pz,
int
&tcheck);
70
void
twoBodyDecay
(
starlightConstants::particleTypeEnum
&ipid,
double
W,
double
px0,
double
py0,
double
pz0,
double
&px1,
double
&py1,
double
&pz1,
double
&px2,
double
&py2,
double
&pz2,
int
&iFbadevent);
71
void
twoBodyDecay
(
starlightConstants::particleTypeEnum
&ipid,
double
W,
double
px0,
double
py0,
double
pz0,
double
spin_element,
72
double
&px1,
double
&py1,
double
&pz1,
double
&px2,
double
&py2,
double
&pz2,
int
&iFbadevent);
73
bool
fourBodyDecay
(
starlightConstants::particleTypeEnum
& ipid,
const
double
E,
const
double
W,
const
double
*
p
,
lorentzVector
* decayMoms,
int
& iFbadevent);
74
void
pi0Decay
(
double
& px_pi0,
double
& py_pi0,
double
& pz_pi0,
double
& e_g1,
double
& px_g1,
double
& py_g1,
double
& pz_g1,
double
& e_g2,
double
& px_g2,
double
& py_g2,
double
& pz_g2,
int
& iFbadevent);
75
double
getMass
();
76
double
getWidth
();
77
virtual
double
getTheta
(
starlightConstants::particleTypeEnum
ipid,
double
r_04_00);
78
double
getSpinMatrixElement
(
double
W,
double
Q2,
double
epsilon
);
79
double
getSpin
();
80
double
_VMbslope
;
81
virtual
double
getDaughterMass
(
starlightConstants::particleTypeEnum
&ipid);
82
double
pseudoRapidity
(
double
px,
double
py,
double
pz);
83
84
private
:
85
std::string
gammaTableParse
(
int
ii,
int
jj);
86
starlightConstants::particleTypeEnum
_VMpidtest
;
87
int
_VMnumw
;
88
int
_VMnumy
;
89
int
_VMnumega
;
90
int
_VMnumQ2
;
91
int
_VMinterferencemode
;
92
int
_ProductionMode
;
93
double
_targetMaxPhotonEnergy
;
94
double
_targetMinPhotonEnergy
;
95
double
_cmsMaxPhotonEnergy
;
96
double
_cmsMinPhotonEnergy
;
97
double
_beamLorentzGamma
;
98
double
_targetBeamLorentzGamma
;
99
double
_rap_CM
;
100
double
_targetRadius
;
101
int
_TargetBeam
;
102
int
N0
;
103
int
N1
;
104
int
N2
;
105
double
_VMgamma_em
;
106
double
_VMNPT
;
107
double
_VMWmax
;
108
double
_VMWmin
;
109
double
_VMYmax
;
110
double
_VMYmin
;
111
double
_mass
;
112
double
_width
;
113
double
_VMptmax
;
114
double
_VMdpt
;
115
int
_bslopeDef
;
116
double
_bslopeVal
;
117
double
_pEnergy
;
118
int
_beamNucleus
;
119
double
_eEnergy
;
120
nBodyPhaseSpaceGen
*
_phaseSpaceGen
;
121
// eSTARlight
122
photonNucleusCrossSection
*
_dummy_pncs
;
123
double
_angular_max
[100][200];
124
bool
_backwardsProduction
;
125
};
126
127
class
Gammaanarrowvm
:
public
Gammaavectormeson
128
{
129
public
:
130
Gammaanarrowvm
(
const
inputParameters
& input,
beamBeamSystem
& bbsystem);
131
virtual
~Gammaanarrowvm
();
132
};
133
134
class
Gammaawidevm
:
public
Gammaavectormeson
135
{
136
public
:
137
Gammaawidevm
(
const
inputParameters
& input,
beamBeamSystem
& bbsystem);
138
virtual
~Gammaawidevm
();
139
};
140
141
class
Gammaaincoherentvm
:
public
Gammaavectormeson
142
{
143
public
:
144
Gammaaincoherentvm
(
const
inputParameters
& input,
beamBeamSystem
& bbsystem);
145
virtual
~Gammaaincoherentvm
();
146
};
147
class
e_Gammaanarrowvm
:
public
Gammaavectormeson
148
{
149
public
:
150
e_Gammaanarrowvm
(
const
inputParameters
& input,
beamBeamSystem
& bbsystem);
151
virtual
~e_Gammaanarrowvm
();
152
};
153
154
class
e_Gammaawidevm
:
public
Gammaavectormeson
155
{
156
public
:
157
e_Gammaawidevm
(
const
inputParameters
& input,
beamBeamSystem
& bbsystem);
158
virtual
~e_Gammaawidevm
();
159
};
160
161
#endif // GAMMAAVM_H
estarlight
blob
master
include
gammaavm.h
Built by
Jin Huang
. updated:
Mon Jan 22 2024 12:43:38
using
1.8.2 with
EIC GitHub integration