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
G4ExcitedMesonConstructor.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4ExcitedMesonConstructor.hh
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
// This code plementation is the intellectual property of
27
// the GEANT4 collaboration.
28
//
29
// By copying, distributing or modifying the Program (or any work
30
// based on the Program) you indicate your acceptance of this statement,
31
// and all its terms.
32
//
33
//
34
//
35
// --------------------------------------------------------------
36
// GEANT 4 class implementation file
37
//
38
// History: first implementation, based on object model of
39
// 10 oct 1998 H.Kurashige
40
// ---------------------------------------------------------------
41
#ifndef G4ExcitedMesonConstructor_h
42
#define G4ExcitedMesonConstructor_h 1
43
44
#include "
globals.hh
"
45
#include "
G4ios.hh
"
46
class
G4DecayTable
;
47
48
class
G4ExcitedMesonConstructor
49
{
50
//This class is a utility class for construction
51
//short lived particles
52
53
public
:
54
G4ExcitedMesonConstructor
(
G4int
nStates = 0,
G4int
isoSpin=0);
55
virtual
~G4ExcitedMesonConstructor
();
56
57
public
:
58
virtual
void
Construct
(
G4int
indexOfState = -1);
59
60
protected
:
61
void
ConstructMesons
(
G4int
indexOfState,
G4int
indexOfType);
62
63
G4String
GetName
(
G4int
iIso3,
G4int
iState,
G4int
idxType);
64
G4double
GetCharge
(
G4int
iIsoSpin3);
65
G4int
GetEncoding
(
G4int
iIsoSpin3,
G4int
idxState,
G4int
idxType);
66
G4int
GetQuarkContents
(
G4int
iQ,
G4int
iIso3,
G4int
iType);
67
68
public
:
69
enum
{
NMultiplets
= 10 };
70
protected
:
71
enum
{
72
N11P1
= 0,
N13P0
= 1,
N13P1
= 2,
N13P2
= 3,
73
N11D2
= 4,
N13D1
= 5,
N13D3
= 6,
74
N21S0
= 7,
N23S1
= 8,
N23P2
= 9
75
};
76
77
public
:
78
enum
{
NMesonTypes
= 5 };
79
protected
:
80
enum
{
TPi
=0,
TEta
=1,
TEtaPrime
=2,
TK
=3,
TAntiK
=4 };
81
82
protected
:
83
const
G4String
type
;
84
const
G4int
leptonNumber
;
85
const
G4int
baryonNumber
;
86
87
G4bool
Exist
(
G4int
idxState,
G4int
idxType);
88
G4double
GetCharge
(
G4int
iIsoSpin3,
G4int
idxType);
89
static
const
char
*
name
[
NMultiplets
][
NMesonTypes
];
90
static
const
G4double
mass
[
NMultiplets
][
NMesonTypes
];
91
static
const
G4double
massKdiff
[
NMultiplets
];
92
static
const
G4double
width
[
NMultiplets
][
NMesonTypes
];
93
static
const
G4double
widthKdiff
[
NMultiplets
];
94
static
const
G4int
iIsoSpin
[
NMesonTypes
];
95
static
const
G4int
iSpin
[
NMultiplets
];
96
static
const
G4int
iParity
[
NMultiplets
];
97
static
const
G4int
iGParity
[
NMultiplets
][
NMesonTypes
];
98
static
const
G4int
iChargeConjugation
[
NMultiplets
];
99
static
const
G4int
encodingOffset
[
NMultiplets
];
100
101
public
:
102
enum
{
NumberOfDecayModes
= 19 };
103
protected
:
104
enum
{
MPiGamma
= 0,
MRhoGamma
=1,
M2Pi
=2,
MPiRho
=3,
105
M3Pi
= 4,
MPiEta
=5,
M4Pi
=6,
MKKStar
=7,
106
M2PiEta
=8,
MRhoEta
=9,
M2PiRho
=10,
M2PiOmega
=11,
107
M2Eta
=12,
M2K
=13,
M2KPi
=14,
MPiOmega
=15,
108
MPiF2
=16,
MPiF0
=17,
MPiA2
=18 };
109
enum
{
MKPi
= 0,
MKStarPi
=1,
MKRho
=2,
MKOmega
=3,
110
MKStar2Pi
=4,
MKTwoPi
=5,
MKEta
=6};
111
112
113
static
const
G4double
bRatio
[
NMultiplets
][
NMesonTypes
][
NumberOfDecayModes
];
114
115
G4DecayTable
*
CreateDecayTable
(
const
G4String
&,
116
G4int
,
G4int
,
G4int
);
117
118
G4DecayTable
*
AddKPiMode
(
G4DecayTable
* table,
const
G4String
&
name
,
119
G4double
br,
G4int
iIso3,
G4int
iType);
120
G4DecayTable
*
AddKStarPiMode
(
G4DecayTable
* table,
const
G4String
&
name
,
121
G4double
br,
G4int
iIso3,
G4int
iType);
122
G4DecayTable
*
AddKStar2PiMode
(
G4DecayTable
* table,
const
G4String
&
name
,
123
G4double
br,
G4int
iIso3,
G4int
iType);
124
G4DecayTable
*
AddKRhoMode
(
G4DecayTable
* table,
const
G4String
&
name
,
125
G4double
br,
G4int
iIso3,
G4int
iType);
126
G4DecayTable
*
AddKTwoPiMode
(
G4DecayTable
* table,
const
G4String
&
name
,
127
G4double
br,
G4int
iIso3,
G4int
iType);
128
G4DecayTable
*
AddKOmegaMode
(
G4DecayTable
* table,
const
G4String
&
name
,
129
G4double
br,
G4int
iIso3,
G4int
iType);
130
G4DecayTable
*
AddKEtaMode
(
G4DecayTable
* table,
const
G4String
&
name
,
131
G4double
br,
G4int
iIso3,
G4int
iType);
132
G4DecayTable
*
AddPiGammaMode
(
G4DecayTable
* table,
const
G4String
&
name
,
133
G4double
br,
G4int
iIso3,
G4int
iIso);
134
G4DecayTable
*
AddRhoGammaMode
(
G4DecayTable
* table,
const
G4String
&
name
,
135
G4double
br,
G4int
iIso3,
G4int
iIso);
136
G4DecayTable
*
Add2PiMode
(
G4DecayTable
* table,
const
G4String
&
name
,
137
G4double
br,
G4int
iIso3,
G4int
iIso);
138
G4DecayTable
*
AddPiRhoMode
(
G4DecayTable
* table,
const
G4String
&
name
,
139
G4double
br,
G4int
iIso3,
G4int
iIso);
140
G4DecayTable
*
AddPiEtaMode
(
G4DecayTable
* table,
const
G4String
&
name
,
141
G4double
br,
G4int
iIso3,
G4int
iIso);
142
G4DecayTable
*
AddPiF2Mode
(
G4DecayTable
* table,
const
G4String
&
name
,
143
G4double
br,
G4int
iIso3,
G4int
iIso);
144
G4DecayTable
*
AddPiF0Mode
(
G4DecayTable
* table,
const
G4String
&
name
,
145
G4double
br,
G4int
iIso3,
G4int
iIso);
146
G4DecayTable
*
AddPiA2Mode
(
G4DecayTable
* table,
const
G4String
&
name
,
147
G4double
br,
G4int
iIso3,
G4int
iIso);
148
G4DecayTable
*
Add3PiMode
(
G4DecayTable
* table,
const
G4String
&
name
,
149
G4double
br,
G4int
iIso3,
G4int
iIso);
150
G4DecayTable
*
Add4PiMode
(
G4DecayTable
* table,
const
G4String
&
name
,
151
G4double
br,
G4int
iIso3,
G4int
iIso);
152
G4DecayTable
*
AddKKStarMode
(
G4DecayTable
* table,
const
G4String
&
name
,
153
G4double
br,
G4int
iIso3,
G4int
iIso);
154
G4DecayTable
*
Add2PiEtaMode
(
G4DecayTable
* table,
const
G4String
&
name
,
155
G4double
br,
G4int
iIso3,
G4int
iIso);
156
G4DecayTable
*
AddRhoEtaMode
(
G4DecayTable
* table,
const
G4String
&
name
,
157
G4double
br,
G4int
iIso3,
G4int
iIso);
158
G4DecayTable
*
Add2PiRhoMode
(
G4DecayTable
* table,
const
G4String
&
name
,
159
G4double
br,
G4int
iIso3,
G4int
iIso);
160
G4DecayTable
*
Add2PiOmegaMode
(
G4DecayTable
* table,
const
G4String
&
name
,
161
G4double
br,
G4int
iIso3,
G4int
iIso);
162
G4DecayTable
*
AddPiOmegaMode
(
G4DecayTable
* table,
const
G4String
&
name
,
163
G4double
br,
G4int
iIso3,
G4int
iIso);
164
G4DecayTable
*
Add2EtaMode
(
G4DecayTable
* table,
const
G4String
&
name
,
165
G4double
br,
G4int
iIso3,
G4int
iIso);
166
G4DecayTable
*
Add2KMode
(
G4DecayTable
* table,
const
G4String
&
name
,
167
G4double
br,
G4int
iIso3,
G4int
iIso);
168
G4DecayTable
*
Add2KPiMode
(
G4DecayTable
* table,
const
G4String
&
name
,
169
G4double
br,
G4int
iIso3,
G4int
iIso);
170
171
172
173
};
174
175
176
inline
177
G4String
G4ExcitedMesonConstructor::GetName
(
G4int
iIso3,
178
G4int
iState,
179
G4int
iType)
180
{
181
G4String
particle
=
name
[iState][iType];
182
if
(iType ==
TPi
) {
183
if
( iIso3 == +2 ){
184
particle +=
"+"
;
185
}
else
if
( iIso3 == -2 ){
186
particle +=
"-"
;
187
}
else
{
188
particle +=
"0"
;
189
}
190
}
else
if
(iType ==
TK
) {
191
if
( iIso3 == +1 ){
192
particle +=
"+"
;
193
}
else
if
( iIso3 == -1 ){
194
particle +=
"0"
;
195
}
196
}
else
if
(iType ==
TAntiK
) {
197
if
( iIso3 == +1 ){
198
particle +=
"0"
;
199
particle =
"anti_"
+
particle
;
200
}
else
if
( iIso3 == -1 ){
201
particle +=
"-"
;
202
}
203
}
204
return
particle
;
205
}
206
207
#endif
geant4
tree
geant4-10.6-release
source
particles
shortlived
include
G4ExcitedMesonConstructor.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:24
using
1.8.2 with
ECCE GitHub integration