#include <G4VDecayChannel.hh>
|
| G4VDecayChannel (const G4String &aName, G4int Verbose=1) |
|
| G4VDecayChannel (const G4String &aName, const G4String &theParentName, G4double theBR, G4int theNumberOfDaughters, const G4String &theDaughterName1, const G4String &theDaughterName2="", const G4String &theDaughterName3="", const G4String &theDaughterName4="") |
|
virtual | ~G4VDecayChannel () |
|
G4int | operator== (const G4VDecayChannel &right) const |
|
G4int | operator!= (const G4VDecayChannel &right) const |
|
G4int | operator< (const G4VDecayChannel &right) const |
|
virtual G4DecayProducts * | DecayIt (G4double parentMass=-1.0)=0 |
|
const G4String & | GetKinematicsName () const |
|
G4double | GetBR () const |
|
G4int | GetNumberOfDaughters () const |
|
G4ParticleDefinition * | GetParent () |
|
G4ParticleDefinition * | GetDaughter (G4int anIndex) |
|
G4int | GetAngularMomentum () |
|
const G4String & | GetParentName () const |
|
const G4String & | GetDaughterName (G4int anIndex) const |
|
G4double | GetParentMass () const |
|
G4double | GetDaughterMass (G4int anIndex) const |
|
void | SetParent (const G4ParticleDefinition *particle_type) |
|
void | SetParent (const G4String &particle_name) |
|
void | SetBR (G4double value) |
|
void | SetNumberOfDaughters (G4int value) |
|
void | SetDaughter (G4int anIndex, const G4ParticleDefinition *particle_type) |
|
void | SetDaughter (G4int anIndex, const G4String &particle_name) |
|
void | SetVerboseLevel (G4int value) |
|
G4int | GetVerboseLevel () const |
|
void | DumpInfo () |
|
G4double | GetRangeMass () const |
|
void | SetRangeMass (G4double val) |
|
virtual G4bool | IsOKWithParentMass (G4double parentMass) |
|
void | SetPolarization (const G4ThreeVector &) |
|
const G4ThreeVector & | GetPolarization () const |
|
Definition at line 53 of file G4VDecayChannel.hh.
◆ G4VDecayChannel() [1/4]
G4VDecayChannel::G4VDecayChannel |
( |
const G4String & |
aName, |
|
|
G4int |
Verbose = 1 |
|
) |
| |
Definition at line 69 of file G4VDecayChannel.cc.
G4double * G4MT_daughters_mass
G4ParticleDefinition * G4MT_parent
G4ParticleDefinition ** G4MT_daughters
G4double G4MT_parent_mass
G4ParticleTable * particletable
#define G4MUTEX_INITIALIZER
G4ThreeVector parent_polarization
static G4ParticleTable * GetParticleTable()
G4double * G4MT_daughters_width
G4String ** daughters_name
◆ G4VDecayChannel() [2/4]
Definition at line 91 of file G4VDecayChannel.cc.
G4double * G4MT_daughters_mass
G4ParticleDefinition * G4MT_parent
G4ParticleDefinition ** G4MT_daughters
G4double G4MT_parent_mass
G4ParticleTable * particletable
#define G4MUTEX_INITIALIZER
G4ThreeVector parent_polarization
static G4ParticleTable * GetParticleTable()
G4double * G4MT_daughters_width
G4String ** daughters_name
◆ ~G4VDecayChannel()
G4VDecayChannel::~G4VDecayChannel |
( |
| ) |
|
|
virtual |
Definition at line 214 of file G4VDecayChannel.cc.
void ClearDaughtersName()
G4double * G4MT_daughters_mass
G4double * G4MT_daughters_width
#define G4MUTEXDESTROY(mutex)
◆ G4VDecayChannel() [3/4]
G4VDecayChannel::G4VDecayChannel |
( |
| ) |
|
|
protected |
Definition at line 49 of file G4VDecayChannel.cc.
G4double * G4MT_daughters_mass
G4ParticleDefinition * G4MT_parent
G4ParticleDefinition ** G4MT_daughters
G4double G4MT_parent_mass
G4ParticleTable * particletable
G4ThreeVector parent_polarization
static G4ParticleTable * GetParticleTable()
G4double * G4MT_daughters_width
G4String ** daughters_name
◆ G4VDecayChannel() [4/4]
Definition at line 133 of file G4VDecayChannel.cc.
G4double * G4MT_daughters_mass
G4ParticleDefinition * G4MT_parent
G4ParticleDefinition ** G4MT_daughters
#define G4MUTEXINIT(mutex)
G4double G4MT_parent_mass
G4ParticleTable * particletable
G4ThreeVector parent_polarization
static G4ParticleTable * GetParticleTable()
G4double * G4MT_daughters_width
G4String ** daughters_name
◆ CheckAndFillDaughters()
void G4VDecayChannel::CheckAndFillDaughters |
( |
| ) |
|
|
inlineprotected |
◆ CheckAndFillParent()
void G4VDecayChannel::CheckAndFillParent |
( |
| ) |
|
|
inlineprotected |
◆ ClearDaughtersName()
void G4VDecayChannel::ClearDaughtersName |
( |
| ) |
|
|
protected |
Definition at line 227 of file G4VDecayChannel.cc.
234 G4cout <<
"G4VDecayChannel::ClearDaughtersName " G4double * G4MT_daughters_mass
G4ParticleDefinition ** G4MT_daughters
G4GLOB_DLL std::ostream G4cout
G4double * G4MT_daughters_width
G4String ** daughters_name
◆ DecayIt()
Implemented in G4GeneralPhaseSpaceDecay, G4MuonRadiativeDecayChannelWithSpin, G4PionRadiativeDecayChannel, G4MuonDecayChannelWithSpin, G4PhaseSpaceDecayChannel, G4TauLeptonicDecayChannel, G4DalitzDecayChannel, G4MuonDecayChannel, G4NeutronBetaDecayChannel, G4KL3DecayChannel, G4ITDecay, G4BetaMinusDecay, G4BetaPlusDecay, G4NeutronDecay, G4ProtonDecay, G4AlphaDecay, and G4ECDecay.
◆ DumpInfo()
void G4VDecayChannel::DumpInfo |
( |
| ) |
|
Definition at line 547 of file G4VDecayChannel.cc.
555 G4cout <<
" not defined ";
G4GLOB_DLL std::ostream G4cout
G4String ** daughters_name
◆ DynamicalMass()
Definition at line 567 of file G4VDecayChannel.cc.
570 if (maxDev <=-1.*
rangeMass)
return massPDG;
574 const size_t MAX_LOOP=10000;
575 for (
size_t loop_counter=0; loop_counter <MAX_LOOP; ++loop_counter){
576 if ( y * (
width*
width*x*x + massPDG*massPDG*
width*
width) <= massPDG*massPDG*width*width )
break;
◆ FillDaughters()
void G4VDecayChannel::FillDaughters |
( |
| ) |
|
|
private |
Definition at line 330 of file G4VDecayChannel.cc.
353 G4double sumofdaughterwidthsq = 0.0;
358 G4cout <<
"G4VDecayChannel::FillDaughters " 360 <<
"numberOfDaughters is not defined yet";
366 "Can not fill daughters: numberOfDaughters is not defined yet");
381 G4cout <<
"G4VDecayChannel::FillDaughters " 383 << index <<
"-th daughter is not defined yet" <<
G4endl;
389 "Can not fill daughters: name of a daughter is not defined yet");
397 G4cout <<
"G4VDecayChannel::FillDaughters " 400 <<
" is not defined !!" <<
G4endl;
401 G4cout <<
" The BR of this decay mode is set to zero " <<
G4endl;
417 sumofdaughterwidthsq += d_width*d_width;
423 (sumofdaughtermass > parentmass +
rangeMass*widthMass) ){
427 G4cout <<
"G4VDecayChannel::FillDaughters " 429 <<
" Energy/Momentum conserevation breaks " <<
G4endl;
432 <<
" mass:" << parentmass/
GeV <<
"[GeV/c/c]" <<
G4endl;
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
void SetBR(G4double value)
G4double * G4MT_daughters_mass
G4ParticleDefinition * G4MT_parent
G4ParticleDefinition ** G4MT_daughters
const G4String & GetParticleType() const
G4ParticleTable * particletable
const G4String & GetParticleName() const
G4GLOB_DLL std::ostream G4cout
G4double GetPDGWidth() const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4double * G4MT_daughters_width
G4double GetPDGMass() const
G4int GetVerboseLevel() const
G4String ** daughters_name
void CheckAndFillParent()
◆ FillParent()
void G4VDecayChannel::FillParent |
( |
| ) |
|
|
private |
Definition at line 445 of file G4VDecayChannel.cc.
456 G4cout <<
"G4VDecayChannel::FillParent " 457 <<
": parent name is not defined !!" <<
G4endl;
463 "Can not fill parent: parent name is not defined yet");
472 G4cout <<
"G4VDecayChannel::FillParent " 478 "Can not fill parent: parent does not exist");
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
G4ParticleDefinition * G4MT_parent
G4double G4MT_parent_mass
G4ParticleTable * particletable
G4GLOB_DLL std::ostream G4cout
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4double GetPDGMass() const
◆ GetAngularMomentum()
G4int G4VDecayChannel::GetAngularMomentum |
( |
| ) |
|
Definition at line 489 of file G4VDecayChannel.cc.
503 const G4int MiniSpin = std::abs (D1iSpin - D2iSpin);
504 const G4int MaxiSpin = D1iSpin + D2iSpin;
505 const G4int lMax = (PiSpin+D1iSpin+D2iSpin)/2;
509 G4cout <<
"iSpin: " << PiSpin <<
" -> " << D1iSpin <<
" + " << D2iSpin <<
G4endl;
510 G4cout <<
"2*jmin, 2*jmax, lmax " << MiniSpin <<
" " << MaxiSpin <<
" " << lMax <<
G4endl;
513 for (
G4int j=MiniSpin; j<=MaxiSpin; j+=2){
514 lMin = std::abs(PiSpin-j)/2;
519 for (
G4int l=lMin; l<=lMax; l++) {
525 if (PParity == D1Parity*D2Parity) {
529 if (PParity == -1*D1Parity*D2Parity) {
538 "Sorry, can't handle 3 particle decays (up to now)");
541 G4Exception (
"G4VDecayChannel::GetAngularMomentum",
543 "Can't find angular momentum for this decay");
void CheckAndFillDaughters()
G4ParticleDefinition * G4MT_parent
G4ParticleDefinition ** G4MT_daughters
G4int GetPDGiSpin() const
G4GLOB_DLL std::ostream G4cout
G4int GetPDGiParity() const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
◆ GetBR()
G4double G4VDecayChannel::GetBR |
( |
| ) |
const |
|
inline |
◆ GetDaughter()
Definition at line 212 of file G4VDecayChannel.hh.
222 G4cout <<
"G4VDecayChannel::GetDaughter index out of range "<<anIndex<<
G4endl;
void CheckAndFillDaughters()
G4ParticleDefinition ** G4MT_daughters
G4GLOB_DLL std::ostream G4cout
◆ GetDaughterMass()
Definition at line 242 of file G4VDecayChannel.hh.
248 G4cout <<
"G4VDecayChannel::GetDaughterMass ";
G4double * G4MT_daughters_mass
G4GLOB_DLL std::ostream G4cout
◆ GetDaughterName()
const G4String & G4VDecayChannel::GetDaughterName |
( |
G4int |
anIndex | ) |
const |
|
inline |
Definition at line 228 of file G4VDecayChannel.hh.
234 G4cout <<
"G4VDecayChannel::GetDaughterName ";
const G4String & GetNoName() const
G4GLOB_DLL std::ostream G4cout
G4String ** daughters_name
◆ GetKinematicsName()
const G4String & G4VDecayChannel::GetKinematicsName |
( |
| ) |
const |
|
inline |
◆ GetNoName()
const G4String & G4VDecayChannel::GetNoName |
( |
| ) |
const |
|
private |
◆ GetNumberOfDaughters()
G4int G4VDecayChannel::GetNumberOfDaughters |
( |
| ) |
const |
|
inline |
◆ GetParent()
Definition at line 256 of file G4VDecayChannel.hh.
G4ParticleDefinition * G4MT_parent
void CheckAndFillParent()
◆ GetParentMass()
G4double G4VDecayChannel::GetParentMass |
( |
| ) |
const |
|
inline |
◆ GetParentName()
const G4String & G4VDecayChannel::GetParentName |
( |
| ) |
const |
|
inline |
◆ GetPolarization()
◆ GetRangeMass()
G4double G4VDecayChannel::GetRangeMass |
( |
| ) |
const |
|
inline |
◆ GetVerboseLevel()
G4int G4VDecayChannel::GetVerboseLevel |
( |
| ) |
const |
|
inline |
◆ IsOKWithParentMass()
Reimplemented in G4PhaseSpaceDecayChannel.
Definition at line 584 of file G4VDecayChannel.cc.
591 sumOfDaughterMassMin +=
594 return (parentMass > sumOfDaughterMassMin);
void CheckAndFillDaughters()
G4double * G4MT_daughters_mass
G4double * G4MT_daughters_width
void CheckAndFillParent()
◆ operator!=()
◆ operator<()
◆ operator=()
Definition at line 172 of file G4VDecayChannel.cc.
174 if (
this != &right) {
void ClearDaughtersName()
G4double * G4MT_daughters_mass
G4ParticleDefinition * G4MT_parent
G4ParticleDefinition ** G4MT_daughters
#define G4MUTEXINIT(mutex)
G4double G4MT_parent_mass
G4ParticleTable * particletable
G4ThreeVector parent_polarization
static G4ParticleTable * GetParticleTable()
G4double * G4MT_daughters_width
G4String ** daughters_name
◆ operator==()
◆ SetBR()
void G4VDecayChannel::SetBR |
( |
G4double |
value | ) |
|
|
inline |
◆ SetDaughter() [1/2]
Definition at line 325 of file G4VDecayChannel.cc.
327 if (parent_type != 0)
SetDaughter(anIndex, parent_type->GetParticleName());
void SetDaughter(G4int anIndex, const G4ParticleDefinition *particle_type)
◆ SetDaughter() [2/2]
void G4VDecayChannel::SetDaughter |
( |
G4int |
anIndex, |
|
|
const G4String & |
particle_name |
|
) |
| |
Definition at line 269 of file G4VDecayChannel.cc.
276 G4cout <<
"G4VDecayChannel::SetDaughter: " 277 <<
"Number of daughters is not defined" <<
G4endl;
295 "Trying to add a daughter without specifying number of secondaries, useSetNumberOfDaughters first");
300 "Trying to modify a daughter of a decay channel, but decay channel already has daughters.");
309 G4cout <<
"G4VDecayChannel::SetDaughter" 310 <<
"index out of range " << anIndex <<
G4endl;
318 G4cout <<
"G4VDecayChannel::SetDaughter[" << anIndex <<
"] :";
G4ParticleDefinition ** G4MT_daughters
G4GLOB_DLL std::ostream G4cout
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4String ** daughters_name
◆ SetNumberOfDaughters()
void G4VDecayChannel::SetNumberOfDaughters |
( |
G4int |
value | ) |
|
◆ SetParent() [1/2]
Definition at line 484 of file G4VDecayChannel.cc.
486 if (parent_type != 0)
SetParent(parent_type->GetParticleName());
void SetParent(const G4ParticleDefinition *particle_type)
◆ SetParent() [2/2]
void G4VDecayChannel::SetParent |
( |
const G4String & |
particle_name | ) |
|
|
inline |
◆ SetPolarization()
void G4VDecayChannel::SetPolarization |
( |
const G4ThreeVector & |
polar | ) |
|
|
inline |
◆ SetRangeMass()
void G4VDecayChannel::SetRangeMass |
( |
G4double |
val | ) |
|
|
inline |
◆ SetVerboseLevel()
void G4VDecayChannel::SetVerboseLevel |
( |
G4int |
value | ) |
|
|
inline |
◆ daughters_name
G4String** G4VDecayChannel::daughters_name |
|
protected |
◆ daughtersMutex
G4Mutex G4VDecayChannel::daughtersMutex |
|
protected |
◆ G4MT_daughters
◆ G4MT_daughters_mass
G4double* G4VDecayChannel::G4MT_daughters_mass |
|
protected |
◆ G4MT_daughters_width
G4double* G4VDecayChannel::G4MT_daughters_width |
|
protected |
◆ G4MT_parent
◆ G4MT_parent_mass
G4double G4VDecayChannel::G4MT_parent_mass |
|
protected |
◆ kinematics_name
G4String G4VDecayChannel::kinematics_name |
|
protected |
◆ noName
const G4String G4VDecayChannel::noName = " " |
|
staticprotected |
◆ numberOfDaughters
G4int G4VDecayChannel::numberOfDaughters |
|
protected |
◆ parent_name
◆ parent_polarization
◆ parentMutex
G4Mutex G4VDecayChannel::parentMutex |
|
protected |
◆ particletable
◆ rangeMass
◆ rbranch
◆ verboseLevel
G4int G4VDecayChannel::verboseLevel |
|
protected |
The documentation for this class was generated from the following files: