55#define G4MT_pmanager ((subInstanceManager.offset()[g4particleDefinitionInstanceID]).theProcessManager)
56#define G4MT_tmanager ((subInstanceManager.offset()[g4particleDefinitionInstanceID]).theTrackingManager)
82 : theParticleName(aName),
87 thePDGSpin(iSpin*0.5),
88 thePDGiParity(iParity),
89 thePDGiConjugation(iConjugation),
90 thePDGiGParity(gParity),
91 thePDGiIsospin(iIsospin),
92 thePDGiIsospin3(iIsospin3),
93 thePDGIsospin(iIsospin*0.5),
94 thePDGIsospin3(iIsospin3*0.5),
95 thePDGMagneticMoment(magneticMoment),
96 theLeptonNumber(lepton),
98 theParticleType(pType),
99 theParticleSubType(subType),
102 fShortLivedFlag(shortlived),
103 thePDGStable(stable),
104 thePDGLifeTime(lifetime),
105 theDecayTable(decaytable)
107 static const G4String nucleus(
"nucleus");
108 static const G4String muAtom(
"MuonicAtom");
128 G4cout <<
"Particle " << aName
129 <<
" has a strange PDGEncoding " <<
G4endl;
132 G4Exception(
"G4ParticleDefintion::G4ParticleDefintion",
134 "Strange PDGEncoding ");
147 G4cout <<
"G4ParticleDefinition (other than ions and shortlived)"
148 <<
" should be created in Pre_Init state - "
152 G4Exception(
"G4ParticleDefintion::G4ParticleDefinition()",
154 "G4ParticleDefinition should be created in PreInit state");
177 G4Exception(
"G4ParticleDefinition::G4ParticleDefinition()",
179 "Illegal call of default constructor for G4ParticleDefinition!");
191 G4String msg =
"Request of deletion for ";
193 msg +=
" has No effects because readyToUse is true.";
194 G4Exception(
"G4ParticleDefinition::~G4ParticleDefinition()",
284 G4Exception(
"G4ParticleDefintion::G4ParticleDefintion",
286 "Inconsistent charge against PDG code ");
290 G4cout <<
"G4ParticleDefinition::FillQuarkContents : "
300 G4Exception(
"G4ParticleDefintion::G4ParticleDefintion",
302 "Inconsistent spin against PDG code ");
306 G4cout <<
"G4ParticleDefinition::FillQuarkContents : "
337 G4cout <<
" MagneticMoment [MeV/T] : "
341 G4cout <<
", " << theQuarkContent[1];
372 {
G4cout <<
" Stable : No data found -- unknown" <<
G4endl; }
378 <<
"\n Decay table should be consulted to G4RadioactiveDecayProcess."
418 <<
"becomes obsolete. Production threshold is applied only for "
419 <<
"gamma, e- ,e+ and proton." <<
G4endl;
426 G4Exception(
"G4ParticleDefinition::G4ParticleDefinition",
428 "CalculateAnomaly() method will be removed in future releases");
459 ed <<
"ParticleDefinitionID should not be set for the particles <"
461 G4Exception(
"G4ParticleDefintion::SetParticleDefinitionID",
476 <<
" without proper initialization of TLS pointer vector.\n"
477 <<
"This operation is thread-unsafe.";
478 G4Exception(
"G4ParticleDefintion::SetProcessManager",
495 <<
" without proper initialization of TLS pointer vector.\n"
496 <<
"This operation is thread-unsafe.";
497 G4Exception(
"G4ParticleDefintion::SetTrackingManager",
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
std::ostringstream G4ExceptionDescription
static constexpr double tesla
static constexpr double eplus
static constexpr double GeV
static constexpr double MeV
G4GLOB_DLL std::ostream G4cout
static G4bool IsIon(const G4ParticleDefinition *)
static G4bool IsAntiIon(const G4ParticleDefinition *)
G4int CheckPDGCode(G4int code, const G4String &type)
G4int GetQuarkContent(G4int flavor) const
G4bool CheckCharge(G4double charge) const
G4int GetAntiQuarkContent(G4int flavor) const
void SetVerboseLevel(G4int verbose)
G4int CreateSubInstance()
G4String theParticleSubType
G4DecayTable * theDecayTable
G4ProcessManager * GetProcessManager() const
G4VTrackingManager * GetTrackingManager() const
G4ProcessManager * theProcessManagerShadow
G4int GetAtomicNumber() const
static const G4PDefManager & GetSubInstanceManager()
G4bool IsGeneralIon() const
G4int GetAntiPDGEncoding() const
G4int theAntiQuarkContent[NumberOfQuarkFlavor]
G4int GetVerboseLevel() const
void SetParticleDefinitionID(G4int id=-1)
void SetTrackingManager(G4VTrackingManager *aTrackingManager)
G4int GetAtomicMass() const
G4int g4particleDefinitionInstanceID
virtual ~G4ParticleDefinition()
G4double GetPDGCharge() const
G4ParticleTable * theParticleTable
G4bool operator==(const G4ParticleDefinition &right) const
void SetApplyCutsFlag(G4bool)
G4int theQuarkContent[NumberOfQuarkFlavor]
void SetAtomicMass(G4int)
G4double GetIonLifeTime() const
G4int GetBaryonNumber() const
G4double thePDGMagneticMoment
G4bool operator!=(const G4ParticleDefinition &right) const
G4double CalculateAnomaly() const
static G4PART_DLL G4PDefManager subInstanceManager
G4int FillQuarkContents()
const G4String & GetParticleName() const
void SetProcessManager(G4ProcessManager *aProcessManager)
void SetAtomicNumber(G4int)
G4IonTable * GetIonTable() const
G4int GetVerboseLevel() const
static G4ParticleTable * GetParticleTable()
G4ParticleDefinition * Insert(G4ParticleDefinition *particle)
const G4ApplicationState & GetCurrentState() const
static G4StateManager * GetStateManager()
static constexpr double eplus
static constexpr double hbar_Planck
static constexpr double c_squared