ECCE @ EIC Software
Reference for
ECCE @ 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
G4ParticleHPInelasticCompFS.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4ParticleHPInelasticCompFS.hh
1
//
2
// ********************************************************************
3
// * License and Disclaimer *
4
// * *
5
// * The Geant4 software is copyright of the Copyright Holders of *
6
// * the Geant4 Collaboration. It is provided under the terms and *
7
// * conditions of the Geant4 Software License, included in the file *
8
// * LICENSE and available at http://cern.ch/geant4/license . These *
9
// * include a list of copyright holders. *
10
// * *
11
// * Neither the authors of this software system, nor their employing *
12
// * institutes,nor the agencies providing financial support for this *
13
// * work make any representation or warranty, express or implied, *
14
// * regarding this software system or assume any liability for its *
15
// * use. Please see the license in the file LICENSE and URL above *
16
// * for the full disclaimer and the limitation of liability. *
17
// * *
18
// * This code implementation is the result of the scientific and *
19
// * technical work of the GEANT4 collaboration. *
20
// * By using, copying, modifying or distributing the software (or *
21
// * any work based on the software) you agree to acknowledge its *
22
// * use in resulting scientific publications, and indicate your *
23
// * acceptance of all terms of the Geant4 Software license. *
24
// ********************************************************************
25
//
26
//
27
// P. Arce, June-2014 Conversion neutron_hp to particle_hp
28
//
29
// June-2019 - E. Mendoza - re-build "two_body_reaction", to be used by
30
// incident charged particles (now isotropic emission in the CMS).
31
// Also restrict nresp use below 20 MeV (for future developments).
32
// Add photon emission when no data available.
33
34
#ifndef G4ParticleHPInelasticCompFS_h
35
#define G4ParticleHPInelasticCompFS_h 1
36
37
#include "
globals.hh
"
38
#include "
G4HadProjectile.hh
"
39
#include "
G4HadFinalState.hh
"
40
#include "
G4ParticleHPFinalState.hh
"
41
#include "
G4ParticleHPAngular.hh
"
42
#include "
G4ParticleHPEnergyDistribution.hh
"
43
#include "
G4ParticleHPEnAngCorrelation.hh
"
44
#include "
G4ParticleHPPhotonDist.hh
"
45
#include "
G4ParticleHPDeExGammas.hh
"
46
#include "
G4Nucleus.hh
"
47
48
#include "
G4NRESP71M03.hh
"
49
50
class
G4ParticleHPInelasticCompFS
:
public
G4ParticleHPFinalState
51
{
52
public
:
53
54
G4ParticleHPInelasticCompFS
()
55
{
56
QI
.resize(51);
57
LR
.resize(51);
58
for
(
G4int
i=0; i<51; i++) {
59
hasXsec
=
true
;
60
theXsection
[i] = 0;
61
theEnergyDistribution
[i] = 0;
62
theAngularDistribution
[i] = 0;
63
theEnergyAngData
[i] = 0;
64
theFinalStatePhotons
[i] = 0;
65
QI
[i] = 0.0;
66
LR
[i] = 0;
67
}
68
}
69
70
virtual
~G4ParticleHPInelasticCompFS
()
71
{
72
for
(
G4int
i=0; i<51; i++) {
73
if
(
theXsection
[i] != 0)
delete
theXsection
[i];
74
if
(
theEnergyDistribution
[i] != 0)
delete
theEnergyDistribution
[i];
75
if
(
theAngularDistribution
[i] != 0)
delete
theAngularDistribution
[i];
76
if
(
theEnergyAngData
[i] != 0)
delete
theEnergyAngData
[i];
77
if
(
theFinalStatePhotons
[i] != 0)
delete
theFinalStatePhotons
[i];
78
}
79
}
80
81
void
Init
(
G4double
A
,
G4double
Z
,
G4int
M,
G4String
& dirName,
82
G4String
& aSFType,
G4ParticleDefinition
*);
83
84
void
InitGammas
(
G4double
AR,
G4double
ZR);
85
86
virtual
G4HadFinalState
*
ApplyYourself
(
const
G4HadProjectile
& theTrack) = 0;
87
88
virtual
G4ParticleHPFinalState
*
New
() = 0;
89
90
virtual
G4double
GetXsec
(
G4double
anEnergy)
91
{
92
return
std::max
(0.,
theXsection
[50]->GetY(anEnergy));
93
}
94
95
virtual
G4ParticleHPVector
*
GetXsec
() {
return
theXsection
[50]; }
96
97
G4int
SelectExitChannel
(
G4double
eKinetic);
98
99
void
CompositeApply
(
const
G4HadProjectile
& theTrack,
100
G4ParticleDefinition
* aHadron);
101
102
inline
void
InitDistributionInitialState
(
G4ReactionProduct
& anIncidentPart,
103
G4ReactionProduct
& aTarget,
104
G4int
it
)
105
{
106
if
(
theAngularDistribution
[it] != 0) {
107
theAngularDistribution
[
it
]->
SetTarget
(aTarget);
108
theAngularDistribution
[
it
]->
SetProjectileRP
(anIncidentPart);
109
}
110
111
if
(
theEnergyAngData
[it] != 0) {
112
theEnergyAngData
[
it
]->
SetTarget
(aTarget);
113
theEnergyAngData
[
it
]->
SetProjectileRP
(anIncidentPart);
114
}
115
}
116
117
protected
:
118
119
G4ParticleHPVector
*
theXsection
[51];
120
G4ParticleHPEnergyDistribution
*
theEnergyDistribution
[51];
121
G4ParticleHPAngular
*
theAngularDistribution
[51];
122
G4ParticleHPEnAngCorrelation
*
theEnergyAngData
[51];
123
124
G4ParticleHPPhotonDist
*
theFinalStatePhotons
[51];
125
126
G4ParticleHPDeExGammas
theGammas
;
127
G4String
gammaPath
;
128
129
protected
:
130
std::vector<G4double>
QI
;
131
std::vector<G4int>
LR
;
132
133
private
:
134
// (projectile, target, hadron, mu of hadron)
135
void
two_body_reaction
(
G4ReactionProduct
*
proj
,
G4ReactionProduct
*
targ
,
136
G4ReactionProduct
* product,
G4double
resExcitationEnergy);
137
138
G4NRESP71M03
nresp71_model
;
139
G4bool
use_nresp71_model
(
const
G4ParticleDefinition
* aDefinition,
const
G4int
it
,
140
const
G4ReactionProduct
&
theTarget
,
G4ReactionProduct
& boosted);
141
142
};
143
144
#endif
geant4
tree
geant4-10.6-release
source
processes
hadronic
models
particle_hp
include
G4ParticleHPInelasticCompFS.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:47
using
1.8.2 with
ECCE GitHub integration