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
EICPhysicsList.cc
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file EICPhysicsList.cc
1
// $Id: $
3
// //
4
// File: EICPhysicsList.hh //
5
// Description: Geant4 physics list for Electron Ion Collider detectors //
6
// //
7
// Author: Dennis H. Wright (SLAC) //
8
// Date: 21 June 2018 //
9
// //
11
12
#include "
EICPhysicsList.hh
"
13
14
#include "
ProtonPhysics.hh
"
15
#include "
NeutronPhysics.hh
"
16
#include "
PionPhysics.hh
"
17
#include "
KaonPhysics.hh
"
18
#include "
HyperonPhysics.hh
"
19
#include "
AntiBaryonPhysics.hh
"
20
#include "
IonPhysics.hh
"
21
#include "
GammaLeptoNuclearPhysics.hh
"
22
23
#include <Geant4/G4SystemOfUnits.hh>
24
#include <Geant4/G4UnitsTable.hh>
25
26
#include <Geant4/G4EmStandardPhysics.hh>
27
#include <Geant4/G4EmExtraPhysics.hh>
28
#include <Geant4/G4OpticalPhysics.hh>
29
#include <Geant4/G4EmParameters.hh>
30
#include <Geant4/G4DecayPhysics.hh>
31
#include <Geant4/G4NuclideTable.hh>
32
// #include <Geant4/G4RadioactiveDecayPhysics.hh>
33
34
// particles
35
36
#include <Geant4/G4BosonConstructor.hh>
37
#include <Geant4/G4LeptonConstructor.hh>
38
#include <Geant4/G4MesonConstructor.hh>
39
#include <Geant4/G4BaryonConstructor.hh>
40
#include <Geant4/G4IonConstructor.hh>
41
#include <Geant4/G4ShortLivedConstructor.hh>
42
43
44
EICPhysicsList::EICPhysicsList
()
45
:
G4VModularPhysicsList
()
46
{
47
G4int
verb = 1;
48
SetVerboseLevel
(verb);
49
50
//add new units for radioActive decays
51
//
52
new
G4UnitDefinition
(
"millielectronVolt"
,
"meV"
,
"Energy"
, 1.
e
-3*
eV
);
53
//
54
const
G4double
minute = 60*
second
;
55
const
G4double
hour = 60*minute;
56
const
G4double
day = 24*hour;
57
const
G4double
year = 365*day;
58
new
G4UnitDefinition
(
"minute"
,
"min"
,
"Time"
, minute);
59
new
G4UnitDefinition
(
"hour"
,
"h"
,
"Time"
, hour);
60
new
G4UnitDefinition
(
"day"
,
"d"
,
"Time"
, day);
61
new
G4UnitDefinition
(
"year"
,
"y"
,
"Time"
, year);
62
63
// Mandatory for G4NuclideTable
64
// Half-life threshold must be set small or many short-lived isomers
65
// will not be assigned life times (default to 0)
66
G4NuclideTable::GetInstance
()->
SetThresholdOfHalfLife
(0.1*
picosecond
);
67
G4NuclideTable::GetInstance
()->
SetLevelTolerance
(1.0*
eV
);
68
69
// EM physics
70
RegisterPhysics
(
new
G4EmStandardPhysics
());
71
G4EmParameters
* param =
G4EmParameters::Instance
();
72
param->
SetAugerCascade
(
true
);
73
#if G4VERSION_NUMBER >= 1004
74
param->
SetStepFunction
(1., 1*
CLHEP::mm
);
75
param->
SetStepFunctionMuHad
(1., 1*
CLHEP::mm
);
76
#endif
77
78
// Decay
79
RegisterPhysics
(
new
G4DecayPhysics
());
80
81
// Radioactive decay
82
// RegisterPhysics(new G4RadioactiveDecayPhysics());
83
84
// Hadronic physics
85
RegisterPhysics
(
new
ProtonPhysics
() );
86
RegisterPhysics
(
new
NeutronPhysics
() );
87
RegisterPhysics
(
new
PionPhysics
() );
88
RegisterPhysics
(
new
KaonPhysics
() );
89
RegisterPhysics
(
new
HyperonPhysics
() );
90
RegisterPhysics
(
new
AntiBaryonPhysics
() );
91
RegisterPhysics
(
new
IonPhysics
() );
92
RegisterPhysics
(
new
GammaLeptoNuclearPhysics
() );
93
94
// Gamma-Nuclear Physics
95
// G4EmExtraPhysics* gnuc = new G4EmExtraPhysics(verb);
96
// gnuc->ElectroNuclear(false);
97
// gnuc->MuonNuclear(false);
98
// RegisterPhysics(gnuc);
99
100
// Optical physics
101
RegisterPhysics
(
new
G4OpticalPhysics
() );
102
}
103
104
105
EICPhysicsList::~EICPhysicsList
()
106
{}
107
108
109
void
EICPhysicsList::ConstructParticle
()
110
{
111
G4BosonConstructor
pBosonConstructor;
112
pBosonConstructor.
ConstructParticle
();
113
114
G4LeptonConstructor
pLeptonConstructor;
115
pLeptonConstructor.
ConstructParticle
();
116
117
G4MesonConstructor
pMesonConstructor;
118
pMesonConstructor.
ConstructParticle
();
119
120
G4BaryonConstructor
pBaryonConstructor;
121
pBaryonConstructor.
ConstructParticle
();
122
123
G4IonConstructor
pIonConstructor;
124
pIonConstructor.
ConstructParticle
();
125
126
G4ShortLivedConstructor
pShortLivedConstructor;
127
pShortLivedConstructor.
ConstructParticle
();
128
}
129
130
131
void
EICPhysicsList::SetCuts
()
132
{
133
SetCutValue
(0.7*
mm
,
"proton"
);
134
SetCutValue
(0.7*
mm
,
"e-"
);
135
SetCutValue
(0.7*
mm
,
"e+"
);
136
SetCutValue
(0.7*
mm
,
"gamma"
);
137
}
138
coresoftware
blob
master
simulation
g4simulation
EICPhysicsList
EICPhysicsList.cc
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:40
using
1.8.2 with
ECCE GitHub integration