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

#include <G4ExcitedSigmaConstructor.hh>

Inheritance diagram for G4ExcitedSigmaConstructor:
G4ExcitedBaryonConstructor

Public Types

enum  { NStates = 8 }
 
enum  { NumberOfDecayModes = 8 }
 

Public Member Functions

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

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  { SigmaIsoSpin = 2 }
 
enum  {
  NK =0 , NKStar =1 , SigmaPi =2 , SigmaStarPi =3 ,
  LambdaPi =4 , SigmaEta =5 , LambdaStarPi =6 , DeltaK =7
}
 

Private Member Functions

G4DecayTableAddDeltaKMode (G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
 
G4DecayTableAddLambdaPiMode (G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
 
G4DecayTableAddLambdaStarPiMode (G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
 
G4DecayTableAddNKMode (G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
 
G4DecayTableAddNKStarMode (G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
 
G4DecayTableAddSigmaEtaMode (G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
 
G4DecayTableAddSigmaPiMode (G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
 
G4DecayTableAddSigmaStarPiMode (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 G4ExcitedSigmaConstructor.hh.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
NStates 

Definition at line 85 of file G4ExcitedSigmaConstructor.hh.

◆ anonymous enum

anonymous enum
private
Enumerator
SigmaIsoSpin 

Definition at line 87 of file G4ExcitedSigmaConstructor.hh.

◆ anonymous enum

anonymous enum
Enumerator
NumberOfDecayModes 

Definition at line 98 of file G4ExcitedSigmaConstructor.hh.

◆ anonymous enum

anonymous enum
private

Constructor & Destructor Documentation

◆ G4ExcitedSigmaConstructor()

G4ExcitedSigmaConstructor::G4ExcitedSigmaConstructor ( )

Definition at line 46 of file G4ExcitedSigmaConstructor.cc.

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

◆ ~G4ExcitedSigmaConstructor()

G4ExcitedSigmaConstructor::~G4ExcitedSigmaConstructor ( )
virtual

Definition at line 52 of file G4ExcitedSigmaConstructor.cc.

53{
54}

Member Function Documentation

◆ AddDeltaKMode()

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

Definition at line 193 of file G4ExcitedSigmaConstructor.cc.

196{
197 G4VDecayChannel* mode;
198
199 G4String daughterN;
200 G4String daughterK;
201 G4double r = 0.;
202
203 // ------------ N K- ------------
204 // determine daughters
205 if (iIso3== +2) {
206 daughterN = "delta++";
207 r=0.75*br;
208 } else if (iIso3== 0) {
209 daughterN = "delta+";
210 r = br/2.;
211 } else if (iIso3== -2) {
212 daughterN = "delta0";
213 r = 0.25*br;
214 }
215 if (!fAnti) {
216 daughterK = "kaon-";
217 } else {
218 daughterK = "kaon+";
219 }
220 if (fAnti) daughterN = "anti_" + daughterN;
221 if (r>0.) {
222 // create decay channel [parent BR #daughters]
223 mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
224 daughterN,daughterK);
225 // add decay table
226 decayTable->Insert(mode);
227 }
228
229 // ------------ N K0 ------------
230 // determine daughters
231 if (iIso3== +2) {
232 daughterN = "delta+";
233 r=0.25*br;
234 } else if (iIso3== 0) {
235 daughterN = "delta0";
236 r = br/2.;
237 } else if (iIso3== -2) {
238 daughterN = "delta-";
239 r=0.75*br;
240 }
241 if (!fAnti) {
242 daughterK = "anti_kaon0";
243 } else {
244 daughterK = "kaon0";
245 }
246 if (fAnti) daughterN = "anti_" + daughterN;
247 if (r>0.) {
248
249
250 // create decay channel [parent BR #daughters]
251 mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
252 daughterN,daughterK);
253 // add decay table
254 decayTable->Insert(mode);
255 }
256
257 return decayTable;
258}
double G4double
Definition: G4Types.hh:83

References G4DecayTable::Insert().

Referenced by CreateDecayTable().

◆ AddLambdaPiMode()

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

Definition at line 498 of file G4ExcitedSigmaConstructor.cc.

501{
502 G4VDecayChannel* mode;
503
504 G4String daughterLambda = "lambda";
505 G4String daughterPi;
506
507 // determine daughters
508 if (iIso3== +2) {
509 if (!fAnti) {
510 daughterPi = "pi+";
511 } else {
512 daughterPi = "pi-";
513 }
514 } else if (iIso3== 0) {
515 daughterPi = "pi0";
516 } else if (iIso3== -2) {
517 if (!fAnti) {
518 daughterPi = "pi-";
519 } else {
520 daughterPi = "pi+";
521 }
522 }
523 if (fAnti) daughterLambda = "anti_" + daughterLambda;
524 // create decay channel [parent BR #daughters]
525 mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
526 daughterLambda, daughterPi);
527 // add decay table
528 decayTable->Insert(mode);
529
530 return decayTable;
531}

References G4DecayTable::Insert().

Referenced by CreateDecayTable().

◆ AddLambdaStarPiMode()

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

Definition at line 533 of file G4ExcitedSigmaConstructor.cc.

536{
537 G4VDecayChannel* mode;
538
539 G4String daughterLambda = "lambda(1405)";
540 G4String daughterPi;
541
542 // determine daughters
543 if (iIso3== +2) {
544 if (!fAnti) {
545 daughterPi = "pi+";
546 } else {
547 daughterPi = "pi-";
548 }
549 } else if (iIso3== 0) {
550 daughterPi = "pi0";
551 } else if (iIso3== -2) {
552 if (!fAnti) {
553 daughterPi = "pi-";
554 } else {
555 daughterPi = "pi+";
556 }
557 }
558
559 if (fAnti) daughterLambda = "anti_" + daughterLambda;
560 // create decay channel [parent BR #daughters]
561 mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
562 daughterLambda,daughterPi);
563 // add decay table
564 decayTable->Insert(mode);
565
566 return decayTable;
567}

References G4DecayTable::Insert().

Referenced by CreateDecayTable().

◆ AddNKMode()

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

Definition at line 127 of file G4ExcitedSigmaConstructor.cc.

132{
133 G4VDecayChannel* mode;
134
135 G4String daughterN;
136 G4String daughterK;
137 G4double r = 0.;
138
139 // ------------ N K- ------------
140 // determine daughters
141 if (iIso3== +2) {
142 r=0.;
143 } else if (iIso3== 0) {
144 daughterN = "proton";
145 r = br/2.;
146 } else if (iIso3== -2) {
147 daughterN = "neutron";
148 r = br;
149 }
150 if (!fAnti) {
151 daughterK = "kaon-";
152 } else {
153 daughterK = "kaon+";
154 }
155 if (fAnti) daughterN = "anti_" + daughterN;
156 if (r>0.) {
157 // create decay channel [parent BR #daughters]
158 mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
159 daughterN,daughterK);
160 // add decay table
161 decayTable->Insert(mode);
162 }
163
164 // ------------ N K0 ------------
165 // determine daughters
166 if (iIso3== +2) {
167 daughterN = "proton";
168 r=br;
169 } else if (iIso3== 0) {
170 daughterN = "neutron";
171 r = br/2.;
172 } else if (iIso3== -2) {
173 r = 0.;
174 }
175 if (!fAnti) {
176 daughterK = "anti_kaon0";
177 } else {
178
179 daughterK = "kaon0";
180 }
181 if (fAnti) daughterN = "anti_" + daughterN;
182 if (r>0.) {
183 // create decay channel [parent BR #daughters]
184 mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
185 daughterN,daughterK);
186 // add decay table
187 decayTable->Insert(mode);
188 }
189
190 return decayTable;
191}

References G4DecayTable::Insert().

Referenced by CreateDecayTable().

◆ AddNKStarMode()

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

Definition at line 261 of file G4ExcitedSigmaConstructor.cc.

264{
265 G4VDecayChannel* mode;
266
267 G4String daughterN;
268 G4String daughterK;
269 G4double r = 0.;
270
271 // ------------ N K- ------------
272 // determine daughters
273 if (iIso3== +2) {
274
275 r=0.;
276 } else if (iIso3== 0) {
277 daughterN = "proton";
278 r = br/2.;
279 } else if (iIso3== -2) {
280 daughterN = "neutron";
281 r = br;
282 }
283 if (!fAnti) {
284 daughterK = "k_star-";
285 } else {
286 daughterK = "k_star+";
287 }
288 if (fAnti) daughterN = "anti_" + daughterN;
289 if (r>0.) {
290 // create decay channel [parent BR #daughters]
291 mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
292 daughterN,daughterK);
293 // add decay table
294 decayTable->Insert(mode);
295 }
296
297 // ------------ N K0 ------------
298
299 // determine daughters
300 if (iIso3== +2) {
301 daughterN = "proton";
302 r=br;
303 } else if (iIso3== 0) {
304 daughterN = "neutron";
305 r = br/2.;
306 } else if (iIso3== -2) {
307 r = 0.;
308 }
309 if (!fAnti) {
310 daughterK = "anti_k_star0";
311 } else {
312 daughterK = "k_star0";
313 }
314 if (fAnti) daughterN = "anti_" + daughterN;
315 // create decay channel [parent BR #daughters]
316 if (r>0.) {
317 mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
318 daughterN,daughterK);
319 // add decay table
320 decayTable->Insert(mode);
321 }
322
323 return decayTable;
324}

References G4DecayTable::Insert().

Referenced by CreateDecayTable().

◆ AddSigmaEtaMode()

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

Definition at line 102 of file G4ExcitedSigmaConstructor.cc.

105{
106 G4VDecayChannel* mode;
107 //
108 G4String daughterH;
109 if (iIso3== +2) {
110 daughterH = "sigma+";
111 } else if (iIso3== 0) {
112 daughterH = "sigma0";
113 } else if (iIso3== -2) {
114 daughterH = "sigma-";
115 }
116 if (fAnti) daughterH = "anti_" + daughterH;
117
118 // create decay channel [parent BR #daughters]
119 mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
120 daughterH,"eta");
121 // add decay table
122 decayTable->Insert(mode);
123
124 return decayTable;
125}

References G4DecayTable::Insert().

Referenced by CreateDecayTable().

◆ AddSigmaPiMode()

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

Definition at line 326 of file G4ExcitedSigmaConstructor.cc.

329{
330 G4VDecayChannel* mode;
331
332 G4String daughterSigma;
333 G4String daughterPi;
334 G4double r = 0.;
335
336 // ------------ Sigma+ pi - ------------
337 // determine daughters
338 if (iIso3== +2) {
339 r = 0.;
340 } else if (iIso3== 0) {
341 daughterSigma = "sigma+";
342 r = br/2.;
343 } else if (iIso3== -2) {
344 daughterSigma = "sigma0";
345 r = br/2.;
346 }
347 if (!fAnti) {
348 daughterPi = "pi-";
349 } else {
350 daughterPi = "pi+";
351 }
352 if (fAnti) daughterSigma = "anti_" + daughterSigma;
353 if (r>0.) {
354 // create decay channel [parent BR #daughters]
355 mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
356 daughterSigma,daughterPi);
357 // add decay table
358 decayTable->Insert(mode);
359 }
360 // ------------ Sigma0 Pi0 ------------
361 // determine daughters
362 if (iIso3== +2) {
363 daughterSigma = "sigma+";
364 r = br/2.;
365 } else if (iIso3== 0) {
366 r = 0.;
367 } else if (iIso3== -2) {
368 daughterSigma = "sigma-";
369
370
371 r = br/2.;
372 }
373 daughterPi = "pi0";
374 if (fAnti) daughterSigma = "anti_" + daughterSigma;
375 if (r>0.) {
376 // create decay channel [parent BR #daughters]
377 mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
378 daughterSigma,daughterPi);
379 // add decay table
380 decayTable->Insert(mode);
381 }
382
383 // ------------ Sigma- pi + ------------
384 // determine daughters
385 if (iIso3== +2) {
386 daughterSigma = "sigma0";
387 r = br/2.;
388 } else if (iIso3== 0) {
389 daughterSigma = "sigma-";
390 r = br/2.;
391 } else if (iIso3== -2) {
392 r = 0.;
393 }
394 if (!fAnti) {
395 daughterPi = "pi+";
396 } else {
397 daughterPi = "pi-";
398 }
399 if (fAnti) daughterSigma = "anti_" + daughterSigma;
400 if (r>0.) {
401 // create decay channel [parent BR #daughters]
402 mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
403 daughterSigma,daughterPi);
404 // add decay table
405 decayTable->Insert(mode);
406 }
407
408 return decayTable;
409}

References G4DecayTable::Insert().

Referenced by CreateDecayTable().

◆ AddSigmaStarPiMode()

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

Definition at line 412 of file G4ExcitedSigmaConstructor.cc.

415{
416 G4VDecayChannel* mode;
417
418
419 G4String daughterSigma;
420 G4String daughterPi;
421 G4double r = 0.;
422
423 // ------------ Sigma+ pi - ------------
424 // determine daughters
425 if (iIso3== +2) {
426 r = 0.;
427 } else if (iIso3== 0) {
428 daughterSigma = "sigma(1385)+";
429 r = br/2.;
430 } else if (iIso3== -2) {
431 daughterSigma = "sigma(1385)0";
432 r = br/2.;
433 }
434 if (!fAnti) {
435 daughterPi = "pi-";
436 } else {
437 daughterPi = "pi+";
438 }
439 if (fAnti) daughterSigma = "anti_" + daughterSigma;
440 if (r>0.) {
441 // create decay channel [parent BR #daughters]
442 mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
443 daughterSigma,daughterPi);
444 // add decay table
445 decayTable->Insert(mode);
446 }
447 // ------------ Sigma0 Pi0 ------------
448 // determine daughters
449 if (iIso3== +2) {
450 daughterSigma = "sigma(1385)+";
451 r = br/2.;
452 } else if (iIso3== 0) {
453 r = 0.;
454 } else if (iIso3== -2) {
455 daughterSigma = "sigma(1385)-";
456 r = br/2.;
457 }
458 daughterPi = "pi0";
459 if (fAnti) daughterSigma = "anti_" + daughterSigma;
460 if (r>0.) {
461 // create decay channel [parent BR #daughters]
462 mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
463 daughterSigma,daughterPi);
464
465 // add decay table
466 decayTable->Insert(mode);
467 }
468
469 // ------------ Sigma- pi + ------------
470 // determine daughters
471 if (iIso3== +2) {
472 daughterSigma = "sigma(1385)0";
473 r = br/2.;
474 } else if (iIso3== 0) {
475 daughterSigma = "sigma(1385)-";
476 r = br/2.;
477 } else if (iIso3== -2) {
478 r = 0.;
479 }
480 if (!fAnti) {
481 daughterPi = "pi+";
482 } else {
483 daughterPi = "pi-";
484 }
485 if (fAnti) daughterSigma = "anti_" + daughterSigma;
486 if (r>0.) {
487 // create decay channel [parent BR #daughters]
488
489 mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
490 daughterSigma,daughterPi);
491 // add decay table
492 decayTable->Insert(mode);
493 }
494
495 return decayTable;
496}

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 * G4ExcitedSigmaConstructor::CreateDecayTable ( const G4String name,
G4int  iIso3,
G4int  iState,
G4bool  fAnti = false 
)
protectedvirtual

Implements G4ExcitedBaryonConstructor.

Definition at line 56 of file G4ExcitedSigmaConstructor.cc.

61{
62
63 // create decay table
64 G4DecayTable* decayTable = new G4DecayTable();
65
66 G4double br;
67 if ( (br=bRatio[iState][NK]) >0.0) {
68 AddNKMode( decayTable, parentName, br, iIso3, fAnti);
69 }
70
71 if ( (br=bRatio[iState][NKStar]) >0.0) {
72 AddNKStarMode( decayTable, parentName, br, iIso3, fAnti);
73 }
74
75 if ( (br=bRatio[iState][SigmaPi]) >0.0) {
76 AddSigmaPiMode( decayTable, parentName, br, iIso3, fAnti);
77 }
78
79 if ( (br=bRatio[iState][SigmaStarPi]) >0.0) {
80 AddSigmaStarPiMode( decayTable, parentName, br, iIso3, fAnti);
81 }
82
83 if ( (br=bRatio[iState][LambdaPi]) >0.0) {
84 AddLambdaPiMode( decayTable, parentName, br, iIso3, fAnti);
85 }
86
87 if ( (br=bRatio[iState][SigmaEta]) >0.0) {
88 AddSigmaEtaMode( decayTable, parentName, br, iIso3, fAnti);
89 }
90
91 if ( (br=bRatio[iState][LambdaStarPi]) >0.0) {
92 AddLambdaStarPiMode( decayTable, parentName, br, iIso3, fAnti);
93 }
94
95 if ( (br=bRatio[iState][DeltaK]) >0.0) {
96 AddDeltaKMode( decayTable, parentName, br, iIso3, fAnti);
97 }
98
99 return decayTable;
100}
G4DecayTable * AddLambdaPiMode(G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
G4DecayTable * AddSigmaEtaMode(G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
G4DecayTable * AddDeltaKMode(G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
G4DecayTable * AddLambdaStarPiMode(G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
G4DecayTable * AddSigmaStarPiMode(G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
G4DecayTable * AddNKStarMode(G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
G4DecayTable * AddSigmaPiMode(G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
G4DecayTable * AddNKMode(G4DecayTable *table, const G4String &name, G4double br, G4int iIso3, G4bool fAnti)
static const G4double bRatio[NStates][NumberOfDecayModes]

References AddDeltaKMode(), AddLambdaPiMode(), AddLambdaStarPiMode(), AddNKMode(), AddNKStarMode(), AddSigmaEtaMode(), AddSigmaPiMode(), AddSigmaStarPiMode(), bRatio, DeltaK, LambdaPi, LambdaStarPi, NK, NKStar, SigmaEta, SigmaPi, and SigmaStarPi.

◆ Exist()

virtual G4bool G4ExcitedSigmaConstructor::Exist ( G4int  )
inlineprotectedvirtual

Implements G4ExcitedBaryonConstructor.

Definition at line 52 of file G4ExcitedSigmaConstructor.hh.

52{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 G4ExcitedBaryonConstructor::GetEncoding ( G4int  iIsoSpin3,
G4int  idxState 
)
protectedvirtualinherited

◆ GetEncodingOffset()

G4int G4ExcitedSigmaConstructor::GetEncodingOffset ( G4int  iState)
inlineprotectedvirtual

Implements G4ExcitedBaryonConstructor.

Definition at line 121 of file G4ExcitedSigmaConstructor.hh.

122{
123 return encodingOffset[iState];
124}
static const G4int encodingOffset[NStates]

References encodingOffset.

◆ GetiParity()

G4int G4ExcitedSigmaConstructor::GetiParity ( G4int  iState)
inlineprotectedvirtual

Implements G4ExcitedBaryonConstructor.

Definition at line 115 of file G4ExcitedSigmaConstructor.hh.

116{
117 return iParity[iState];
118}
static const G4int iParity[NStates]

References iParity.

◆ GetiSpin()

G4int G4ExcitedSigmaConstructor::GetiSpin ( G4int  iState)
inlineprotectedvirtual

Implements G4ExcitedBaryonConstructor.

Definition at line 109 of file G4ExcitedSigmaConstructor.hh.

110{
111 return iSpin[iState];
112}
static const G4int iSpin[NStates]

References iSpin.

◆ GetMass()

G4double G4ExcitedSigmaConstructor::GetMass ( G4int  state,
G4int  iso 
)
protectedvirtual

Implements G4ExcitedBaryonConstructor.

Definition at line 570 of file G4ExcitedSigmaConstructor.cc.

571{
572 G4double fmass = mass[iState];
573 if (iState == 0 ) {
574 if (iso3== +2) fmass -= 0.9*MeV; // sigma+
575 else if (iso3== -2) fmass += 3.5*MeV; // sigma-
576 }
577 return fmass;
578}
static constexpr double MeV
Definition: G4SIunits.hh:200
static const G4double mass[NStates]

References mass, and MeV.

◆ GetMultipletName()

G4String G4ExcitedSigmaConstructor::GetMultipletName ( G4int  iState)
inlineprotectedvirtual

Implements G4ExcitedBaryonConstructor.

Definition at line 154 of file G4ExcitedSigmaConstructor.hh.

155{
156 return name[iState];
157}
static const char * name[NStates]

References name.

◆ GetName()

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

Implements G4ExcitedBaryonConstructor.

Definition at line 160 of file G4ExcitedSigmaConstructor.hh.

161 {
162 G4String particle = name[iState];
163 if (iIso3 == +2) {
164 particle += "+";
165 } else if (iIso3 == 0) {
166 particle += "0";
167 } else if (iIso3 == -2) {
168 particle += "-";
169 }
170 return particle;
171}

References name.

◆ GetQuarkContents()

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

Implements G4ExcitedBaryonConstructor.

Definition at line 127 of file G4ExcitedSigmaConstructor.hh.

128{
129 G4int quark=0;
130 if ( iQ == 0 ){
131 // s-quark
132 quark = 3;
133 } else if ( iQ == 1 ){
134 if (iIso3 == -2) {
135 // d-quark
136 quark = 1;
137 } else {
138 // u-quark
139 quark = 2;
140 }
141 } else if ( iQ == 2 ){
142 if (iIso3 == +2) {
143 // u-quark
144 quark = 2;
145 } else {
146 // d-quark
147 quark = 1;
148 }
149 }
150 return quark;
151}

◆ GetWidth()

G4double G4ExcitedSigmaConstructor::GetWidth ( G4int  state,
G4int  iso 
)
protectedvirtual

Implements G4ExcitedBaryonConstructor.

Definition at line 580 of file G4ExcitedSigmaConstructor.cc.

581{
582 G4double fw=width[iState];
583 if (iState == 0 ) {
584 if (iso3== +2) fw = 36.0*MeV; // sigma+
585 else if (iso3== -2) fw = 39.4*MeV; // sigma-
586 }
587 return fw;
588}
static const G4double width[NStates]

References MeV, and width.

Field Documentation

◆ baryonNumber

const G4int G4ExcitedBaryonConstructor::baryonNumber
protectedinherited

◆ bRatio

const G4double G4ExcitedSigmaConstructor::bRatio
staticprivate
Initial value:
=
{
{ 0.0, 0.0, 0.12, 0.0, 0.88, 0.0, 0.0, 0.0},
{ 0.30, 0.0, 0.35, 0.0, 0.35, 0.0, 0.0, 0.0},
{ 0.15, 0.0, 0.70, 0.0, 0.15, 0.0, 0.0, 0.0},
{ 0.40, 0.0, 0.05, 0.0, 0.0, 0.55, 0.0, 0.0},
{ 0.40, 0.0, 0.04, 0.10, 0.23, 0.0, 0.23, 0.0},
{ 0.15, 0.0, 0.40, 0.05, 0.40, 0.0, 0.0, 0.0},
{ 0.10, 0.15, 0.15, 0.15, 0.15, 0.0, 0.15, 0.15},
{ 0.20, 0.04, 0.10, 0.10, 0.20, 0.0, 0.18, 0.18}
}

Definition at line 103 of file G4ExcitedSigmaConstructor.hh.

Referenced by CreateDecayTable().

◆ encodingOffset

const G4int G4ExcitedSigmaConstructor::encodingOffset
staticprivate
Initial value:
= {
0, 10000, 10000, 20000, 0,
10000, 20000, 0
}

Definition at line 95 of file G4ExcitedSigmaConstructor.hh.

Referenced by GetEncodingOffset().

◆ iConjugation

const G4int G4ExcitedBaryonConstructor::iConjugation
protectedinherited

◆ iGParity

const G4int G4ExcitedBaryonConstructor::iGParity
protectedinherited

◆ iIsoSpin

G4int G4ExcitedBaryonConstructor::iIsoSpin
protectedinherited

◆ iParity

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

Definition at line 94 of file G4ExcitedSigmaConstructor.hh.

Referenced by GetiParity().

◆ iSpin

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

Definition at line 93 of file G4ExcitedSigmaConstructor.hh.

Referenced by GetiSpin().

◆ leptonNumber

const G4int G4ExcitedBaryonConstructor::leptonNumber
protectedinherited

◆ mass

const G4double G4ExcitedSigmaConstructor::mass
staticprivate
Initial value:
= {
1.3837*GeV, 1.660*GeV, 1.670*GeV, 1.750*GeV, 1.775*GeV,
1.915*GeV, 1.940*GeV, 2.030*GeV
}
static constexpr double GeV
Definition: G4SIunits.hh:203

Definition at line 91 of file G4ExcitedSigmaConstructor.hh.

Referenced by GetMass().

◆ name

const char * G4ExcitedSigmaConstructor::name
staticprivate
Initial value:
= {
"sigma(1385)","sigma(1660)","sigma(1670)","sigma(1750)","sigma(1775)",
"sigma(1915)","sigma(1940)","sigma(2030)"
}

Definition at line 90 of file G4ExcitedSigmaConstructor.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 G4ExcitedSigmaConstructor::width
staticprivate
Initial value:
= {
36.0*MeV, 100.0*MeV, 60.0*MeV, 90.0*MeV, 120.0*MeV,
120.0*MeV, 220.0*MeV, 180.0*MeV
}

Definition at line 92 of file G4ExcitedSigmaConstructor.hh.

Referenced by GetWidth().


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