Geant4
11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4ExcitedBaryonConstructor.cc
Go to the documentation of this file.
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
// GEANT 4 class implementation file
28
//
29
// History: first implementation, based on object model of
30
// 10 oct 1998 H.Kurashige
31
// ---------------------------------------------------------------
32
33
#include "
G4ExcitedBaryonConstructor.hh
"
34
35
#include "
G4ExcitedBaryons.hh
"
36
#include "
G4ParticleDefinition.hh
"
37
#include "
G4ParticleTable.hh
"
38
#include "
G4SystemOfUnits.hh
"
39
40
G4ExcitedBaryonConstructor::G4ExcitedBaryonConstructor
(
G4int
nStates,
G4int
isoSpin)
41
: NumberOfStates(nStates), iIsoSpin(isoSpin), type(
"baryon"
)
42
{}
43
44
void
G4ExcitedBaryonConstructor::Construct
(
G4int
idx)
45
{
46
if
(idx < 0) {
47
for
(
G4int
state = 0; state <
NumberOfStates
; state += 1) {
48
ConstructParticle
(state);
49
ConstructAntiParticle
(state);
50
}
51
}
52
else
if
(idx <
NumberOfStates
) {
53
ConstructParticle
(idx);
54
ConstructAntiParticle
(idx);
55
}
56
else
{
57
#ifdef G4VERBOSE
58
if
(
G4ParticleTable::GetParticleTable
()->GetVerboseLevel() > 1) {
59
G4cerr
<<
"G4ExcitedBaryonConstructor::Construct()"
;
60
G4cerr
<<
" illegal index os state = "
<< idx <<
G4endl
;
61
}
62
#endif
63
}
64
}
65
66
void
G4ExcitedBaryonConstructor::ConstructParticle
(
G4int
idx)
67
{
68
if
(!
Exist
(idx))
return
;
69
70
// Construct Resonace particles as dynamic object
71
// Arguments for constructor are as follows
72
// name mass width charge
73
// 2*spin parity C-conjugation
74
// 2*Isospin 2*Isospin3 G-parity
75
// type lepton number baryon number PDG encoding
76
// stable lifetime decay table
77
78
G4String
name;
79
G4ParticleDefinition
* particle;
80
81
for
(
G4int
iIso3 = -1 *
iIsoSpin
; iIso3 <=
iIsoSpin
; iIso3 += 2) {
82
name =
GetName
(iIso3, idx);
83
84
// clang-format off
85
particle =
new
G4ExcitedBaryons
(
86
name,
GetMass
(idx,iIso3),
GetWidth
(idx,iIso3),
GetCharge
(iIso3),
87
GetiSpin
(idx),
GetiParity
(idx),
iConjugation
,
88
iIsoSpin
, iIso3,
iGParity
,
89
type
,
leptonNumber
,
baryonNumber
,
GetEncoding
( iIso3,idx),
90
false
, 0.0,
nullptr
91
);
92
// clang-format on
93
94
((
G4ExcitedBaryons
*)(particle))->SetMultipletName(
GetMultipletName
(idx));
95
particle->
SetDecayTable
(
CreateDecayTable
(name, iIso3, idx,
false
));
96
}
97
}
98
99
void
G4ExcitedBaryonConstructor::ConstructAntiParticle
(
G4int
idx)
100
{
101
if
(!
Exist
(idx))
return
;
102
103
// Construct Resonace particles as dynamic object
104
// Arguments for constructor are as follows
105
// name mass width charge
106
// 2*spin parity C-conjugation
107
// 2*Isospin 2*Isospin3 G-parity
108
// type lepton number baryon number PDG encoding
109
// stable lifetime decay table
110
111
G4String
name;
112
G4ParticleDefinition
* particle;
113
114
for
(
G4int
iIso3 = -1 *
iIsoSpin
; iIso3 <=
iIsoSpin
; iIso3 += 2) {
115
name =
GetName
(iIso3, idx);
116
name =
"anti_"
+ name;
117
118
// clang-format off
119
particle =
new
G4ExcitedBaryons
(
120
name,
GetMass
(idx,iIso3),
GetWidth
(idx,iIso3), -1.0*
GetCharge
(iIso3),
121
GetiSpin
(idx),
GetiParity
(idx),
iConjugation
,
122
iIsoSpin
, -1*iIso3,
iGParity
,
123
type
,
leptonNumber
,
124
-1*
baryonNumber
,
125
-1*
GetEncoding
( iIso3,idx),
126
false
, 0.0,
nullptr
127
);
128
// clang-format on
129
130
((
G4ExcitedBaryons
*)(particle))->SetMultipletName(
GetMultipletName
(idx));
131
particle->
SetDecayTable
(
CreateDecayTable
(name, iIso3, idx,
true
));
132
}
133
}
134
135
G4double
G4ExcitedBaryonConstructor::GetCharge
(
G4int
iIsoSpin3)
136
{
137
G4double
charge = 0.0;
138
// clang-format off
139
static
const
G4double
quark_charge[7] =
140
{
141
0., -1./3., +2./3., -1./3., +2./3., -1./3., +2./3.
142
};
143
// clang-format on
144
145
for
(
G4int
idx = 0; idx < 3; idx += 1) {
146
charge += quark_charge[
GetQuarkContents
(idx, iIsoSpin3)] * eplus;
147
}
148
return
charge;
149
}
150
151
G4int
G4ExcitedBaryonConstructor::GetEncoding
(
G4int
iIsoSpin3,
G4int
idxState)
152
{
153
G4int
encoding
=
GetEncodingOffset
(idxState);
154
encoding
+= 1000 *
GetQuarkContents
(0, iIsoSpin3);
155
encoding
+= 100 *
GetQuarkContents
(1, iIsoSpin3);
156
encoding
+= 10 *
GetQuarkContents
(2, iIsoSpin3);
157
if
(
GetiSpin
(idxState) < 9) {
158
encoding
+=
GetiSpin
(idxState) + 1;
159
}
160
else
{
161
encoding
+= (
GetiSpin
(idxState) + 1) * 10000000;
162
}
163
return
encoding
;
164
}
G4ExcitedBaryonConstructor.hh
G4ExcitedBaryons.hh
G4ParticleDefinition.hh
G4ParticleTable.hh
G4SystemOfUnits.hh
G4double
double G4double
Definition
G4Types.hh:83
G4int
int G4int
Definition
G4Types.hh:85
G4cerr
G4GLOB_DLL std::ostream G4cerr
G4endl
#define G4endl
Definition
G4ios.hh:67
G4ExcitedBaryonConstructor::Construct
virtual void Construct(G4int indexOfState=-1)
Definition
G4ExcitedBaryonConstructor.cc:44
G4ExcitedBaryonConstructor::GetCharge
virtual G4double GetCharge(G4int iIsoSpin3)
Definition
G4ExcitedBaryonConstructor.cc:135
G4ExcitedBaryonConstructor::type
const G4String type
Definition
G4ExcitedBaryonConstructor.hh:73
G4ExcitedBaryonConstructor::GetEncodingOffset
virtual G4int GetEncodingOffset(G4int)=0
G4ExcitedBaryonConstructor::NumberOfStates
G4int NumberOfStates
Definition
G4ExcitedBaryonConstructor.hh:70
G4ExcitedBaryonConstructor::GetiParity
virtual G4int GetiParity(G4int)=0
G4ExcitedBaryonConstructor::GetiSpin
virtual G4int GetiSpin(G4int)=0
G4ExcitedBaryonConstructor::baryonNumber
const G4int baryonNumber
Definition
G4ExcitedBaryonConstructor.hh:77
G4ExcitedBaryonConstructor::ConstructAntiParticle
virtual void ConstructAntiParticle(G4int indexOfState)
Definition
G4ExcitedBaryonConstructor.cc:99
G4ExcitedBaryonConstructor::iIsoSpin
G4int iIsoSpin
Definition
G4ExcitedBaryonConstructor.hh:71
G4ExcitedBaryonConstructor::CreateDecayTable
virtual G4DecayTable * CreateDecayTable(const G4String &, G4int, G4int, G4bool)=0
G4ExcitedBaryonConstructor::GetMass
virtual G4double GetMass(G4int state, G4int iso)=0
G4ExcitedBaryonConstructor::iConjugation
const G4int iConjugation
Definition
G4ExcitedBaryonConstructor.hh:74
G4ExcitedBaryonConstructor::Exist
virtual G4bool Exist(G4int)=0
G4ExcitedBaryonConstructor::ConstructParticle
virtual void ConstructParticle(G4int indexOfState)
Definition
G4ExcitedBaryonConstructor.cc:66
G4ExcitedBaryonConstructor::GetName
virtual G4String GetName(G4int, G4int)=0
G4ExcitedBaryonConstructor::GetQuarkContents
virtual G4int GetQuarkContents(G4int, G4int)=0
G4ExcitedBaryonConstructor::GetWidth
virtual G4double GetWidth(G4int state, G4int iso)=0
G4ExcitedBaryonConstructor::iGParity
const G4int iGParity
Definition
G4ExcitedBaryonConstructor.hh:75
G4ExcitedBaryonConstructor::G4ExcitedBaryonConstructor
G4ExcitedBaryonConstructor(G4int nStates=0, G4int isoSpin=0)
Definition
G4ExcitedBaryonConstructor.cc:40
G4ExcitedBaryonConstructor::GetMultipletName
virtual G4String GetMultipletName(G4int)=0
G4ExcitedBaryonConstructor::leptonNumber
const G4int leptonNumber
Definition
G4ExcitedBaryonConstructor.hh:76
G4ExcitedBaryonConstructor::GetEncoding
virtual G4int GetEncoding(G4int iIsoSpin3, G4int idxState)
Definition
G4ExcitedBaryonConstructor.cc:151
G4ExcitedBaryons
Definition
G4ExcitedBaryons.hh:40
G4ParticleDefinition
Definition
G4ParticleDefinition.hh:62
G4ParticleDefinition::SetDecayTable
void SetDecayTable(G4DecayTable *aDecayTable)
G4ParticleTable::GetParticleTable
static G4ParticleTable * GetParticleTable()
Definition
G4ParticleTable.cc:82
G4String
Definition
G4String.hh:62
encoding
Definition
xmltok.h:170
geant4-v11.2.2
source
particles
shortlived
src
G4ExcitedBaryonConstructor.cc
Generated by
1.12.0