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
G4ExcitedBaryonConstructor.cc
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4ExcitedBaryonConstructor.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
//
26
//
27
//
28
//
29
// --------------------------------------------------------------
30
// GEANT 4 class implementation file
31
//
32
// History: first implementation, based on object model of
33
// 10 oct 1998 H.Kurashige
34
// ---------------------------------------------------------------
35
36
37
#include "
G4ExcitedBaryonConstructor.hh
"
38
39
#include "
G4SystemOfUnits.hh
"
40
#include "
G4ParticleDefinition.hh
"
41
#include "
G4ParticleTable.hh
"
42
#include "
G4PhaseSpaceDecayChannel.hh
"
43
#include "
G4VDecayChannel.hh
"
44
#include "
G4DecayTable.hh
"
45
46
47
G4ExcitedBaryonConstructor::G4ExcitedBaryonConstructor
(
G4int
nStates,
48
G4int
isoSpin)
49
: NumberOfStates(nStates), iIsoSpin(isoSpin), type(
"baryon"
),
50
iConjugation(0), iGParity(0), leptonNumber(0), baryonNumber(1)
51
{
52
}
53
54
G4ExcitedBaryonConstructor::~G4ExcitedBaryonConstructor
()
55
{
56
}
57
58
void
G4ExcitedBaryonConstructor::Construct
(
G4int
idx
)
59
{
60
if
(idx < 0 ) {
61
for
(
G4int
state=0; state<
NumberOfStates
; state +=1) {
62
ConstructParticle
(state);
63
ConstructAntiParticle
(state);
64
}
65
}
else
if
(idx <
NumberOfStates
) {
66
ConstructParticle
(idx);
67
ConstructAntiParticle
(idx);
68
}
else
{
69
#ifdef G4VERBOSE
70
if
(
G4ParticleTable::GetParticleTable
()->GetVerboseLevel()>1) {
71
G4cerr
<<
"G4ExcitedBaryonConstructor::Construct()"
;
72
G4cerr
<<
" illegal index os state = "
<< idx <<
G4endl
;
73
}
74
#endif
75
}
76
}
77
78
79
#include "
G4ExcitedBaryons.hh
"
80
81
void
G4ExcitedBaryonConstructor::ConstructParticle
(
G4int
idx
)
82
{
83
if
(!
Exist
(idx) )
return
;
84
85
// Construct Resonace particles as dynamic object
86
// Arguments for constructor are as follows
87
// name mass width charge
88
// 2*spin parity C-conjugation
89
// 2*Isospin 2*Isospin3 G-parity
90
// type lepton number baryon number PDG encoding
91
// stable lifetime decay table
92
93
94
G4String
name
;
95
G4ParticleDefinition
*
particle
;
96
97
for
(
G4int
iIso3 = -1*
iIsoSpin
; iIso3 <=
iIsoSpin
; iIso3 +=2) {
98
name=
GetName
(iIso3, idx);
99
100
particle =
new
G4ExcitedBaryons
(
101
name,
GetMass
(idx,iIso3),
GetWidth
(idx,iIso3),
GetCharge
(iIso3),
102
GetiSpin
(idx),
GetiParity
(idx),
iConjugation
,
103
iIsoSpin
, iIso3,
iGParity
,
104
type
,
leptonNumber
,
baryonNumber
,
GetEncoding
( iIso3,idx),
105
false
, 0.0, NULL
106
);
107
((
G4ExcitedBaryons
*)(particle))->SetMultipletName(
GetMultipletName
(idx));
108
particle->
SetDecayTable
(
CreateDecayTable
( name, iIso3, idx,
false
));
109
}
110
}
111
112
void
G4ExcitedBaryonConstructor::ConstructAntiParticle
(
G4int
idx
)
113
{
114
if
(!
Exist
(idx) )
return
;
115
116
// Construct Resonace particles as dynamic object
117
// Arguments for constructor are as follows
118
// name mass width charge
119
// 2*spin parity C-conjugation
120
// 2*Isospin 2*Isospin3 G-parity
121
// type lepton number baryon number PDG encoding
122
// stable lifetime decay table
123
124
125
G4String
name
;
126
G4ParticleDefinition
*
particle
;
127
128
for
(
G4int
iIso3 = -1*
iIsoSpin
; iIso3 <=
iIsoSpin
; iIso3 +=2) {
129
name =
GetName
(iIso3, idx);
130
name =
"anti_"
+
name
;
131
132
particle =
new
G4ExcitedBaryons
(
133
name,
GetMass
(idx,iIso3),
GetWidth
(idx,iIso3), -1.0*
GetCharge
(iIso3),
134
GetiSpin
(idx),
GetiParity
(idx),
iConjugation
,
135
iIsoSpin
, -1*iIso3,
iGParity
,
136
type
,
leptonNumber
,
137
-1*
baryonNumber
,
138
-1*
GetEncoding
( iIso3,idx),
139
false
, 0.0, NULL
140
);
141
142
((
G4ExcitedBaryons
*)(particle))->SetMultipletName(
GetMultipletName
(idx));
143
particle->
SetDecayTable
(
CreateDecayTable
( name, iIso3, idx,
true
));
144
}
145
146
}
147
148
G4double
G4ExcitedBaryonConstructor::GetCharge
(
G4int
iIsoSpin3)
149
{
150
G4double
charge
= 0.0;
151
static
const
G4double
quark_charge[7] =
152
{
153
0., -1./3., +2./3., -1./3., +2./3., -1./3., +2./3.
154
};
155
156
for
(
G4int
idx
=0;
idx
<3;
idx
+=1){
157
charge += quark_charge[
GetQuarkContents
(
idx
, iIsoSpin3)]*
eplus
;
158
}
159
return
charge
;
160
}
161
162
G4int
G4ExcitedBaryonConstructor::GetEncoding
(
G4int
iIsoSpin3,
G4int
idxState)
163
{
164
G4int
encoding
=
GetEncodingOffset
(idxState);
165
encoding += 1000*
GetQuarkContents
(0, iIsoSpin3);
166
encoding += 100*
GetQuarkContents
(1, iIsoSpin3);
167
encoding += 10*
GetQuarkContents
(2, iIsoSpin3);
168
if
(
GetiSpin
(idxState) <9) {
169
encoding +=
GetiSpin
(idxState) +1;
170
}
else
{
171
encoding += (
GetiSpin
(idxState) +1)*10000000;
172
}
173
return
encoding
;
174
}
geant4
tree
geant4-10.6-release
source
particles
shortlived
src
G4ExcitedBaryonConstructor.cc
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:24
using
1.8.2 with
ECCE GitHub integration