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
PhysicsList.cc
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file PhysicsList.cc
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
//
28
//
29
30
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
31
32
#include "PhysicsList.hh"
33
34
#include "
G4SystemOfUnits.hh
"
35
#include "
G4UnitsTable.hh
"
36
37
#include "HadronElasticPhysicsHP.hh"
38
39
#include "
G4HadronPhysicsFTFP_BERT_HP.hh
"
40
#include "
G4HadronPhysicsQGSP_BIC_HP.hh
"
41
#include "
G4HadronPhysicsQGSP_BIC_AllHP.hh
"
42
#include "
G4HadronInelasticQBBC.hh
"
43
#include "
G4HadronPhysicsINCLXX.hh
"
44
45
#include "
G4IonElasticPhysics.hh
"
46
#include "
G4IonPhysicsXS.hh
"
47
#include "
G4IonPhysicsPHP.hh
"
48
#include "
G4IonINCLXXPhysics.hh
"
49
50
#include "
G4StoppingPhysics.hh
"
51
#include "GammaNuclearPhysics.hh"
52
53
#include "ElectromagneticPhysics.hh"
54
#include "
G4EmStandardPhysics.hh
"
55
#include "
G4DecayPhysics.hh
"
56
#include "
G4RadioactiveDecayPhysics.hh
"
57
58
#include "
G4Neutron.hh
"
59
#include "
G4ProcessManager.hh
"
60
#include "
G4HadronicInteraction.hh
"
61
62
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
63
64
PhysicsList::PhysicsList
()
65
:
G4VModularPhysicsList
(),
66
fHadronElastic
(nullptr),
fHadronInelastic
(nullptr),
67
fIonElastic(nullptr), fIonInelastic(nullptr),
68
fGammaNuclear(nullptr),
fElectromagnetic
(nullptr),
69
fDecay
(nullptr),
fRadioactiveDecay
(nullptr)
70
{
71
G4int
verb = 0;
72
SetVerboseLevel
(verb);
73
74
//add new units
75
//
76
new
G4UnitDefinition
(
"millielectronVolt"
,
"meV"
,
"Energy"
, 1.
e
-3*
eV
);
77
new
G4UnitDefinition
(
"mm2/g"
,
"mm2/g"
,
"Surface/Mass"
,
mm2
/
g
);
78
new
G4UnitDefinition
(
"um2/mg"
,
"um2/mg"
,
"Surface/Mass"
,
um
*
um
/
mg
);
79
80
// Hadron Elastic scattering
81
fHadronElastic
=
new
HadronElasticPhysicsHP
(verb);
82
RegisterPhysics
(
fHadronElastic
);
83
84
// Hadron Inelastic Physics
86
fHadronInelastic
=
new
G4HadronPhysicsQGSP_BIC_HP
(verb);
90
RegisterPhysics
(
fHadronInelastic
);
91
92
// Ion Elastic Physics
93
fIonElastic
=
new
G4IonElasticPhysics
(verb);
94
RegisterPhysics
(
fIonElastic
);
95
96
// Ion Inelastic Physics
97
fIonInelastic
=
new
G4IonPhysicsXS
(verb);
100
RegisterPhysics
(
fIonInelastic
);
101
102
// stopping Particles
104
105
// Gamma-Nuclear Physics
106
fGammaNuclear
=
new
GammaNuclearPhysics
(
"gamma"
);
107
RegisterPhysics
(
fGammaNuclear
);
108
109
// EM physics
110
fElectromagnetic
=
new
ElectromagneticPhysics
();
112
RegisterPhysics
(
fElectromagnetic
);
113
114
// Decay
115
fDecay
=
new
G4DecayPhysics
();
116
RegisterPhysics
(
fDecay
);
117
118
// Radioactive decay
119
fRadioactiveDecay
=
new
G4RadioactiveDecayPhysics
();
120
RegisterPhysics
(
fRadioactiveDecay
);
121
}
122
123
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
124
125
PhysicsList::~PhysicsList
()
126
{ }
127
128
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
129
130
void
PhysicsList::ConstructProcess
()
131
{
132
// Transportation first (mandatory)
133
//
134
AddTransportation
();
135
136
// Physics constructors
137
//
138
fHadronElastic
->
ConstructProcess
();
139
fHadronInelastic
->
ConstructProcess
();
140
fIonElastic
->
ConstructProcess
();
141
fIonInelastic
->
ConstructProcess
();
142
fGammaNuclear
->
ConstructProcess
();
143
fElectromagnetic
->
ConstructProcess
();
144
fDecay
->
ConstructProcess
();
145
fRadioactiveDecay
->
ConstructProcess
();
146
147
// example of GetHadronicModel (due to bug in QGSP_BIC_AllHP)
148
//
149
G4ProcessManager
* pManager =
G4Neutron::Neutron
()->
GetProcessManager
();
150
G4HadronicProcess
* process
151
=
dynamic_cast<
G4HadronicProcess
*
>
(pManager->
GetProcess
(
"nCapture"
));
152
G4HadronicInteraction
*
model
= process->
GetHadronicModel
(
"nRadCapture"
);
153
if
(model) model->
SetMinEnergy
(19.9*
MeV
);
154
}
155
156
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
157
158
void
PhysicsList::SetCuts
()
159
{
160
SetCutValue
(0*
mm
,
"proton"
);
161
SetCutValue
(10*
km
,
"e-"
);
162
SetCutValue
(10*
km
,
"e+"
);
163
SetCutValue
(10*
km
,
"gamma"
);
164
}
165
166
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
geant4
tree
geant4-10.6-release
examples
extended
hadronic
NeutronSource
src
PhysicsList.cc
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:50
using
1.8.2 with
ECCE GitHub integration