Geant4 11.2.2
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4ExcitedBaryonConstructor Class Referenceabstract

#include <G4ExcitedBaryonConstructor.hh>

+ Inheritance diagram for G4ExcitedBaryonConstructor:

Public Member Functions

 G4ExcitedBaryonConstructor (G4int nStates=0, G4int isoSpin=0)
 
virtual ~G4ExcitedBaryonConstructor ()=default
 
virtual void Construct (G4int indexOfState=-1)
 

Protected Member Functions

virtual void ConstructParticle (G4int indexOfState)
 
virtual void ConstructAntiParticle (G4int indexOfState)
 
virtual G4double GetCharge (G4int iIsoSpin3)
 
virtual G4int GetEncoding (G4int iIsoSpin3, G4int idxState)
 
virtual G4bool Exist (G4int)=0
 
virtual G4int GetQuarkContents (G4int, G4int)=0
 
virtual G4String GetName (G4int, G4int)=0
 
virtual G4String GetMultipletName (G4int)=0
 
virtual G4double GetMass (G4int state, G4int iso)=0
 
virtual G4double GetWidth (G4int state, G4int iso)=0
 
virtual G4int GetiSpin (G4int)=0
 
virtual G4int GetiParity (G4int)=0
 
virtual G4int GetEncodingOffset (G4int)=0
 
virtual G4DecayTableCreateDecayTable (const G4String &, G4int, G4int, G4bool)=0
 

Protected Attributes

G4int NumberOfStates
 
G4int iIsoSpin
 
const G4String type
 
const G4int iConjugation {0}
 
const G4int iGParity {0}
 
const G4int leptonNumber {0}
 
const G4int baryonNumber {1}
 

Detailed Description

Definition at line 38 of file G4ExcitedBaryonConstructor.hh.

Constructor & Destructor Documentation

◆ G4ExcitedBaryonConstructor()

G4ExcitedBaryonConstructor::G4ExcitedBaryonConstructor ( G4int nStates = 0,
G4int isoSpin = 0 )

◆ ~G4ExcitedBaryonConstructor()

virtual G4ExcitedBaryonConstructor::~G4ExcitedBaryonConstructor ( )
virtualdefault

Member Function Documentation

◆ Construct()

void G4ExcitedBaryonConstructor::Construct ( G4int indexOfState = -1)
virtual

Definition at line 44 of file G4ExcitedBaryonConstructor.cc.

45{
46 if (idx < 0) {
47 for (G4int state = 0; state < NumberOfStates; state += 1) {
48 ConstructParticle(state);
50 }
51 }
52 else if (idx < NumberOfStates) {
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}
int G4int
Definition G4Types.hh:85
G4GLOB_DLL std::ostream G4cerr
#define G4endl
Definition G4ios.hh:67
virtual void ConstructAntiParticle(G4int indexOfState)
virtual void ConstructParticle(G4int indexOfState)
static G4ParticleTable * GetParticleTable()

Referenced by G4ShortLivedConstructor::ConstructResonances().

◆ ConstructAntiParticle()

void G4ExcitedBaryonConstructor::ConstructAntiParticle ( G4int indexOfState)
protectedvirtual

Definition at line 99 of file G4ExcitedBaryonConstructor.cc.

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
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,
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}
virtual G4double GetCharge(G4int iIsoSpin3)
virtual G4int GetiParity(G4int)=0
virtual G4int GetiSpin(G4int)=0
virtual G4DecayTable * CreateDecayTable(const G4String &, G4int, G4int, G4bool)=0
virtual G4double GetMass(G4int state, G4int iso)=0
virtual G4bool Exist(G4int)=0
virtual G4String GetName(G4int, G4int)=0
virtual G4double GetWidth(G4int state, G4int iso)=0
virtual G4String GetMultipletName(G4int)=0
virtual G4int GetEncoding(G4int iIsoSpin3, G4int idxState)
void SetDecayTable(G4DecayTable *aDecayTable)
const char * name(G4int ptype)

Referenced by Construct().

◆ ConstructParticle()

void G4ExcitedBaryonConstructor::ConstructParticle ( G4int indexOfState)
protectedvirtual

Definition at line 66 of file G4ExcitedBaryonConstructor.cc.

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
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,
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}

Referenced by Construct().

◆ CreateDecayTable()

virtual G4DecayTable * G4ExcitedBaryonConstructor::CreateDecayTable ( const G4String & ,
G4int ,
G4int ,
G4bool  )
protectedpure virtual

◆ Exist()

virtual G4bool G4ExcitedBaryonConstructor::Exist ( G4int )
protectedpure virtual

◆ GetCharge()

G4double G4ExcitedBaryonConstructor::GetCharge ( G4int iIsoSpin3)
protectedvirtual

Definition at line 135 of file G4ExcitedBaryonConstructor.cc.

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}
double G4double
Definition G4Types.hh:83
virtual G4int GetQuarkContents(G4int, G4int)=0

Referenced by ConstructAntiParticle(), and ConstructParticle().

◆ GetEncoding()

G4int G4ExcitedBaryonConstructor::GetEncoding ( G4int iIsoSpin3,
G4int idxState )
protectedvirtual

Reimplemented in G4ExcitedDeltaConstructor, and G4ExcitedNucleonConstructor.

Definition at line 151 of file G4ExcitedBaryonConstructor.cc.

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}
virtual G4int GetEncodingOffset(G4int)=0

Referenced by ConstructAntiParticle(), ConstructParticle(), G4ExcitedDeltaConstructor::GetEncoding(), and G4ExcitedNucleonConstructor::GetEncoding().

◆ GetEncodingOffset()

virtual G4int G4ExcitedBaryonConstructor::GetEncodingOffset ( G4int )
protectedpure virtual

◆ GetiParity()

virtual G4int G4ExcitedBaryonConstructor::GetiParity ( G4int )
protectedpure virtual

◆ GetiSpin()

virtual G4int G4ExcitedBaryonConstructor::GetiSpin ( G4int )
protectedpure virtual

◆ GetMass()

virtual G4double G4ExcitedBaryonConstructor::GetMass ( G4int state,
G4int iso )
protectedpure virtual

◆ GetMultipletName()

virtual G4String G4ExcitedBaryonConstructor::GetMultipletName ( G4int )
protectedpure virtual

◆ GetName()

virtual G4String G4ExcitedBaryonConstructor::GetName ( G4int ,
G4int  )
protectedpure virtual

◆ GetQuarkContents()

virtual G4int G4ExcitedBaryonConstructor::GetQuarkContents ( G4int ,
G4int  )
protectedpure virtual

◆ GetWidth()

virtual G4double G4ExcitedBaryonConstructor::GetWidth ( G4int state,
G4int iso )
protectedpure virtual

Member Data Documentation

◆ baryonNumber

const G4int G4ExcitedBaryonConstructor::baryonNumber {1}
protected

Definition at line 77 of file G4ExcitedBaryonConstructor.hh.

77{1};

Referenced by ConstructAntiParticle(), and ConstructParticle().

◆ iConjugation

const G4int G4ExcitedBaryonConstructor::iConjugation {0}
protected

Definition at line 74 of file G4ExcitedBaryonConstructor.hh.

74{0};

Referenced by ConstructAntiParticle(), and ConstructParticle().

◆ iGParity

const G4int G4ExcitedBaryonConstructor::iGParity {0}
protected

Definition at line 75 of file G4ExcitedBaryonConstructor.hh.

75{0};

Referenced by ConstructAntiParticle(), and ConstructParticle().

◆ iIsoSpin

G4int G4ExcitedBaryonConstructor::iIsoSpin
protected

Definition at line 71 of file G4ExcitedBaryonConstructor.hh.

Referenced by ConstructAntiParticle(), and ConstructParticle().

◆ leptonNumber

const G4int G4ExcitedBaryonConstructor::leptonNumber {0}
protected

Definition at line 76 of file G4ExcitedBaryonConstructor.hh.

76{0};

Referenced by ConstructAntiParticle(), and ConstructParticle().

◆ NumberOfStates

G4int G4ExcitedBaryonConstructor::NumberOfStates
protected

Definition at line 70 of file G4ExcitedBaryonConstructor.hh.

Referenced by Construct().

◆ type

const G4String G4ExcitedBaryonConstructor::type
protected

Definition at line 73 of file G4ExcitedBaryonConstructor.hh.

Referenced by ConstructAntiParticle(), and ConstructParticle().


The documentation for this class was generated from the following files: