Geant4-11
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Private Types | Private Member Functions | Static Private Attributes
G4ExcitedNucleonConstructor Class Reference

#include <G4ExcitedNucleonConstructor.hh>

Inheritance diagram for G4ExcitedNucleonConstructor:
G4ExcitedBaryonConstructor

Public Types

enum  { NStates = 15 }
 
enum  { NumberOfDecayModes = 9 }
 

Public Member Functions

virtual void Construct (G4int indexOfState=-1)
 
 G4ExcitedNucleonConstructor ()
 
virtual ~G4ExcitedNucleonConstructor ()
 

Protected Member Functions

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

Protected Attributes

const G4int baryonNumber
 
const G4int iConjugation
 
const G4int iGParity
 
G4int iIsoSpin
 
const G4int leptonNumber
 
G4int NumberOfStates
 
const G4String type
 

Private Types

enum  { NucleonIsoSpin = 1 }
 
enum  {
  NGamma =0 , NPi =1 , NEta =2 , NOmega =3 ,
  NRho =4 , N2Pi =5 , DeltaPi =6 , NStarPi =7 ,
  LambdaK = 8
}
 

Private Member Functions

G4DecayTableAddDeltaPiMode (G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
 
G4DecayTableAddLambdaKMode (G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
 
G4DecayTableAddN2PiMode (G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
 
G4DecayTableAddNEtaMode (G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
 
G4DecayTableAddNGammaMode (G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
 
G4DecayTableAddNOmegaMode (G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
 
G4DecayTableAddNPiMode (G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
 
G4DecayTableAddNRhoMode (G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
 
G4DecayTableAddNStarPiMode (G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
 

Static Private Attributes

static const G4double bRatio [NStates][NumberOfDecayModes]
 
static const G4int encodingOffset [NStates]
 
static const G4int iParity [NStates]
 
static const G4int iSpin [NStates]
 
static const G4double mass [NStates]
 
static const char * name [NStates]
 
static const G4double width [NStates]
 

Detailed Description

Definition at line 42 of file G4ExcitedNucleonConstructor.hh.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
NStates 

Definition at line 90 of file G4ExcitedNucleonConstructor.hh.

◆ anonymous enum

anonymous enum
private
Enumerator
NucleonIsoSpin 

Definition at line 92 of file G4ExcitedNucleonConstructor.hh.

◆ anonymous enum

anonymous enum
Enumerator
NumberOfDecayModes 

Definition at line 103 of file G4ExcitedNucleonConstructor.hh.

◆ anonymous enum

anonymous enum
private

Constructor & Destructor Documentation

◆ G4ExcitedNucleonConstructor()

G4ExcitedNucleonConstructor::G4ExcitedNucleonConstructor ( )

Definition at line 46 of file G4ExcitedNucleonConstructor.cc.

46 :
48{
49
50}
G4ExcitedBaryonConstructor(G4int nStates=0, G4int isoSpin=0)

◆ ~G4ExcitedNucleonConstructor()

G4ExcitedNucleonConstructor::~G4ExcitedNucleonConstructor ( )
virtual

Definition at line 52 of file G4ExcitedNucleonConstructor.cc.

53{
54}

Member Function Documentation

◆ AddDeltaPiMode()

G4DecayTable * G4ExcitedNucleonConstructor::AddDeltaPiMode ( G4DecayTable table,
const G4String name,
G4double  br,
G4int  iIso3,
G4bool  fAnti 
)
private

Definition at line 422 of file G4ExcitedNucleonConstructor.cc.

425{
426 G4VDecayChannel* mode;
427
428 G4String daughterDelta;
429 G4String daughterPi;
430 G4double r;
431
432 // ------------ Delta pi+/- ------------
433 // determine daughters
434 if (iIso3 == +1) {
435 daughterDelta = "delta0";
436 if (!fAnti) {
437 daughterPi = "pi+";
438 } else {
439 daughterPi = "pi-";
440 }
441 r = br/6.0;
442 } else {
443 daughterDelta = "delta+";
444 if (!fAnti) {
445 daughterPi = "pi-";
446 } else {
447 daughterPi = "pi+";
448 }
449 r = br/6.0;
450 }
451 if (fAnti) daughterDelta = "anti_" + daughterDelta;
452 // create decay channel [parent BR #daughters]
453 mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
454 daughterDelta,daughterPi);
455 // add decay table
456 decayTable->Insert(mode);
457
458 // ------------ Delta pi+/- ------------
459 // determine daughters
460 if (iIso3 == +1) {
461 daughterDelta = "delta++";
462 if (!fAnti) {
463 daughterPi = "pi-";
464 } else {
465 daughterPi = "pi+";
466 }
467 r = br/2.0;
468 } else {
469 daughterDelta = "delta-";
470 if (!fAnti) {
471 daughterPi = "pi+";
472 } else {
473 daughterPi = "pi-";
474 }
475 r = br/2.0;
476 }
477 if (fAnti) daughterDelta = "anti_" + daughterDelta;
478 // create decay channel [parent BR #daughters]
479 mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
480 daughterDelta,daughterPi);
481 // add decay table
482 decayTable->Insert(mode);
483
484 // ------------ Delta pi0 ------------
485 // determine daughters
486 if (iIso3 == +1) {
487 daughterDelta = "delta+";
488 daughterPi = "pi0";
489 r = br/3.0;
490 } else {
491 daughterDelta = "delta0";
492 daughterPi = "pi0";
493 r = br/3.0;
494 }
495 if (fAnti) daughterDelta = "anti_" + daughterDelta;
496 // create decay channel [parent BR #daughters]
497 mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
498 daughterDelta,daughterPi);
499 // add decay table
500 decayTable->Insert(mode);
501
502
503 return decayTable;
504}
double G4double
Definition: G4Types.hh:83

References G4DecayTable::Insert().

Referenced by CreateDecayTable().

◆ AddLambdaKMode()

G4DecayTable * G4ExcitedNucleonConstructor::AddLambdaKMode ( G4DecayTable table,
const G4String name,
G4double  br,
G4int  iIso3,
G4bool  fAnti 
)
private

Definition at line 506 of file G4ExcitedNucleonConstructor.cc.

509{
510 G4VDecayChannel* mode;
511
512 G4String lambda = "lambda";
513 G4String daughterK;
514
515 // ------------ N pi0 ------------
516 // determine daughters
517 if (iIso3 == +1) {
518 if (!fAnti) {
519 daughterK = "kaon+";
520 } else {
521 daughterK = "kaon-";
522 }
523 } else {
524 if (!fAnti) {
525 daughterK = "kaon0";
526 } else {
527 daughterK = "anti_kaon0";
528 }
529 }
530 if (fAnti) lambda = "anti_" + lambda;
531 // create decay channel [parent BR #daughters]
532 mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
533 lambda, daughterK);
534 // add decay table
535 decayTable->Insert(mode);
536
537 return decayTable;
538}

References G4DecayTable::Insert(), and G4InuclParticleNames::lambda.

Referenced by CreateDecayTable().

◆ AddN2PiMode()

G4DecayTable * G4ExcitedNucleonConstructor::AddN2PiMode ( G4DecayTable table,
const G4String name,
G4double  br,
G4int  iIso3,
G4bool  fAnti 
)
private

Definition at line 314 of file G4ExcitedNucleonConstructor.cc.

317{
318 // Decay Modes
319 // N* --> N + pi + pi
320 // Only I=0 states are included for 2-pi system
321
322 G4VDecayChannel* mode;
323
324 G4String daughterN;
325 G4String daughterPi1;
326 G4String daughterPi2;
327
328 // -------------N pi+ pi- --------------
329 // determine daughters
330 if (iIso3 == +1) {
331 daughterN = "proton";
332 daughterPi1 = "pi+";
333 daughterPi2 = "pi-";
334 } else {
335 daughterN = "neutron";
336 daughterPi1 = "pi+";
337 daughterPi2 = "pi-";
338 }
339 if (fAnti) daughterN = "anti_" + daughterN;
340
341 // create decay channel [parent BR #daughters]
342 mode = new G4PhaseSpaceDecayChannel(nameParent, br/2.0, 3,
343 daughterN,daughterPi1,daughterPi2);
344 // add decay table
345 decayTable->Insert(mode);
346
347 // -------------N pi0 pi0 --------------
348 // determine daughters
349 if (iIso3 == +1) {
350 daughterN = "proton";
351 daughterPi1 = "pi0";
352 daughterPi2 = "pi0";
353 } else {
354 daughterN = "neutron";
355 daughterPi1 = "pi0";
356 daughterPi2 = "pi0";
357 }
358 if (fAnti) daughterN = "anti_" + daughterN;
359
360 // create decay channel [parent BR #daughters]
361 mode = new G4PhaseSpaceDecayChannel(nameParent, br/2.0, 3,
362 daughterN,daughterPi1,daughterPi2);
363 // add decay table
364 decayTable->Insert(mode);
365
366 return decayTable;
367}

References G4DecayTable::Insert().

Referenced by CreateDecayTable().

◆ AddNEtaMode()

G4DecayTable * G4ExcitedNucleonConstructor::AddNEtaMode ( G4DecayTable table,
const G4String name,
G4double  br,
G4int  iIso3,
G4bool  fAnti 
)
private

Definition at line 211 of file G4ExcitedNucleonConstructor.cc.

214{
215 G4VDecayChannel* mode;
216
217 G4String daughterN;
218
219 // ------------ N eta------------
220 // determine daughters
221 if (iIso3 == +1) {
222 daughterN = "proton";
223 } else {
224 daughterN = "neutron";
225 }
226 if (fAnti) daughterN = "anti_" + daughterN;
227 // create decay channel [parent BR #daughters]
228 mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
229 daughterN, "eta");
230 // add decay table
231 decayTable->Insert(mode);
232
233 return decayTable;
234}

References G4DecayTable::Insert().

Referenced by CreateDecayTable().

◆ AddNGammaMode()

G4DecayTable * G4ExcitedNucleonConstructor::AddNGammaMode ( G4DecayTable table,
const G4String name,
G4double  br,
G4int  iIso3,
G4bool  fAnti 
)
private

Definition at line 134 of file G4ExcitedNucleonConstructor.cc.

137{
138 G4VDecayChannel* mode;
139
140 //
141 G4String daughterN;
142 if (iIso3 == +1) {
143 daughterN = "proton";
144 } else {
145 daughterN = "neutron";
146 }
147 if (fAnti) daughterN = "anti_" + daughterN;
148
149 // create decay channel [parent BR #daughters]
150 mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
151 daughterN,"gamma");
152 // add decay table
153 decayTable->Insert(mode);
154
155 return decayTable;
156}

References G4DecayTable::Insert().

Referenced by CreateDecayTable().

◆ AddNOmegaMode()

G4DecayTable * G4ExcitedNucleonConstructor::AddNOmegaMode ( G4DecayTable table,
const G4String name,
G4double  br,
G4int  iIso3,
G4bool  fAnti 
)
private

Definition at line 236 of file G4ExcitedNucleonConstructor.cc.

239{
240 G4VDecayChannel* mode;
241
242 G4String daughterN;
243
244 // ------------ N omega------------
245 // determine daughters
246 if (iIso3 == +1) {
247 daughterN = "proton";
248 } else {
249 daughterN = "neutron";
250 }
251 if (fAnti) daughterN = "anti_" + daughterN;
252 // create decay channel [parent BR #daughters]
253 mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
254 daughterN, "omega");
255 // add decay table
256 decayTable->Insert(mode);
257
258 return decayTable;
259}

References G4DecayTable::Insert().

Referenced by CreateDecayTable().

◆ AddNPiMode()

G4DecayTable * G4ExcitedNucleonConstructor::AddNPiMode ( G4DecayTable table,
const G4String name,
G4double  br,
G4int  iIso3,
G4bool  fAnti 
)
private

Definition at line 158 of file G4ExcitedNucleonConstructor.cc.

161{
162 G4VDecayChannel* mode;
163
164 G4String daughterN;
165 G4String daughterPi;
166
167 // ------------ N pi0 ------------
168 // determine daughters
169 if (iIso3 == +1) {
170 daughterN = "proton";
171 daughterPi = "pi0";
172 } else {
173 daughterN = "neutron";
174 daughterPi = "pi0";
175 }
176 if (fAnti) daughterN = "anti_" + daughterN;
177 // create decay channel [parent BR #daughters]
178 mode = new G4PhaseSpaceDecayChannel(nameParent, br/2.0, 2,
179 daughterN,daughterPi);
180 // add decay table
181 decayTable->Insert(mode);
182
183 // -------------N pi +/- --------------
184 // determine daughters
185 if (iIso3 == +1) {
186 daughterN = "neutron";
187 if (!fAnti) {
188 daughterPi = "pi+";
189 } else {
190 daughterPi = "pi-";
191 }
192 } else {
193 daughterN = "proton";
194 if (!fAnti) {
195 daughterPi = "pi-";
196 } else {
197 daughterPi = "pi+";
198 }
199 }
200 if (fAnti) daughterN = "anti_" + daughterN;
201
202 // create decay channel [parent BR #daughters]
203 mode = new G4PhaseSpaceDecayChannel(nameParent, br/2.0, 2,
204 daughterN,daughterPi);
205 // add decay table
206 decayTable->Insert(mode);
207
208 return decayTable;
209}

References G4DecayTable::Insert().

Referenced by CreateDecayTable().

◆ AddNRhoMode()

G4DecayTable * G4ExcitedNucleonConstructor::AddNRhoMode ( G4DecayTable table,
const G4String name,
G4double  br,
G4int  iIso3,
G4bool  fAnti 
)
private

Definition at line 261 of file G4ExcitedNucleonConstructor.cc.

264{
265 G4VDecayChannel* mode;
266
267 G4String daughterN;
268 G4String daughterRho;
269
270 // ------------ N rho0 ------------
271 // determine daughters
272 if (iIso3 == +1) {
273 daughterN = "proton";
274 daughterRho = "rho0";
275 } else {
276 daughterN = "neutron";
277 daughterRho = "rho0";
278 }
279 if (fAnti) daughterN = "anti_" + daughterN;
280 // create decay channel [parent BR #daughters]
281 mode = new G4PhaseSpaceDecayChannel(nameParent, br/2.0, 2,
282 daughterN,daughterRho);
283 // add decay table
284 decayTable->Insert(mode);
285
286 // -------------N rho+/- --------------
287 // determine daughters
288 if (iIso3 == +1) {
289 daughterN = "neutron";
290 if (!fAnti) {
291 daughterRho = "rho+";
292 } else {
293 daughterRho = "rho-";
294 }
295 } else {
296 daughterN = "proton";
297 if (!fAnti) {
298 daughterRho = "rho-";
299 } else {
300 daughterRho = "rho+";
301 }
302 }
303 if (fAnti) daughterN = "anti_" + daughterN;
304
305 // create decay channel [parent BR #daughters]
306 mode = new G4PhaseSpaceDecayChannel(nameParent, br/2.0, 2,
307 daughterN,daughterRho);
308 // add decay table
309 decayTable->Insert(mode);
310
311 return decayTable;
312}

References G4DecayTable::Insert().

Referenced by CreateDecayTable().

◆ AddNStarPiMode()

G4DecayTable * G4ExcitedNucleonConstructor::AddNStarPiMode ( G4DecayTable table,
const G4String name,
G4double  br,
G4int  iIso3,
G4bool  fAnti 
)
private

Definition at line 369 of file G4ExcitedNucleonConstructor.cc.

372{
373 G4VDecayChannel* mode;
374
375 G4String daughterN;
376 G4String daughterPi;
377
378 // ------------ N pi0 ------------
379 // determine daughters
380 if (iIso3 == +1) {
381 daughterN = "N(1440)+";
382 daughterPi = "pi0";
383 } else {
384 daughterN = "N(1440)0";
385 daughterPi = "pi0";
386 }
387 if (fAnti) daughterN = "anti_" + daughterN;
388 // create decay channel [parent BR #daughters]
389 mode = new G4PhaseSpaceDecayChannel(nameParent, br/2.0, 2,
390 daughterN,daughterPi);
391 // add decay table
392 decayTable->Insert(mode);
393
394 // -------------N pi +/- --------------
395 // determine daughters
396 if (iIso3 == +1) {
397 daughterN = "N(1440)0";
398 if (!fAnti) {
399 daughterPi = "pi+";
400 } else {
401 daughterPi = "pi-";
402 }
403 } else {
404 daughterN = "N(1440)+";
405 if (!fAnti) {
406 daughterPi = "pi-";
407 } else {
408 daughterPi = "pi+";
409 }
410 }
411 if (fAnti) daughterN = "anti_" + daughterN;
412
413 // create decay channel [parent BR #daughters]
414 mode = new G4PhaseSpaceDecayChannel(nameParent, br/2.0, 2,
415 daughterN,daughterPi);
416 // add decay table
417 decayTable->Insert(mode);
418
419 return decayTable;
420}

References G4DecayTable::Insert().

Referenced by CreateDecayTable().

◆ Construct()

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

Definition at line 58 of file G4ExcitedBaryonConstructor.cc.

59{
60 if (idx < 0 ) {
61 for (G4int state=0; state< NumberOfStates; state +=1) {
62 ConstructParticle(state);
64 }
65 } else if (idx < NumberOfStates) {
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}
int G4int
Definition: G4Types.hh:85
G4GLOB_DLL std::ostream G4cerr
#define G4endl
Definition: G4ios.hh:57
virtual void ConstructAntiParticle(G4int indexOfState)
virtual void ConstructParticle(G4int indexOfState)
static G4ParticleTable * GetParticleTable()

References G4ExcitedBaryonConstructor::ConstructAntiParticle(), G4ExcitedBaryonConstructor::ConstructParticle(), G4cerr, G4endl, G4ParticleTable::GetParticleTable(), and G4ExcitedBaryonConstructor::NumberOfStates.

Referenced by G4ShortLivedConstructor::ConstructResonances().

◆ ConstructAntiParticle()

void G4ExcitedBaryonConstructor::ConstructAntiParticle ( G4int  indexOfState)
protectedvirtualinherited

Definition at line 112 of file G4ExcitedBaryonConstructor.cc.

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

References G4ExcitedBaryonConstructor::baryonNumber, G4ExcitedBaryonConstructor::CreateDecayTable(), G4ExcitedBaryonConstructor::Exist(), G4ExcitedBaryonConstructor::GetCharge(), G4ExcitedBaryonConstructor::GetEncoding(), G4ExcitedBaryonConstructor::GetiParity(), G4ExcitedBaryonConstructor::GetiSpin(), G4ExcitedBaryonConstructor::GetMass(), G4ExcitedBaryonConstructor::GetMultipletName(), G4ExcitedBaryonConstructor::GetName(), G4ExcitedBaryonConstructor::GetWidth(), G4ExcitedBaryonConstructor::iConjugation, G4ExcitedBaryonConstructor::iGParity, G4ExcitedBaryonConstructor::iIsoSpin, G4ExcitedBaryonConstructor::leptonNumber, G4InuclParticleNames::name(), G4ParticleDefinition::SetDecayTable(), and G4ExcitedBaryonConstructor::type.

Referenced by G4ExcitedBaryonConstructor::Construct().

◆ ConstructParticle()

void G4ExcitedBaryonConstructor::ConstructParticle ( G4int  indexOfState)
protectedvirtualinherited

Definition at line 81 of file G4ExcitedBaryonConstructor.cc.

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
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,
105 false, 0.0, NULL
106 );
107 ((G4ExcitedBaryons*)(particle))->SetMultipletName(GetMultipletName(idx));
108 particle->SetDecayTable(CreateDecayTable( name, iIso3, idx, false));
109 }
110}

References G4ExcitedBaryonConstructor::baryonNumber, G4ExcitedBaryonConstructor::CreateDecayTable(), G4ExcitedBaryonConstructor::Exist(), G4ExcitedBaryonConstructor::GetCharge(), G4ExcitedBaryonConstructor::GetEncoding(), G4ExcitedBaryonConstructor::GetiParity(), G4ExcitedBaryonConstructor::GetiSpin(), G4ExcitedBaryonConstructor::GetMass(), G4ExcitedBaryonConstructor::GetMultipletName(), G4ExcitedBaryonConstructor::GetName(), G4ExcitedBaryonConstructor::GetWidth(), G4ExcitedBaryonConstructor::iConjugation, G4ExcitedBaryonConstructor::iGParity, G4ExcitedBaryonConstructor::iIsoSpin, G4ExcitedBaryonConstructor::leptonNumber, G4InuclParticleNames::name(), G4ParticleDefinition::SetDecayTable(), and G4ExcitedBaryonConstructor::type.

Referenced by G4ExcitedBaryonConstructor::Construct().

◆ CreateDecayTable()

G4DecayTable * G4ExcitedNucleonConstructor::CreateDecayTable ( const G4String name,
G4int  iIso3,
G4int  iState,
G4bool  fAnti = false 
)
protectedvirtual

Implements G4ExcitedBaryonConstructor.

Definition at line 85 of file G4ExcitedNucleonConstructor.cc.

90{
91 // create decay table
92 G4DecayTable* decayTable = new G4DecayTable();
93
94 G4double br;
95 if ( (br=bRatio[iState][NGamma]) >0.0) {
96 AddNGammaMode( decayTable, parentName, br, iIso3, fAnti);
97 }
98
99 if ( (br=bRatio[iState][NPi]) >0.0) {
100 AddNPiMode( decayTable, parentName, br, iIso3, fAnti);
101 }
102
103 if ( (br=bRatio[iState][NEta]) >0.0) {
104 AddNEtaMode( decayTable, parentName, br, iIso3, fAnti);
105 }
106
107 if ( (br=bRatio[iState][NOmega]) >0.0) {
108 AddNOmegaMode( decayTable, parentName, br, iIso3, fAnti);
109 }
110
111 if ( (br=bRatio[iState][NRho]) >0.0) {
112 AddNRhoMode( decayTable, parentName, br, iIso3, fAnti);
113 }
114
115 if ( (br=bRatio[iState][N2Pi]) >0.0) {
116 AddN2PiMode( decayTable, parentName, br, iIso3, fAnti);
117 }
118
119 if ( (br=bRatio[iState][DeltaPi]) >0.0) {
120 AddDeltaPiMode( decayTable, parentName, br, iIso3, fAnti);
121 }
122
123 if ( (br=bRatio[iState][NStarPi]) >0.0) {
124 AddNStarPiMode( decayTable, parentName, br, iIso3, fAnti);
125 }
126
127 if ( (br=bRatio[iState][LambdaK]) >0.0) {
128 AddLambdaKMode( decayTable, parentName, br, iIso3, fAnti);
129 }
130
131 return decayTable;
132}
G4DecayTable * AddDeltaPiMode(G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
G4DecayTable * AddN2PiMode(G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
G4DecayTable * AddNOmegaMode(G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
G4DecayTable * AddNGammaMode(G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
G4DecayTable * AddLambdaKMode(G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
G4DecayTable * AddNRhoMode(G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
G4DecayTable * AddNStarPiMode(G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
static const G4double bRatio[NStates][NumberOfDecayModes]
G4DecayTable * AddNEtaMode(G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
G4DecayTable * AddNPiMode(G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)

References AddDeltaPiMode(), AddLambdaKMode(), AddN2PiMode(), AddNEtaMode(), AddNGammaMode(), AddNOmegaMode(), AddNPiMode(), AddNRhoMode(), AddNStarPiMode(), bRatio, DeltaPi, LambdaK, N2Pi, NEta, NGamma, NOmega, NPi, NRho, and NStarPi.

◆ Exist()

virtual G4bool G4ExcitedNucleonConstructor::Exist ( G4int  )
inlineprotectedvirtual

Implements G4ExcitedBaryonConstructor.

Definition at line 55 of file G4ExcitedNucleonConstructor.hh.

55{return true;}

◆ GetCharge()

G4double G4ExcitedBaryonConstructor::GetCharge ( G4int  iIsoSpin3)
protectedvirtualinherited

Definition at line 148 of file G4ExcitedBaryonConstructor.cc.

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}
static constexpr double eplus
Definition: G4SIunits.hh:184
virtual G4int GetQuarkContents(G4int, G4int)=0

References eplus, and G4ExcitedBaryonConstructor::GetQuarkContents().

Referenced by G4ExcitedBaryonConstructor::ConstructAntiParticle(), and G4ExcitedBaryonConstructor::ConstructParticle().

◆ GetEncoding()

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

Reimplemented from G4ExcitedBaryonConstructor.

Definition at line 56 of file G4ExcitedNucleonConstructor.cc.

57{
59 // Delta has exceptinal encoding
60 if ((idxState==1)||(idxState==6)||(idxState==8)||(idxState==9)||(idxState==12) ) {
61 encoding = GetEncodingOffset(idxState);
62 if ((iIsoSpin3==3)||(iIsoSpin3==-3)) {
63 // normal encoding
64 encoding += 1000*GetQuarkContents(0, iIsoSpin3);
65 encoding += 100*GetQuarkContents(1, iIsoSpin3);
66 encoding += 10*GetQuarkContents(2, iIsoSpin3);
67 } else if (iIsoSpin3== +1){
68 // 1st <--> 2nd quark
69 encoding += 1000*GetQuarkContents(0, iIsoSpin3);
70 encoding += 10*GetQuarkContents(1, iIsoSpin3);
71 encoding += 100*GetQuarkContents(2, iIsoSpin3);
72 } else if (iIsoSpin3== -1){
73 // 1st <--> 0th quark
74 encoding += 100*GetQuarkContents(0, iIsoSpin3);
75 encoding += 1000*GetQuarkContents(1, iIsoSpin3);
76 encoding += 10*GetQuarkContents(2, iIsoSpin3);
77 }
78 encoding += GetiSpin(idxState) +1;
79 } else {
81 }
82 return encoding;
83}
virtual G4int GetQuarkContents(G4int, G4int)
virtual G4int GetiSpin(G4int iState)
virtual G4int GetEncodingOffset(G4int iState)
#define encoding
Definition: xmlparse.cc:605

References encoding, G4ExcitedBaryonConstructor::GetEncoding(), GetEncodingOffset(), GetiSpin(), and GetQuarkContents().

◆ GetEncodingOffset()

G4int G4ExcitedNucleonConstructor::GetEncodingOffset ( G4int  iState)
inlineprotectedvirtual

Implements G4ExcitedBaryonConstructor.

Definition at line 136 of file G4ExcitedNucleonConstructor.hh.

137{
138 return encodingOffset[iState];
139}
static const G4int encodingOffset[NStates]

References encodingOffset.

Referenced by GetEncoding().

◆ GetiParity()

G4int G4ExcitedNucleonConstructor::GetiParity ( G4int  iState)
inlineprotectedvirtual

Implements G4ExcitedBaryonConstructor.

Definition at line 130 of file G4ExcitedNucleonConstructor.hh.

131{
132 return iParity[iState];
133}
static const G4int iParity[NStates]

References iParity.

◆ GetiSpin()

G4int G4ExcitedNucleonConstructor::GetiSpin ( G4int  iState)
inlineprotectedvirtual

Implements G4ExcitedBaryonConstructor.

Definition at line 124 of file G4ExcitedNucleonConstructor.hh.

125{
126 return iSpin[iState];
127}
static const G4int iSpin[NStates]

References iSpin.

Referenced by GetEncoding().

◆ GetMass()

G4double G4ExcitedNucleonConstructor::GetMass ( G4int  state,
G4int  iso 
)
inlineprotectedvirtual

Implements G4ExcitedBaryonConstructor.

Definition at line 112 of file G4ExcitedNucleonConstructor.hh.

113{
114 return mass[iState];
115}
static const G4double mass[NStates]

References mass.

◆ GetMultipletName()

G4String G4ExcitedNucleonConstructor::GetMultipletName ( G4int  iState)
inlineprotectedvirtual

Implements G4ExcitedBaryonConstructor.

Definition at line 167 of file G4ExcitedNucleonConstructor.hh.

168{
169 return name[iState];
170}
static const char * name[NStates]

References name.

◆ GetName()

G4String G4ExcitedNucleonConstructor::GetName ( G4int  iIso3,
G4int  iState 
)
inlineprotectedvirtual

Implements G4ExcitedBaryonConstructor.

Definition at line 173 of file G4ExcitedNucleonConstructor.hh.

174{
175 G4String particle = name[iState];
176 if ( iIso3 == -1 ){
177 particle += "0";
178 } else {
179 particle += "+";
180 }
181 return particle;
182}

References name.

◆ GetQuarkContents()

G4int G4ExcitedNucleonConstructor::GetQuarkContents ( G4int  iQ,
G4int  iIso3 
)
inlineprotectedvirtual

Implements G4ExcitedBaryonConstructor.

Definition at line 142 of file G4ExcitedNucleonConstructor.hh.

143{
144 // Quark contents
145 // iIso3 = -1 : udd
146 // iIso3 = +1 : uud
147 G4int quark=0;
148 if ( iQ == 0 ){
149 // u-quark
150 quark = 2;
151 } else if ( iQ == 2 ){
152 // d-quark
153 quark = 1;
154 } else {
155 if ( iIso3 == -1 ){
156 // d-quark
157 quark = 1;
158 } else {
159 // u-quark
160 quark = 2;
161 }
162 }
163 return quark;
164}

Referenced by GetEncoding().

◆ GetWidth()

G4double G4ExcitedNucleonConstructor::GetWidth ( G4int  state,
G4int  iso 
)
inlineprotectedvirtual

Implements G4ExcitedBaryonConstructor.

Definition at line 118 of file G4ExcitedNucleonConstructor.hh.

119{
120 return width[iState];
121}
static const G4double width[NStates]

References width.

Field Documentation

◆ baryonNumber

const G4int G4ExcitedBaryonConstructor::baryonNumber
protectedinherited

◆ bRatio

const G4double G4ExcitedNucleonConstructor::bRatio
staticprivate
Initial value:
=
{
{ 0.0, 0.70, 0.0, 0.0, 0.0, 0.05, 0.25, 0.0, 0.0},
{ 0.0, 0.60, 0.0, 0.0, 0.0, 0.15, 0.25, 0.0, 0.0},
{0.001, 0.55, 0.35, 0.0, 0.0, 0.05, 0.00, 0.05, 0.0},
{ 0.0, 0.65, 0.05, 0.0, 0.0, 0.05, 0.10, 0.05, 0.10},
{ 0.0, 0.45, 0.0, 0.0, 0.0, 0.00, 0.55, 0.0, 0.0},
{ 0.0, 0.65, 0.0, 0.0, 0.0, 0.20, 0.15, 0.0, 0.0},
{ 0.0, 0.10, 0.05, 0.0, 0.05, 0.45, 0.35, 0.0, 0.0},
{ 0.0, 0.15, 0.20, 0.0, 0.05, 0.20, 0.20, 0.10, 0.10},
{ 0.0, 0.15, 0.00, 0.0, 0.25, 0.45, 0.10, 0.00, 0.05},
{ 0.0, 0.35, 0.0, 0.55, 0.05, 0.00, 0.05, 0.0, 0.0},
{ 0.0, 0.05, 0.0, 0.0, 0.15, 0.25, 0.30, 0.15, 0.10},
{ 0.0, 0.60, 0.05, 0.0, 0.25, 0.05, 0.05, 0.0, 0.0},
{ 0.0, 0.35, 0.0, 0.00, 0.30, 0.15, 0.15, 0.05, 0.0},
{ 0.0, 0.35, 0.0, 0.0, 0.25, 0.20, 0.20, 0.0, 0.0},
{ 0.0, 0.30, 0.0, 0.00, 0.25, 0.20, 0.20, 0.05, 0.0}
}

Definition at line 108 of file G4ExcitedNucleonConstructor.hh.

Referenced by CreateDecayTable().

◆ encodingOffset

const G4int G4ExcitedNucleonConstructor::encodingOffset
staticprivate
Initial value:
= {
10000, 0, 20000, 30000, 0,
10000, 20000, 40000, 30000, 40000,
10000, 50000, 0, 0, 10000
}

Definition at line 100 of file G4ExcitedNucleonConstructor.hh.

Referenced by GetEncodingOffset().

◆ iConjugation

const G4int G4ExcitedBaryonConstructor::iConjugation
protectedinherited

◆ iGParity

const G4int G4ExcitedBaryonConstructor::iGParity
protectedinherited

◆ iIsoSpin

G4int G4ExcitedBaryonConstructor::iIsoSpin
protectedinherited

◆ iParity

const G4int G4ExcitedNucleonConstructor::iParity
staticprivate
Initial value:
= {
+1, -1, -1, -1, -1,
+1, -1, +1, +1, +1,
+1, -1, +1, -1, -1
}

Definition at line 99 of file G4ExcitedNucleonConstructor.hh.

Referenced by GetiParity().

◆ iSpin

const G4int G4ExcitedNucleonConstructor::iSpin
staticprivate
Initial value:
= {
1, 3, 1, 1, 5,
5, 3, 1, 3, 3,
7, 3, 7, 9, 9
}

Definition at line 98 of file G4ExcitedNucleonConstructor.hh.

Referenced by GetiSpin().

◆ leptonNumber

const G4int G4ExcitedBaryonConstructor::leptonNumber
protectedinherited

◆ mass

const G4double G4ExcitedNucleonConstructor::mass
staticprivate
Initial value:
= {
1.430*GeV, 1.515*GeV, 1.535*GeV, 1.655*GeV, 1.675*GeV,
1.685*GeV, 1.700*GeV, 1.710*GeV, 1.720*GeV, 1.900*GeV,
1.950*GeV, 2.080*GeV, 2.190*GeV, 2.250*GeV, 2.275*GeV
}
static constexpr double GeV
Definition: G4SIunits.hh:203

Definition at line 96 of file G4ExcitedNucleonConstructor.hh.

Referenced by GetMass().

◆ name

const char * G4ExcitedNucleonConstructor::name
staticprivate
Initial value:
= {
"N(1440)", "N(1520)", "N(1535)", "N(1650)", "N(1675)",
"N(1680)", "N(1700)", "N(1710)", "N(1720)", "N(1900)",
"N(1990)", "N(2090)", "N(2190)", "N(2220)", "N(2250)"
}

Definition at line 95 of file G4ExcitedNucleonConstructor.hh.

Referenced by source.g4viscp.G4Scene::create_scene(), GetMultipletName(), GetName(), mcscore.MCParticle::printout(), and source.g4viscp.G4Scene::update_scene().

◆ NumberOfStates

G4int G4ExcitedBaryonConstructor::NumberOfStates
protectedinherited

Definition at line 63 of file G4ExcitedBaryonConstructor.hh.

Referenced by G4ExcitedBaryonConstructor::Construct().

◆ type

const G4String G4ExcitedBaryonConstructor::type
protectedinherited

◆ width

const G4double G4ExcitedNucleonConstructor::width
staticprivate
Initial value:
= {
350.0*MeV, 115.0*MeV, 150.0*MeV, 140.0*MeV, 150.0*MeV,
130.0*MeV, 150.0*MeV, 100.0*MeV, 250.0*MeV, 500.0*MeV,
555.0*MeV, 350.0*MeV, 500.0*MeV, 400.0*MeV, 500.0*MeV
}
static constexpr double MeV
Definition: G4SIunits.hh:200

Definition at line 97 of file G4ExcitedNucleonConstructor.hh.

Referenced by GetWidth().


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