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
31
#include "PhysicsList.hh"
32
33
#include "
G4SystemOfUnits.hh
"
34
#include "
G4UnitsTable.hh
"
35
36
#include "
G4EmStandardPhysics.hh
"
37
#include "
G4EmExtraPhysics.hh
"
38
#include "
G4EmParameters.hh
"
39
#include "
G4DecayPhysics.hh
"
40
#include "
G4NuclideTable.hh
"
41
#include "
BiasedRDPhysics.hh
"
42
#include "
G4HadronElasticPhysics.hh
"
43
#include "
G4HadronPhysicsFTFP_BERT.hh
"
44
#include "
G4HadronInelasticQBBC.hh
"
45
#include "
G4HadronPhysicsINCLXX.hh
"
46
#include "
G4IonElasticPhysics.hh
"
47
#include "
G4IonPhysics.hh
"
48
#include "
G4IonINCLXXPhysics.hh
"
49
50
// particles
51
52
#include "
G4BosonConstructor.hh
"
53
#include "
G4LeptonConstructor.hh
"
54
#include "
G4MesonConstructor.hh
"
55
#include "
G4BosonConstructor.hh
"
56
#include "
G4BaryonConstructor.hh
"
57
#include "
G4IonConstructor.hh
"
58
#include "
G4ShortLivedConstructor.hh
"
59
60
61
PhysicsList::PhysicsList
()
62
:
G4VModularPhysicsList
()
63
{
64
G4int
verb = 1;
65
SetVerboseLevel
(verb);
66
67
//add new units for radioActive decays
68
//
69
new
G4UnitDefinition
(
"millielectronVolt"
,
"meV"
,
"Energy"
, 1.
e
-3*
eV
);
70
//
71
const
G4double
minute = 60*
second
;
72
const
G4double
hour = 60*minute;
73
const
G4double
day = 24*hour;
74
const
G4double
year = 365*day;
75
new
G4UnitDefinition
(
"minute"
,
"min"
,
"Time"
, minute);
76
new
G4UnitDefinition
(
"hour"
,
"h"
,
"Time"
, hour);
77
new
G4UnitDefinition
(
"day"
,
"d"
,
"Time"
, day);
78
new
G4UnitDefinition
(
"year"
,
"y"
,
"Time"
, year);
79
80
// Mandatory for G4NuclideTable
81
// Half-life threshold must be set small or many short-lived isomers
82
// will not be assigned life times (default to 0)
83
G4NuclideTable::GetInstance
()->
SetThresholdOfHalfLife
(0.1*
picosecond
);
84
G4NuclideTable::GetInstance
()->
SetLevelTolerance
(1.0*
eV
);
85
86
// EM physics
87
RegisterPhysics
(
new
G4EmStandardPhysics
());
88
G4EmParameters
* param =
G4EmParameters::Instance
();
89
param->
SetAugerCascade
(
true
);
90
param->
SetStepFunction
(1., 1*
CLHEP::mm
);
91
param->
SetStepFunctionMuHad
(1., 1*
CLHEP::mm
);
92
93
// Decay
94
RegisterPhysics
(
new
G4DecayPhysics
());
95
96
// Radioactive decay
97
RegisterPhysics
(
new
BiasedRDPhysics
());
98
99
// Hadron Elastic scattering
100
RegisterPhysics
(
new
G4HadronElasticPhysics
(verb) );
101
102
// Hadron Inelastic physics
103
RegisterPhysics
(
new
G4HadronPhysicsFTFP_BERT
(verb));
106
107
// Ion Elastic scattering
108
RegisterPhysics
(
new
G4IonElasticPhysics
(verb));
109
110
// Ion Inelastic physics
111
RegisterPhysics
(
new
G4IonPhysics
(verb));
113
114
// Gamma-Nuclear Physics
115
G4EmExtraPhysics
* gnuc =
new
G4EmExtraPhysics
(verb);
116
gnuc->
ElectroNuclear
(
false
);
117
gnuc->
MuonNuclear
(
false
);
118
RegisterPhysics
(gnuc);
119
}
120
121
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
122
123
PhysicsList::~PhysicsList
()
124
{ }
125
126
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
127
128
void
PhysicsList::ConstructParticle
()
129
{
130
G4BosonConstructor
pBosonConstructor;
131
pBosonConstructor.
ConstructParticle
();
132
133
G4LeptonConstructor
pLeptonConstructor;
134
pLeptonConstructor.
ConstructParticle
();
135
136
G4MesonConstructor
pMesonConstructor;
137
pMesonConstructor.
ConstructParticle
();
138
139
G4BaryonConstructor
pBaryonConstructor;
140
pBaryonConstructor.
ConstructParticle
();
141
142
G4IonConstructor
pIonConstructor;
143
pIonConstructor.
ConstructParticle
();
144
145
G4ShortLivedConstructor
pShortLivedConstructor;
146
pShortLivedConstructor.
ConstructParticle
();
147
}
148
149
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
150
151
void
PhysicsList::SetCuts
()
152
{
153
SetCutValue
(0*
mm
,
"proton"
);
154
SetCutValue
(10*
km
,
"e-"
);
155
SetCutValue
(10*
km
,
"e+"
);
156
SetCutValue
(10*
km
,
"gamma"
);
157
}
158
159
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
geant4
tree
geant4-10.6-release
examples
extended
radioactivedecay
rdecay02
src
PhysicsList.cc
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:51
using
1.8.2 with
ECCE GitHub integration