Geant4-11
Public Types | Public Member Functions | Static Public Member Functions | Data Fields | Static Public Attributes | Protected Member Functions | Private Member Functions | Private Attributes
G4ParticleTable Class Reference

#include <G4ParticleTable.hh>

Public Types

using G4PTblDicIterator = G4ParticleTableIterator< G4String, G4ParticleDefinition * >
 
using G4PTblDictionary = G4ParticleTableIterator< G4String, G4ParticleDefinition * >::Map
 
using G4PTblEncodingDicIterator = G4ParticleTableIterator< G4int, G4ParticleDefinition * >
 
using G4PTblEncodingDictionary = G4ParticleTableIterator< G4int, G4ParticleDefinition * >::Map
 

Public Member Functions

G4bool contains (const G4ParticleDefinition *particle) const
 
G4bool contains (const G4String &particle_name) const
 
G4UImessenger * CreateMessenger ()
 
void DeleteAllParticles ()
 
void DestroyWorkerG4ParticleTable ()
 
void DumpTable (const G4String &particle_name="ALL")
 
G4int entries () const
 
G4ParticleDefinition * FindAntiParticle (const G4ParticleDefinition *p)
 
G4ParticleDefinition * FindAntiParticle (const G4String &p_name)
 
G4ParticleDefinition * FindAntiParticle (G4int PDGEncoding)
 
G4ParticleDefinition * FindParticle (const G4ParticleDefinition *particle)
 
G4ParticleDefinition * FindParticle (const G4String &particle_name)
 
G4ParticleDefinition * FindParticle (G4int PDGEncoding)
 
 G4ParticleTable (const G4ParticleTable &)=delete
 
G4ParticleDefinition * GetGenericIon () const
 
G4ParticleDefinition * GetGenericMuonicAtom () const
 
G4IonTable * GetIonTable () const
 
G4PTblDicIterator * GetIterator () const
 
G4ParticleDefinition * GetParticle (G4int index) const
 
const G4String & GetParticleName (G4int index) const
 
G4bool GetReadiness () const
 
const G4ParticleDefinition * GetSelectedParticle () const
 
G4int GetVerboseLevel () const
 
G4ParticleDefinition * Insert (G4ParticleDefinition *particle)
 
G4ParticleTable & operator= (const G4ParticleTable &)=delete
 
G4ParticleDefinition * Remove (G4ParticleDefinition *particle)
 
void RemoveAllParticles ()
 
void SelectParticle (const G4String &name)
 
void SetGenericIon (G4ParticleDefinition *)
 
void SetGenericMuonicAtom (G4ParticleDefinition *)
 
void SetReadiness (G4bool val=true)
 
void SetVerboseLevel (G4int value)
 
G4int size () const
 
void WorkerG4ParticleTable ()
 
virtual ~G4ParticleTable ()
 

Static Public Member Functions

static G4ParticleTable * GetParticleTable ()
 

Data Fields

G4IonTable * fIonTable = nullptr
 
G4ParticleMessenger * fParticleMessenger = nullptr
 

Static Public Attributes

static G4ThreadLocal G4PTblDictionary * fDictionary = nullptr
 
static G4PTblDictionary * fDictionaryShadow = nullptr
 
static G4ThreadLocal G4PTblEncodingDictionary * fEncodingDictionary = nullptr
 
static G4PTblEncodingDictionary * fEncodingDictionaryShadow = nullptr
 
static G4ParticleTable * fgParticleTable = nullptr
 
static G4ThreadLocal G4PTblDicIterator * fIterator = nullptr
 
static G4PTblDicIterator * fIteratorShadow = nullptr
 

Protected Member Functions

const G4PTblDictionary * GetDictionary () const
 
const G4PTblEncodingDictionary * GetEncodingDictionary () const
 
const G4String & GetKey (const G4ParticleDefinition *particle) const
 

Private Member Functions

void CheckReadiness () const
 
 G4ParticleTable ()
 

Private Attributes

G4ParticleDefinition * genericIon = nullptr
 
G4ParticleDefinition * genericMuonicAtom = nullptr
 
const G4String noName = " "
 
G4bool readyToUse = false
 
G4String selectedName = "undefined"
 
const G4ParticleDefinition * selectedParticle = nullptr
 
G4int verboseLevel = 1
 

Detailed Description

Definition at line 59 of file G4ParticleTable.hh.

Member Typedef Documentation

◆ G4PTblDicIterator

Definition at line 65 of file G4ParticleTable.hh.

◆ G4PTblDictionary

Definition at line 63 of file G4ParticleTable.hh.

◆ G4PTblEncodingDicIterator

Definition at line 69 of file G4ParticleTable.hh.

◆ G4PTblEncodingDictionary

Definition at line 67 of file G4ParticleTable.hh.

Constructor & Destructor Documentation

◆ G4ParticleTable() [1/2]

G4ParticleTable::G4ParticleTable ( const G4ParticleTable &  )
delete

◆ ~G4ParticleTable()

G4ParticleTable::~G4ParticleTable ( )
virtual

Definition at line 191 of file G4ParticleTable.cc.

192{
193 readyToUse = false;
194
195 // remove all items from G4ParticleTable
197
198 // delete Ion Table
199 if (fIonTable != nullptr) delete fIonTable;
200 fIonTable = nullptr;
201
202 // delete dictionary for encoding
203 if (fEncodingDictionary != nullptr)
204 {
205 fEncodingDictionary->clear();
206 delete fEncodingDictionary;
207 fEncodingDictionary = nullptr;
208 }
209
210 if( fDictionary != nullptr)
211 {
212 if (fIterator != nullptr ) delete fIterator;
213 fIterator = nullptr;
214
215 fDictionary->clear();
216 delete fDictionary;
217 fDictionary =nullptr;
218 }
219
220 if ( fParticleMessenger != nullptr) delete fParticleMessenger;
221 fParticleMessenger = nullptr;
222
223 fgParticleTable = nullptr;
224
225 G4ParticleDefinition::Clean(); // Delete sub-instance static data
226}
static G4ThreadLocal G4PTblEncodingDictionary * fEncodingDictionary
static G4ParticleTable * fgParticleTable
G4IonTable * fIonTable
G4ParticleMessenger * fParticleMessenger
static G4ThreadLocal G4PTblDicIterator * fIterator
static G4ThreadLocal G4PTblDictionary * fDictionary

References G4ParticleDefinition::Clean(), fDictionary, fEncodingDictionary, fgParticleTable, fIonTable, fIterator, fParticleMessenger, readyToUse, and RemoveAllParticles().

◆ G4ParticleTable() [2/2]

G4ParticleTable::G4ParticleTable ( )
private

Definition at line 103 of file G4ParticleTable.cc.

104{
106
107 // Set up the shadow pointer used by worker threads
108 //
109 if (fDictionaryShadow == nullptr)
110 {
112 }
113
115
116 // Set up the shadow pointer used by worker threads
117 //
118 if (fIteratorShadow == nullptr)
119 {
121 }
122
124 // Set up the shadow pointer used by worker threads
125 //
126 if (fEncodingDictionaryShadow == nullptr)
127 {
129 }
130
131 // Ion Table
132 //
133 fIonTable = new G4IonTable();
134 fParticleMessenger = nullptr;
135}
static G4PTblEncodingDictionary * fEncodingDictionaryShadow
G4ParticleTableIterator< G4int, G4ParticleDefinition * >::Map G4PTblEncodingDictionary
static G4PTblDictionary * fDictionaryShadow
static G4PTblDicIterator * fIteratorShadow
G4ParticleTableIterator< G4String, G4ParticleDefinition * > G4PTblDicIterator
G4ParticleTableIterator< G4String, G4ParticleDefinition * >::Map G4PTblDictionary

References fDictionary, fDictionaryShadow, fEncodingDictionary, fEncodingDictionaryShadow, fIonTable, fIterator, fIteratorShadow, and fParticleMessenger.

Member Function Documentation

◆ CheckReadiness()

void G4ParticleTable::CheckReadiness ( ) const
private

Definition at line 679 of file G4ParticleTable.cc.

680{
681 if(!readyToUse)
682 {
683 G4String msg;
684 msg = "Illegal use of G4ParticleTable :\n";
685 msg += "Access to G4ParticleTable for finding a particle or equivalent\n";
686 msg += "operation occurs before G4VUserPhysicsList is instantiated and\n";
687 msg += "assigned to G4RunManager. Such an access is prohibited since\n";
688 msg += "Geant4 version 8.0. To fix this problem, please make sure that\n";
689 msg += "your main() instantiates G4VUserPhysicsList and set it to\n";
690 msg += "G4RunManager before instantiating other user classes such as\n";
691 msg += "G4VUserPrimaryParticleGeneratorAction.";
692 G4Exception("G4ParticleTable::CheckReadiness()",
693 "PART002", FatalException, msg);
694 }
695}
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35

References FatalException, G4Exception(), and readyToUse.

Referenced by DumpTable(), FindParticle(), and GetParticle().

◆ contains() [1/2]

G4bool G4ParticleTable::contains ( const G4ParticleDefinition *  particle) const
inline

◆ contains() [2/2]

G4bool G4ParticleTable::contains ( const G4String &  particle_name) const

Definition at line 723 of file G4ParticleTable.cc.

724{
725 G4PTblDictionary::iterator it = fDictionaryShadow->find(particle_name);
726 return (it != fDictionaryShadow->cend());
727}

References fDictionaryShadow.

◆ CreateMessenger()

G4UImessenger * G4ParticleTable::CreateMessenger ( )

Definition at line 254 of file G4ParticleTable.cc.

255{
256 if (fParticleMessenger == nullptr)
257 {
258 // UI messenger
260 }
261 return fParticleMessenger;
262}

References fParticleMessenger.

Referenced by G4RunManager::G4RunManager().

◆ DeleteAllParticles()

void G4ParticleTable::DeleteAllParticles ( )

Definition at line 265 of file G4ParticleTable.cc.

266{
267 //set readyToUse false
268 readyToUse = false;
269
270#ifdef G4VERBOSE
271 if (verboseLevel>1)
272 {
273 G4cout << "G4ParticleTable::DeleteAllParticles() " << G4endl;
274 }
275#endif
276
277 // delete all particles
279 piter->reset(false);
280 while( (*piter)() ) // Loop checking, 09.08.2015, K.Kurashige
281 {
282#ifdef G4VERBOSE
283 if (verboseLevel>2)
284 {
285 G4cout << "Delete " << (piter->value())->GetParticleName()
286 << " " << (piter->value()) << G4endl;
287 }
288#endif
289 delete (piter->value());
290 }
292}
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
void reset(G4bool ifSkipIon=true)
const G4String & GetParticleName(G4int index) const

References fIterator, G4cout, G4endl, GetParticleName(), readyToUse, RemoveAllParticles(), G4ParticleTableIterator< K, V >::reset(), G4ParticleTableIterator< K, V >::value(), and verboseLevel.

Referenced by G4VUserPhysicsList::~G4VUserPhysicsList().

◆ DestroyWorkerG4ParticleTable()

void G4ParticleTable::DestroyWorkerG4ParticleTable ( )

Definition at line 229 of file G4ParticleTable.cc.

230{
231 // delete Ion Table in worker thread
233
234 // delete dictionary for encoding
235 if (fEncodingDictionary != nullptr)
236 {
237 fEncodingDictionary->clear();
238 delete fEncodingDictionary;
239 fEncodingDictionary = nullptr;
240 }
241
242 if( fDictionary != nullptr)
243 {
244 if (fIterator != nullptr ) delete fIterator;
245 fIterator = nullptr;
246
247 fDictionary->clear();
248 delete fDictionary;
249 fDictionary = nullptr;
250 }
251}
void DestroyWorkerG4IonTable()
Definition: G4IonTable.cc:214

References G4IonTable::DestroyWorkerG4IonTable(), fDictionary, fEncodingDictionary, fIonTable, and fIterator.

Referenced by G4WorkerRunManagerKernel::~G4WorkerRunManagerKernel(), and G4WorkerTaskRunManagerKernel::~G4WorkerTaskRunManagerKernel().

◆ DumpTable()

void G4ParticleTable::DumpTable ( const G4String &  particle_name = "ALL")

Definition at line 643 of file G4ParticleTable.cc.

644{
646 if (( particle_name == "ALL" ) || (particle_name == "all"))
647 {
648 // dump all particles
650 piter -> reset();
651 while( (*piter)() ) // Loop checking, 09.08.2015, K.Kurashige
652 {
653 (piter->value())->DumpTable();
654 }
655 }
656 else
657 {
658 // dump only particle with name of particle_name
659 G4ParticleDefinition *ptr = FindParticle(particle_name);
660 if ( ptr != nullptr)
661 {
662 ptr->DumpTable();
663 }
664 else
665 {
666#ifdef G4VERBOSE
667 if (verboseLevel>1)
668 {
669 G4cout << " G4ParticleTable::DumpTable : "
670 << particle_name << " does not exist in ParticleTable "
671 << G4endl;
672 }
673#endif
674 }
675 }
676}
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
void CheckReadiness() const
void DumpTable(const G4String &particle_name="ALL")

References CheckReadiness(), G4ParticleDefinition::DumpTable(), DumpTable(), FindParticle(), fIterator, G4cout, G4endl, G4ParticleTableIterator< K, V >::value(), and verboseLevel.

Referenced by DumpTable(), export_G4ParticleTable(), Insert(), G4GeneralParticleSourceMessenger::SetNewValue(), G4ParticleGunMessenger::SetNewValue(), and G4RunManagerKernel::SetPhysics().

◆ entries()

G4int G4ParticleTable::entries ( ) const

◆ FindAntiParticle() [1/3]

G4ParticleDefinition * G4ParticleTable::FindAntiParticle ( const G4ParticleDefinition *  p)
inline

◆ FindAntiParticle() [2/3]

G4ParticleDefinition * G4ParticleTable::FindAntiParticle ( const G4String &  p_name)
inline

◆ FindAntiParticle() [3/3]

G4ParticleDefinition * G4ParticleTable::FindAntiParticle ( G4int  PDGEncoding)
inline

◆ FindParticle() [1/3]

G4ParticleDefinition * G4ParticleTable::FindParticle ( const G4ParticleDefinition *  particle)

Definition at line 578 of file G4ParticleTable.cc.

579{
581 G4String key = GetKey(particle);
582 return FindParticle(key);
583}
const G4String & GetKey(const G4ParticleDefinition *particle) const

References CheckReadiness(), FindParticle(), and GetKey().

◆ FindParticle() [2/3]

G4ParticleDefinition * G4ParticleTable::FindParticle ( const G4String &  particle_name)

Definition at line 524 of file G4ParticleTable.cc.

525{
526 G4PTblDictionary::iterator it = fDictionary->find(particle_name);
527 if (it != fDictionary->end())
528 {
529 return (*it).second;
530 }
531 else
532 {
533#ifdef G4MULTITHREADED
534 G4ParticleDefinition* ptcl = nullptr;
536 {
537 G4MUTEXLOCK(&G4ParticleTable::particleTableMutex());
538 G4PTblDictionary::iterator its = fDictionaryShadow->find(particle_name);
539 if(its != fDictionaryShadow->end())
540 {
541 fDictionary->insert(*its);
542 ptcl = (*its).second;
543 G4int code = ptcl->GetPDGEncoding();
544 if(code!=0) fEncodingDictionary->insert(std::pair<G4int,
545 G4ParticleDefinition*>(code,ptcl) );
546 }
547 G4MUTEXUNLOCK(&G4ParticleTable::particleTableMutex());
548 }
549 return ptcl;
550#else
551 return nullptr;
552#endif
553 }
554}
#define G4MUTEXLOCK(mutex)
Definition: G4Threading.hh:251
#define G4MUTEXUNLOCK(mutex)
Definition: G4Threading.hh:254
G4bool IsWorkerThread()
Definition: G4Threading.cc:123
Definition: inftrees.h:24

References fDictionary, fDictionaryShadow, fEncodingDictionary, G4MUTEXLOCK, G4MUTEXUNLOCK, G4ParticleDefinition::GetPDGEncoding(), and G4Threading::IsWorkerThread().

◆ FindParticle() [3/3]

G4ParticleDefinition * G4ParticleTable::FindParticle ( G4int  PDGEncoding)

Definition at line 586 of file G4ParticleTable.cc.

587{
589 // check aPDGEncoding is valid
590 if (aPDGEncoding == 0)
591 {
592#ifdef G4VERBOSE
593 if (verboseLevel>1)
594 {
595 G4cout << "PDGEncoding [" << aPDGEncoding << "] is not valid "
596 << G4endl;
597 }
598#endif
599 return nullptr;
600 }
601
603 G4ParticleDefinition* particle = nullptr;
604
605 if (pedic)
606 {
607 G4PTblEncodingDictionary::iterator it = pedic->find(aPDGEncoding );
608 if (it != pedic->end())
609 {
610 particle = (*it).second;
611 }
612 }
613
614#ifdef G4MULTITHREADED
615 if(particle == nullptr && G4Threading::IsWorkerThread())
616 {
617 G4MUTEXLOCK(&G4ParticleTable::particleTableMutex());
618 G4PTblEncodingDictionary::iterator its
619 = fEncodingDictionaryShadow->find(aPDGEncoding);
620 if(its!=fEncodingDictionaryShadow->end())
621 {
622 particle = (*its).second;
623 fEncodingDictionary->insert(*its);
624 G4String key = GetKey(particle);
625 fDictionary->insert( std::pair<G4String,
626 G4ParticleDefinition*>(key,particle) );
627 }
628 G4MUTEXUNLOCK(&G4ParticleTable::particleTableMutex());
629 }
630#endif
631
632#ifdef G4VERBOSE
633 if ((particle == nullptr) && (verboseLevel>1) )
634 {
635 G4cout << "CODE:" << aPDGEncoding << " does not exist in ParticleTable "
636 << G4endl;
637 }
638#endif
639 return particle;
640}

References CheckReadiness(), fDictionary, fEncodingDictionary, fEncodingDictionaryShadow, G4cout, G4endl, G4MUTEXLOCK, G4MUTEXUNLOCK, GetKey(), G4Threading::IsWorkerThread(), and verboseLevel.

Referenced by G4EmModelActivator::ActivateEmOptions(), G4EmModelActivator::ActivatePAI(), G4SDParticleFilter::add(), G4ChannelingOptrMultiParticleChangeCrossSection::AddParticle(), G4ITTransportation::AlongStepDoIt(), G4ANuElNucleusCcModel::ApplyYourself(), G4ANuElNucleusNcModel::ApplyYourself(), G4ANuMuNucleusCcModel::ApplyYourself(), G4ANuMuNucleusNcModel::ApplyYourself(), G4NuElNucleusCcModel::ApplyYourself(), G4NuElNucleusNcModel::ApplyYourself(), G4NuMuNucleusCcModel::ApplyYourself(), G4NuMuNucleusNcModel::ApplyYourself(), G4HadronBuilder::Barion(), G4ErrorTrajState::BuildCharge(), G4HadronicBuilder::BuildDecayTableForBCHadrons(), G4HadronicBuilder::BuildElastic(), G4HadronicBuilder::BuildFTFP_BERT(), G4HadronicBuilder::BuildFTFQGSP_BERT(), G4VUserPhysicsList::BuildPhysicsTable(), G4HadronicBuilder::BuildQGSP_FTFP_BERT(), G4PrimaryTransformer::CheckUnknown(), G4NeutrinoNucleusModel::ClusterDecay(), G4NeutrinoNucleusModel::CoherentPion(), G4EmBuilder::ConstructBasicEmPhysics(), G4MuonicAtomHelper::ConstructMuonicAtom(), G4HadronDElasticPhysics::ConstructProcess(), G4HadronElasticPhysics::ConstructProcess(), G4HadronHElasticPhysics::ConstructProcess(), G4FTFAnnihilation::Create1QuarkAntiQuarkString(), G4FTFAnnihilation::Create2QuarkAntiQuarkStrings(), G4FTFAnnihilation::Create3QuarkAntiQuarkStrings(), G4PionDecayMakeSpin::DaughterPolarization(), G4AdjointAlpha::Definition(), G4AdjointDeuteron::Definition(), G4AdjointElectron::Definition(), G4AdjointElectronFI::Definition(), G4AdjointGamma::Definition(), G4AdjointGenericIon::Definition(), G4AdjointHe3::Definition(), G4AdjointPositron::Definition(), G4AdjointProton::Definition(), G4AdjointTriton::Definition(), G4ChargedGeantino::Definition(), G4Gamma::Definition(), G4Geantino::Definition(), G4OpticalPhoton::Definition(), G4PhononLong::Definition(), G4PhononTransFast::Definition(), G4PhononTransSlow::Definition(), G4UnknownParticle::Definition(), G4AntiLambda::Definition(), G4AntiLambdab::Definition(), G4AntiLambdacPlus::Definition(), G4AntiNeutron::Definition(), G4AntiOmegabMinus::Definition(), G4AntiOmegacZero::Definition(), G4AntiOmegaMinus::Definition(), G4AntiProton::Definition(), G4AntiSigmabMinus::Definition(), G4AntiSigmabPlus::Definition(), G4AntiSigmabZero::Definition(), G4AntiSigmacPlus::Definition(), G4AntiSigmacPlusPlus::Definition(), G4AntiSigmacZero::Definition(), G4AntiSigmaMinus::Definition(), G4AntiSigmaPlus::Definition(), G4AntiSigmaZero::Definition(), G4AntiXibMinus::Definition(), G4AntiXibZero::Definition(), G4AntiXicPlus::Definition(), G4AntiXicZero::Definition(), G4AntiXiMinus::Definition(), G4AntiXiZero::Definition(), G4Lambda::Definition(), G4Lambdab::Definition(), G4LambdacPlus::Definition(), G4Neutron::Definition(), G4OmegabMinus::Definition(), G4OmegacZero::Definition(), G4OmegaMinus::Definition(), G4Proton::Definition(), G4SigmabMinus::Definition(), G4SigmabPlus::Definition(), G4SigmabZero::Definition(), G4SigmacPlus::Definition(), G4SigmacPlusPlus::Definition(), G4SigmacZero::Definition(), G4SigmaMinus::Definition(), G4SigmaPlus::Definition(), G4SigmaZero::Definition(), G4XibMinus::Definition(), G4XibZero::Definition(), G4XicPlus::Definition(), G4XicZero::Definition(), G4XiMinus::Definition(), G4XiZero::Definition(), G4Alpha::Definition(), G4AntiAlpha::Definition(), G4AntiDeuteron::Definition(), G4AntiDoubleHyperDoubleNeutron::Definition(), G4AntiDoubleHyperH4::Definition(), G4AntiHe3::Definition(), G4AntiHyperAlpha::Definition(), G4AntiHyperH4::Definition(), G4AntiHyperHe5::Definition(), G4AntiHyperTriton::Definition(), G4AntiTriton::Definition(), G4Deuteron::Definition(), G4DoubleHyperDoubleNeutron::Definition(), G4DoubleHyperH4::Definition(), G4GenericIon::Definition(), G4GenericMuonicAtom::Definition(), G4He3::Definition(), G4HyperAlpha::Definition(), G4HyperH4::Definition(), G4HyperHe5::Definition(), G4HyperTriton::Definition(), G4Triton::Definition(), G4AntiBMesonZero::Definition(), G4AntiBsMesonZero::Definition(), G4AntiDMesonZero::Definition(), G4AntiKaonZero::Definition(), G4BcMesonMinus::Definition(), G4BcMesonPlus::Definition(), G4BMesonMinus::Definition(), G4BMesonPlus::Definition(), G4BMesonZero::Definition(), G4BsMesonZero::Definition(), G4DMesonMinus::Definition(), G4DMesonPlus::Definition(), G4DMesonZero::Definition(), G4DsMesonMinus::Definition(), G4DsMesonPlus::Definition(), G4Eta::Definition(), G4Etac::Definition(), G4EtaPrime::Definition(), G4JPsi::Definition(), G4KaonMinus::Definition(), G4KaonPlus::Definition(), G4KaonZero::Definition(), G4KaonZeroLong::Definition(), G4KaonZeroShort::Definition(), G4PionMinus::Definition(), G4PionPlus::Definition(), G4PionZero::Definition(), G4Upsilon::Definition(), G4AntiNeutrinoE::Definition(), G4AntiNeutrinoMu::Definition(), G4AntiNeutrinoTau::Definition(), G4Electron::Definition(), G4MuonMinus::Definition(), G4MuonPlus::Definition(), G4NeutrinoE::Definition(), G4NeutrinoMu::Definition(), G4NeutrinoTau::Definition(), G4Positron::Definition(), G4TauMinus::Definition(), G4TauPlus::Definition(), G4DamagedDeoxyribose::Definition(), G4DamagedAdenine::Definition(), G4DamagedGuanine::Definition(), G4DamagedThymine::Definition(), G4DamagedCytosine::Definition(), G4Deoxyribose::Definition(), G4Phosphate::Definition(), G4Adenine::Definition(), G4Guanine::Definition(), G4Thymine::Definition(), G4Cytosine::Definition(), G4ModifiedHistone::Definition(), G4Histone::Definition(), G4Electron_aq::Definition(), G4FakeMolecule::Definition(), G4H2::Definition(), G4H2O::Definition(), G4H2O2::Definition(), G4H3O::Definition(), G4HO2::Definition(), G4Hydrogen::Definition(), G4O2::Definition(), G4O3::Definition(), G4OH::Definition(), G4Oxygen::Definition(), G4LundStringFragmentation::Diquark_AntiDiquark_aboveThreshold_lastSplitting(), DumpTable(), G4QuarkExchange::ExciteParticipants(), G4DiffractiveExcitation::ExciteParticipants_doChargeExchange(), G4VDecayChannel::FillDaughters(), G4VDecayChannel::FillParent(), G4NeutrinoNucleusModel::FinalBarion(), G4NeutrinoNucleusModel::FinalMeson(), FindParticle(), G4HadProcesses::FindParticle(), G4EmCalculator::FindParticle(), G4EnergyLossForExtrapolator::FindParticle(), G4VLongitudinalStringDecay::FindParticle(), G4BOptrForceCollision::G4BOptrForceCollision(), G4ChannelingOptrChangeCrossSection::G4ChannelingOptrChangeCrossSection(), G4CollisionMesonBaryonToResonance::G4CollisionMesonBaryonToResonance(), G4HadronicProcessStore::G4HadronicProcessStore(), G4Parton::G4Parton(), G4PrimaryParticle::G4PrimaryParticle(), G4ResonanceNames::G4ResonanceNames(), G4RToEConvForElectron::G4RToEConvForElectron(), G4RToEConvForGamma::G4RToEConvForGamma(), G4RToEConvForPositron::G4RToEConvForPositron(), G4RToEConvForProton::G4RToEConvForProton(), G4SDParticleFilter::G4SDParticleFilter(), G4FTFModel::GenerateDeltaIsobar(), G4QGSParticipants::GenerateDeltaIsobar(), G4CRCoalescence::GenerateDeuterons(), G4HtmlPPReporter::GenerateIndex(), G4VUserPhysicsList::GetApplyCuts(), G4PrimaryTransformer::GetDefinition(), G4NucleiProperties::GetNuclearMass(), G4HyperNucleiProperties::GetNuclearMass(), G4ParticlePropertyTable::GetParticleProperty(), lightions::Init(), antilightions::Init(), G4ErrorPropagator::InitG4Track(), G4DNAIonElasticModel::Initialise(), G4EmSaturation::InitialiseBirksCoefficient(), G4INCL::ParticleTable::initialize(), Insert(), G4HadronPhysicsFTFP_BERT::Kaon(), G4HadronPhysicsFTF_BIC::Kaon(), G4HadronPhysicsINCLXX::Kaon(), G4HadronBuilder::Meson(), G4NeutrinoNucleusModel::MesonDecay(), G4ResonanceNames::MinMass(), G4CollisionComposite::Resolve::operator()(), G4HadronPhysicsQGSP_BERT::Pion(), G4HadronPhysicsQGSP_BIC::Pion(), G4HadronPhysicsQGS_BIC::Pion(), G4AdjointTrackingAction::PostUserTrackingAction(), G4VEnergyLossProcess::PreparePhysicsTable(), G4HtmlPPReporter::Print(), G4TextPPReporter::Print(), G4CRCoalescence::PushDeuteron(), G4LundStringFragmentation::Quark_AntiQuark_lastSplitting(), G4LundStringFragmentation::Quark_Diquark_lastSplitting(), G4AdjointSimManager::RegisterAtEndOfAdjointTrack(), G4LMsdGenerator::SampleMx(), SelectParticle(), G4VUserPhysicsList::SetApplyCuts(), G4DecayTableMessenger::SetCurrentParticle(), PrimaryGeneratorAction::SetDefaultKinematic(), G4VLongitudinalStringDecay::SetMinMasses(), G4GeneralParticleSourceMessenger::SetNewValue(), G4ParticleGunMessenger::SetNewValue(), G4ParticleMessenger::SetNewValue(), G4ProcessTableMessenger::SetNewValue(), G4PSNofSecondary::SetParticle(), G4ParticlePropertyTable::SetParticleProperty(), G4PrimaryParticle::SetPDGcode(), G4RTPrimaryGeneratorAction::SetUp(), G4RayShooter::Shoot(), and G4AdjointPrimaryGeneratorAction::UpdateListOfPrimaryParticles().

◆ GetDictionary()

const G4ParticleTable::G4PTblDictionary * G4ParticleTable::GetDictionary ( ) const
protected

Definition at line 704 of file G4ParticleTable.cc.

705{
706 return fDictionary;
707}

References fDictionary.

◆ GetEncodingDictionary()

const G4ParticleTable::G4PTblEncodingDictionary * G4ParticleTable::GetEncodingDictionary ( ) const
protected

Definition at line 717 of file G4ParticleTable.cc.

718{
719 return fEncodingDictionary;
720}

References fEncodingDictionary.

◆ GetGenericIon()

G4ParticleDefinition * G4ParticleTable::GetGenericIon ( ) const
inline

◆ GetGenericMuonicAtom()

G4ParticleDefinition * G4ParticleTable::GetGenericMuonicAtom ( ) const
inline

◆ GetIonTable()

G4IonTable * G4ParticleTable::GetIonTable ( ) const

Definition at line 698 of file G4ParticleTable.cc.

699{
700 return fIonTable;
701}

References fIonTable.

Referenced by G4FTFModel::AdjustNucleonsAlgorithm_beforeSampling(), G4ChargeExchange::ApplyYourself(), G4HadronElastic::ApplyYourself(), G4BinaryLightIonReaction::ApplyYourself(), G4LMsdGenerator::ApplyYourself(), G4TheoFSGenerator::ApplyYourself(), G4WilsonAblationModel::BreakItUp(), G4Radioactivation::CalculateChainsFromParent(), G4FTFModel::ComputeNucleusProperties(), G4QGSParticipants::ComputeNucleusProperties(), LBE::ConstructGeneral(), G4Radioactivation::DecayIt(), G4ITDecay::DecayIt(), G4BinaryLightIonReaction::DeExciteSpectatorNucleus(), G4ParticleDefinition::DumpTable(), G4BinaryLightIonReaction::FuseNucleiAndPrompound(), G4AlphaDecay::G4AlphaDecay(), G4BetaMinusDecay::G4BetaMinusDecay(), G4BetaPlusDecay::G4BetaPlusDecay(), G4ECDecay::G4ECDecay(), G4eCoulombScatteringModel::G4eCoulombScatteringModel(), G4EmCalculator::G4EmCalculator(), G4EmCorrections::G4EmCorrections(), G4eSingleCoulombScatteringModel::G4eSingleCoulombScatteringModel(), G4Evaporation::G4Evaporation(), G4ExcitationHandler::G4ExcitationHandler(), G4hCoulombScatteringModel::G4hCoulombScatteringModel(), G4IonCoulombScatteringModel::G4IonCoulombScatteringModel(), G4ITDecay::G4ITDecay(), G4LENDManager::G4LENDManager(), G4NeutronDecay::G4NeutronDecay(), G4NeutronRadCapture::G4NeutronRadCapture(), G4ParticleDefinition::G4ParticleDefinition(), G4ProtonDecay::G4ProtonDecay(), G4SFDecay::G4SFDecay(), G4TritonDecay::G4TritonDecay(), G4WilsonAbrasionModel::GetAbradedNucleons(), G4DiffuseElastic::GetInvCoulombElasticXsc(), G4NuclNuclDiffuseElastic::GetInvCoulombElasticXsc(), G4DiffuseElastic::GetInvElasticSumXsc(), G4NuclNuclDiffuseElastic::GetInvElasticSumXsc(), G4DiffuseElastic::GetInvElasticXsc(), G4NuclNuclDiffuseElastic::GetInvElasticXsc(), G4BinaryCascade::GetIonMass(), G4IonTable::GetIonTable(), G4StatMFFragment::GetNuclearMass(), G4ChipsAntiBaryonElasticXS::GetQ2max(), G4ChipsHyperonElasticXS::GetQ2max(), G4ChipsKaonMinusElasticXS::GetQ2max(), G4ChipsKaonPlusElasticXS::GetQ2max(), G4ChipsNeutronElasticXS::GetQ2max(), G4ChipsPionMinusElasticXS::GetQ2max(), G4ChipsPionPlusElasticXS::GetQ2max(), G4ChipsProtonElasticXS::GetQ2max(), G4BinaryCascade::HighEnergyModelFSProducts(), G4FTFModel::Init(), G4INCL::ParticleTable::initialize(), G4BinaryLightIonReaction::Interact(), G4InuclNuclei::makeDefinition(), G4QuasiElasticChannel::Scatter(), G4BinaryLightIonReaction::SetLighterAsProjectile(), G4ParticleMessenger::SetNewValue(), and G4RunManagerKernel::SetupPhysics().

◆ GetIterator()

G4ParticleTable::G4PTblDicIterator * G4ParticleTable::GetIterator ( ) const

◆ GetKey()

const G4String & G4ParticleTable::GetKey ( const G4ParticleDefinition *  particle) const
inlineprotected

◆ GetParticle()

G4ParticleDefinition * G4ParticleTable::GetParticle ( G4int  index) const

Definition at line 484 of file G4ParticleTable.cc.

485{
487 if ( (index >=0) && (index < entries()) )
488 {
490 piter -> reset(false);
491 G4int counter = 0;
492 while( (*piter)() ) // Loop checking, 09.08.2015, K.Kurashige
493 {
494 if ( counter == index ) return piter->value();
495 ++counter;
496 }
497 }
498#ifdef G4VERBOSE
499 if (verboseLevel>1)
500 {
501 G4cout << " G4ParticleTable::GetParticle"
502 << " invalid index (=" << index << ")" << G4endl;
503 }
504#endif
505 return nullptr;
506}
G4int entries() const

References CheckReadiness(), entries(), fIterator, G4cout, G4endl, G4ParticleTableIterator< K, V >::value(), and verboseLevel.

Referenced by G4GlobalFastSimulationManager::DisplayRegion(), export_G4ParticleTable(), G4RunManagerKernel::G4RunManagerKernel(), GetParticleName(), G4FastSimulationManager::ListModels(), G4RunManagerKernel::SetPhysics(), and G4GlobalFastSimulationManager::ShowSetup().

◆ GetParticleName()

const G4String & G4ParticleTable::GetParticleName ( G4int  index) const

Definition at line 509 of file G4ParticleTable.cc.

510{
511 G4ParticleDefinition* aParticle =GetParticle(index);
512 if (aParticle != nullptr)
513 {
514 return aParticle->GetParticleName();
515 }
516 else
517 {
518 return noName;
519 }
520}
const G4String & GetParticleName() const
G4ParticleDefinition * GetParticle(G4int index) const
const G4String noName

References GetParticle(), G4ParticleDefinition::GetParticleName(), and noName.

Referenced by DeleteAllParticles(), export_G4ParticleTable(), G4GeneralParticleSourceMessenger::G4GeneralParticleSourceMessenger(), getParticleTable(), and G4FastSimulationManager::ListModels().

◆ GetParticleTable()

G4ParticleTable * G4ParticleTable::GetParticleTable ( )
static

Definition at line 87 of file G4ParticleTable.cc.

88{
89 if ( fgParticleTable == nullptr )
90 {
91 static G4ParticleTable theParticleTable;
92 fgParticleTable = &theParticleTable;
93 }
94
95 // Here we initialize all thread private data members.
96 //
98
99 return fgParticleTable;
100}
void WorkerG4ParticleTable()

References fDictionary, fgParticleTable, and WorkerG4ParticleTable().

Referenced by G4EmModelActivator::ActivateEmOptions(), G4EmModelActivator::ActivatePAI(), G4ITStepProcessor::ActiveOnlyITProcess(), G4SDParticleFilter::add(), G4ChannelingOptrMultiParticleChangeCrossSection::AddChargedParticles(), G4ChannelingOptrMultiParticleChangeCrossSection::AddParticle(), G4IonTable::AddProcessManager(), LBE::AddTransportation(), G4FTFModel::AdjustNucleonsAlgorithm_beforeSampling(), G4ITTransportation::AlongStepDoIt(), G4ANuElNucleusCcModel::ApplyYourself(), G4ANuElNucleusNcModel::ApplyYourself(), G4ANuMuNucleusCcModel::ApplyYourself(), G4ANuMuNucleusNcModel::ApplyYourself(), G4NuElNucleusCcModel::ApplyYourself(), G4NuElNucleusNcModel::ApplyYourself(), G4NuMuNucleusCcModel::ApplyYourself(), G4NuMuNucleusNcModel::ApplyYourself(), G4ChargeExchange::ApplyYourself(), G4HadronElastic::ApplyYourself(), G4BinaryLightIonReaction::ApplyYourself(), G4LMsdGenerator::ApplyYourself(), G4TheoFSGenerator::ApplyYourself(), G4HadronBuilder::Barion(), G4WilsonAblationModel::BreakItUp(), G4ErrorTrajState::BuildCharge(), G4HadronicBuilder::BuildDecayTableForBCHadrons(), G4HadronicBuilder::BuildElastic(), G4HadronicBuilder::BuildFTFP_BERT(), G4HadronicBuilder::BuildFTFQGSP_BERT(), G4HadronicBuilder::BuildQGSP_FTFP_BERT(), G4Radioactivation::CalculateChainsFromParent(), G4IonTable::clear(), G4NeutrinoNucleusModel::ClusterDecay(), G4NeutrinoNucleusModel::CoherentPion(), G4FTFModel::ComputeNucleusProperties(), G4QGSParticipants::ComputeNucleusProperties(), G4RunManagerKernel::ConfirmCoupledTransportation(), G4ExcitedBaryonConstructor::Construct(), G4ExcitedMesonConstructor::Construct(), G4EmBuilder::ConstructBasicEmPhysics(), LBE::ConstructEM(), LBE::ConstructGeneral(), LBE::ConstructHad(), G4MuonicAtomHelper::ConstructMuonicAtom(), LBE::ConstructOp(), G4HadronDElasticPhysics::ConstructProcess(), G4HadronElasticPhysics::ConstructProcess(), G4HadronHElasticPhysics::ConstructProcess(), G4RunManager::ConstructScoringWorlds(), G4WorkerRunManager::ConstructScoringWorlds(), G4FTFAnnihilation::Create1QuarkAntiQuarkString(), G4FTFAnnihilation::Create2QuarkAntiQuarkStrings(), G4FTFAnnihilation::Create3QuarkAntiQuarkStrings(), G4IonTable::CreateIon(), G4PionDecayMakeSpin::DaughterPolarization(), G4Radioactivation::DecayIt(), G4ITDecay::DecayIt(), G4BinaryLightIonReaction::DeExciteSpectatorNucleus(), G4AdjointAlpha::Definition(), G4AdjointDeuteron::Definition(), G4AdjointElectron::Definition(), G4AdjointElectronFI::Definition(), G4AdjointGamma::Definition(), G4AdjointGenericIon::Definition(), G4AdjointHe3::Definition(), G4AdjointPositron::Definition(), G4AdjointProton::Definition(), G4AdjointTriton::Definition(), G4ChargedGeantino::Definition(), G4Gamma::Definition(), G4Geantino::Definition(), G4OpticalPhoton::Definition(), G4PhononLong::Definition(), G4PhononTransFast::Definition(), G4PhononTransSlow::Definition(), G4UnknownParticle::Definition(), G4AntiLambda::Definition(), G4AntiLambdab::Definition(), G4AntiLambdacPlus::Definition(), G4AntiNeutron::Definition(), G4AntiOmegabMinus::Definition(), G4AntiOmegacZero::Definition(), G4AntiOmegaMinus::Definition(), G4AntiProton::Definition(), G4AntiSigmabMinus::Definition(), G4AntiSigmabPlus::Definition(), G4AntiSigmabZero::Definition(), G4AntiSigmacPlus::Definition(), G4AntiSigmacPlusPlus::Definition(), G4AntiSigmacZero::Definition(), G4AntiSigmaMinus::Definition(), G4AntiSigmaPlus::Definition(), G4AntiSigmaZero::Definition(), G4AntiXibMinus::Definition(), G4AntiXibZero::Definition(), G4AntiXicPlus::Definition(), G4AntiXicZero::Definition(), G4AntiXiMinus::Definition(), G4AntiXiZero::Definition(), G4Lambda::Definition(), G4Lambdab::Definition(), G4LambdacPlus::Definition(), G4Neutron::Definition(), G4OmegabMinus::Definition(), G4OmegacZero::Definition(), G4OmegaMinus::Definition(), G4Proton::Definition(), G4SigmabMinus::Definition(), G4SigmabPlus::Definition(), G4SigmabZero::Definition(), G4SigmacPlus::Definition(), G4SigmacPlusPlus::Definition(), G4SigmacZero::Definition(), G4SigmaMinus::Definition(), G4SigmaPlus::Definition(), G4SigmaZero::Definition(), G4XibMinus::Definition(), G4XibZero::Definition(), G4XicPlus::Definition(), G4XicZero::Definition(), G4XiMinus::Definition(), G4XiZero::Definition(), G4Alpha::Definition(), G4AntiAlpha::Definition(), G4AntiDeuteron::Definition(), G4AntiDoubleHyperDoubleNeutron::Definition(), G4AntiDoubleHyperH4::Definition(), G4AntiHe3::Definition(), G4AntiHyperAlpha::Definition(), G4AntiHyperH4::Definition(), G4AntiHyperHe5::Definition(), G4AntiHyperTriton::Definition(), G4AntiTriton::Definition(), G4Deuteron::Definition(), G4DoubleHyperDoubleNeutron::Definition(), G4DoubleHyperH4::Definition(), G4GenericIon::Definition(), G4GenericMuonicAtom::Definition(), G4He3::Definition(), G4HyperAlpha::Definition(), G4HyperH4::Definition(), G4HyperHe5::Definition(), G4HyperTriton::Definition(), G4Triton::Definition(), G4AntiBMesonZero::Definition(), G4AntiBsMesonZero::Definition(), G4AntiDMesonZero::Definition(), G4AntiKaonZero::Definition(), G4BcMesonMinus::Definition(), G4BcMesonPlus::Definition(), G4BMesonMinus::Definition(), G4BMesonPlus::Definition(), G4BMesonZero::Definition(), G4BsMesonZero::Definition(), G4DMesonMinus::Definition(), G4DMesonPlus::Definition(), G4DMesonZero::Definition(), G4DsMesonMinus::Definition(), G4DsMesonPlus::Definition(), G4Eta::Definition(), G4Etac::Definition(), G4EtaPrime::Definition(), G4JPsi::Definition(), G4KaonMinus::Definition(), G4KaonPlus::Definition(), G4KaonZero::Definition(), G4KaonZeroLong::Definition(), G4KaonZeroShort::Definition(), G4PionMinus::Definition(), G4PionPlus::Definition(), G4PionZero::Definition(), G4Upsilon::Definition(), G4AntiNeutrinoE::Definition(), G4AntiNeutrinoMu::Definition(), G4AntiNeutrinoTau::Definition(), G4Electron::Definition(), G4MuonMinus::Definition(), G4MuonPlus::Definition(), G4NeutrinoE::Definition(), G4NeutrinoMu::Definition(), G4NeutrinoTau::Definition(), G4Positron::Definition(), G4TauMinus::Definition(), G4TauPlus::Definition(), G4DamagedDeoxyribose::Definition(), G4DamagedAdenine::Definition(), G4DamagedGuanine::Definition(), G4DamagedThymine::Definition(), G4DamagedCytosine::Definition(), G4Deoxyribose::Definition(), G4Phosphate::Definition(), G4Adenine::Definition(), G4Guanine::Definition(), G4Thymine::Definition(), G4Cytosine::Definition(), G4ModifiedHistone::Definition(), G4Histone::Definition(), G4Electron_aq::Definition(), G4FakeMolecule::Definition(), G4H2::Definition(), G4H2O::Definition(), G4H2O2::Definition(), G4H3O::Definition(), G4HO2::Definition(), G4Hydrogen::Definition(), G4O2::Definition(), G4O3::Definition(), G4OH::Definition(), G4Oxygen::Definition(), G4Dineutron::Definition(), G4Diproton::Definition(), G4UnboundPN::Definition(), G4LundStringFragmentation::Diquark_AntiDiquark_aboveThreshold_lastSplitting(), G4GlobalFastSimulationManager::DisplayRegion(), G4QuarkExchange::ExciteParticipants(), G4DiffractiveExcitation::ExciteParticipants_doChargeExchange(), export_G4ParticleTable(), G4VParticlePropertyReporter::FillList(), G4NeutrinoNucleusModel::FinalBarion(), G4NeutrinoNucleusModel::FinalMeson(), G4BaryonSplitter::FindDiquark(), G4HadProcesses::FindParticle(), G4EmCalculator::FindParticle(), G4EnergyLossForExtrapolator::FindParticle(), G4VLongitudinalStringDecay::FindParticle(), G4ProcessTable::FindProcess(), G4BinaryLightIonReaction::FuseNucleiAndPrompound(), G4AlphaDecay::G4AlphaDecay(), G4BaryonSplitter::G4BaryonSplitter(), G4BetaMinusDecay::G4BetaMinusDecay(), G4BetaPlusDecay::G4BetaPlusDecay(), G4BOptrForceCollision::G4BOptrForceCollision(), G4ChannelingOptrChangeCrossSection::G4ChannelingOptrChangeCrossSection(), G4CollisionMesonBaryonToResonance::G4CollisionMesonBaryonToResonance(), G4DecayTableMessenger::G4DecayTableMessenger(), G4ECDecay::G4ECDecay(), G4eCoulombScatteringModel::G4eCoulombScatteringModel(), G4EmCalculator::G4EmCalculator(), G4EmCorrections::G4EmCorrections(), G4ErrorTrackLengthTarget::G4ErrorTrackLengthTarget(), G4eSingleCoulombScatteringModel::G4eSingleCoulombScatteringModel(), G4Evaporation::G4Evaporation(), G4ExcitationHandler::G4ExcitationHandler(), G4GeneralParticleSourceMessenger::G4GeneralParticleSourceMessenger(), G4HadronicProcessStore::G4HadronicProcessStore(), G4hCoulombScatteringModel::G4hCoulombScatteringModel(), G4IonCoulombScatteringModel::G4IonCoulombScatteringModel(), G4ITDecay::G4ITDecay(), G4LENDManager::G4LENDManager(), G4NeutronDecay::G4NeutronDecay(), G4NeutronRadCapture::G4NeutronRadCapture(), G4ParticleDefinition::G4ParticleDefinition(), G4ParticleGunMessenger::G4ParticleGunMessenger(), G4ParticleMessenger::G4ParticleMessenger(), G4ParticlePropertyMessenger::G4ParticlePropertyMessenger(), G4ParticlePropertyTable::G4ParticlePropertyTable(), G4ParticleTypeConverter::G4ParticleTypeConverter(), G4Parton::G4Parton(), G4PhysicsListHelper::G4PhysicsListHelper(), G4PrimaryParticle::G4PrimaryParticle(), G4PrimaryTransformer::G4PrimaryTransformer(), G4ProcessManagerMessenger::G4ProcessManagerMessenger(), G4ProtonDecay::G4ProtonDecay(), G4ResonanceNames::G4ResonanceNames(), G4RToEConvForElectron::G4RToEConvForElectron(), G4RToEConvForGamma::G4RToEConvForGamma(), G4RToEConvForPositron::G4RToEConvForPositron(), G4RToEConvForProton::G4RToEConvForProton(), G4RunManager::G4RunManager(), G4RunManagerKernel::G4RunManagerKernel(), G4SDParticleFilter::G4SDParticleFilter(), G4SFDecay::G4SFDecay(), G4SPBaryon::G4SPBaryon(), G4TritonDecay::G4TritonDecay(), G4UserEventAction::G4UserEventAction(), G4UserRunAction::G4UserRunAction(), G4UserStackingAction::G4UserStackingAction(), G4UserSteppingAction::G4UserSteppingAction(), G4UserTrackingAction::G4UserTrackingAction(), G4VDecayChannel::G4VDecayChannel(), G4VPhysicsConstructor::G4VPhysicsConstructor(), G4VUserPhysicsList::G4VUserPhysicsList(), G4VUserPrimaryGeneratorAction::G4VUserPrimaryGeneratorAction(), G4WorkerRunManager::G4WorkerRunManager(), G4FTFModel::GenerateDeltaIsobar(), G4QGSParticipants::GenerateDeltaIsobar(), G4CRCoalescence::GenerateDeuterons(), G4HtmlPPReporter::GenerateIndex(), G4WilsonAbrasionModel::GetAbradedNucleons(), G4NucleiProperties::GetAtomicMass(), G4HyperNucleiProperties::GetAtomicMass(), G4NucleiProperties::GetBindingEnergy(), G4UserPhysicsListMessenger::GetCurrentValue(), G4DiffuseElastic::GetInvCoulombElasticXsc(), G4NuclNuclDiffuseElastic::GetInvCoulombElasticXsc(), G4DiffuseElastic::GetInvElasticSumXsc(), G4NuclNuclDiffuseElastic::GetInvElasticSumXsc(), G4DiffuseElastic::GetInvElasticXsc(), G4NuclNuclDiffuseElastic::GetInvElasticXsc(), G4BinaryCascade::GetIonMass(), G4IonTable::GetIonTable(), G4NucleiProperties::GetMassExcess(), G4NucleiProperties::GetNuclearMass(), G4HyperNucleiProperties::GetNuclearMass(), G4StatMFFragment::GetNuclearMass(), G4SmoothTrajectory::GetParticleDefinition(), G4Trajectory::GetParticleDefinition(), getParticleTable(), G4ProcessPlacer::GetProcessManager(), G4ChipsAntiBaryonElasticXS::GetQ2max(), G4ChipsHyperonElasticXS::GetQ2max(), G4ChipsKaonMinusElasticXS::GetQ2max(), G4ChipsKaonPlusElasticXS::GetQ2max(), G4ChipsNeutronElasticXS::GetQ2max(), G4ChipsPionMinusElasticXS::GetQ2max(), G4ChipsPionPlusElasticXS::GetQ2max(), G4ChipsProtonElasticXS::GetQ2max(), G4BaryonSplitter::GetSPBaryon(), G4IonTable::GetVerboseLevel(), G4IsotopeMagneticMomentTable::GetVerboseLevel(), G4BinaryCascade::HighEnergyModelFSProducts(), lightions::Init(), antilightions::Init(), G4FTFModel::Init(), G4ErrorPropagator::InitG4Track(), G4DNAIonElasticModel::Initialise(), G4EmSaturation::InitialiseBirksCoefficient(), G4VPCData::initialize(), G4VUPLData::initialize(), G4INCL::ParticleTable::initialize(), G4VUserPhysicsList::InitializeProcessManager(), G4BinaryLightIonReaction::Interact(), G4EMDissociationCrossSection::IsElementApplicable(), G4NucleiProperties::IsInStableTable(), G4HadronPhysicsFTFP_BERT::Kaon(), G4HadronPhysicsFTF_BIC::Kaon(), G4HadronPhysicsINCLXX::Kaon(), G4FastSimulationManager::ListModels(), G4InuclNuclei::makeDefinition(), G4HadronBuilder::Meson(), G4NeutrinoNucleusModel::MesonDecay(), G4ResonanceNames::MinMass(), G4NucleiProperties::NuclearMass(), G4CollisionComposite::Resolve::operator()(), G4VDecayChannel::operator=(), PyG4ParticleList::p_begin(), PyG4ParticleList::p_end(), G4HadronPhysicsQGSP_BERT::Pion(), G4HadronPhysicsQGSP_BIC::Pion(), G4HadronPhysicsQGS_BIC::Pion(), G4AdjointTrackingAction::PostUserTrackingAction(), G4VEnergyLossProcess::PreparePhysicsTable(), G4HtmlPPReporter::Print(), G4TextPPReporter::Print(), G4RunManagerKernel::PropagateGenericIonID(), G4CRCoalescence::PushDeuteron(), G4LundStringFragmentation::Quark_AntiQuark_lastSplitting(), G4LundStringFragmentation::Quark_Diquark_lastSplitting(), G4AdjointSimManager::RegisterAtEndOfAdjointTrack(), G4IonTable::Remove(), G4TextPPRetriever::Retrieve(), G4LMsdGenerator::SampleMx(), G4QuasiElasticChannel::Scatter(), PrimaryGeneratorAction::SetDefaultKinematic(), G4BinaryLightIonReaction::SetLighterAsProjectile(), G4VLongitudinalStringDecay::SetMinMasses(), G4EmConfigurator::SetModelForRegion(), G4ProcessTableMessenger::SetNewValue(), G4FastSimulationMessenger::SetNewValue(), G4UserPhysicsListMessenger::SetNewValue(), G4PSNofSecondary::SetParticle(), pyG4ParticleGun::SetParticleByName(), pyMedicalBeam::SetParticleByName(), G4PrimaryParticle::SetPDGcode(), G4RunManagerKernel::SetPhysics(), G4ProcessTable::SetProcessActivation(), G4RunManagerKernel::SetScoreSplitter(), G4RTPrimaryGeneratorAction::SetUp(), G4MTRunManagerKernel::SetUpDecayChannels(), G4TaskRunManagerKernel::SetUpDecayChannels(), G4RunManagerKernel::SetupPhysics(), G4RunManagerKernel::SetupShadowProcess(), G4WorkerRunManagerKernel::SetupShadowProcess(), G4WorkerTaskRunManagerKernel::SetupShadowProcess(), G4RayShooter::Shoot(), G4GlobalFastSimulationManager::ShowSetup(), G4BaryonSplitter::SplitBarion(), G4ProductionCutsTable::UpdateCoupleTable(), G4AdjointPrimaryGeneratorAction::UpdateListOfPrimaryParticles(), G4ParticleDefinition::~G4ParticleDefinition(), G4WorkerRunManagerKernel::~G4WorkerRunManagerKernel(), and G4WorkerTaskRunManagerKernel::~G4WorkerTaskRunManagerKernel().

◆ GetReadiness()

G4bool G4ParticleTable::GetReadiness ( ) const
inline

◆ GetSelectedParticle()

const G4ParticleDefinition * G4ParticleTable::GetSelectedParticle ( ) const
inline

◆ GetVerboseLevel()

G4int G4ParticleTable::GetVerboseLevel ( ) const
inline

◆ Insert()

G4ParticleDefinition * G4ParticleTable::Insert ( G4ParticleDefinition *  particle)

Definition at line 326 of file G4ParticleTable.cc.

327{
328 // check particle name
329 if ((particle == nullptr) || (GetKey(particle).empty()))
330 {
331 G4Exception("G4ParticleTable::Insert()",
332 "PART121", FatalException,
333 "Particle witnout name can not be registered.");
334#ifdef G4VERBOSE
335 if (verboseLevel>1)
336 {
337 G4cout << "The particle[Addr:" << particle << "] has no name "<< G4endl;
338 }
339#endif
340 return nullptr;
341 }
342 else
343 {
344 if (contains(particle))
345 {
346#ifdef G4VERBOSE
347 if (verboseLevel>2)
348 {
349 FindParticle(particle) -> DumpTable();
350 }
351#endif
352 G4String msg = "The particle ";
353 msg += particle->GetParticleName();
354 msg += " has already been registered in the Particle Table ";
355 G4Exception("G4ParticleTable::Insert()", "PART122", FatalException, msg);
356
357 return particle;
358 }
359 else
360 {
362
363 // insert into Dictionary
364 pdic->insert( std::pair<G4String,
365 G4ParticleDefinition*>(GetKey(particle), particle) );
366#ifdef G4MULTITHREADED
368 {
369 fDictionary->insert( std::pair<G4String,
370 G4ParticleDefinition*>(GetKey(particle), particle) );
371 }
372#endif
373
375
376 // insert into EncodingDictionary
377 G4int code = particle->GetPDGEncoding();
378 if (code != 0 )
379 {
380 pedic->insert( std::pair<G4int,
381 G4ParticleDefinition*>(code ,particle) );
382#ifdef G4MULTITHREADED
384 {
385 fEncodingDictionary->insert( std::pair<G4int,
386 G4ParticleDefinition*>(code ,particle) );
387 }
388#endif
389 }
390
391 // insert it in IonTable if "nucleus"
392 if (fIonTable->IsIon(particle) )
393 {
394 fIonTable->Insert(particle);
395 }
396
397 // set Verbose Level same as ParticleTable
398 particle->SetVerboseLevel(verboseLevel);
399
400#ifdef G4VERBOSE
401 if (verboseLevel>3)
402 {
403 G4cout << "The particle "<< particle->GetParticleName()
404 << " is inserted in the ParticleTable " << G4endl;
405 }
406#endif
407 return particle;
408 }
409 }
410}
static G4bool IsIon(const G4ParticleDefinition *)
Definition: G4IonTable.cc:1302
void Insert(const G4ParticleDefinition *particle)
Definition: G4IonTable.cc:1548
void SetVerboseLevel(G4int value)
G4bool contains(const G4ParticleDefinition *particle) const

References contains(), DumpTable(), anonymous_namespace{G4MTcoutDestination.cc}::empty, FatalException, fDictionary, fDictionaryShadow, fEncodingDictionary, fEncodingDictionaryShadow, FindParticle(), fIonTable, G4cout, G4endl, G4Exception(), GetKey(), G4ParticleDefinition::GetParticleName(), G4ParticleDefinition::GetPDGEncoding(), G4IonTable::Insert(), G4IonTable::IsIon(), G4Threading::IsWorkerThread(), G4ParticleDefinition::SetVerboseLevel(), and verboseLevel.

Referenced by G4ParticleDefinition::G4ParticleDefinition().

◆ operator=()

G4ParticleTable & G4ParticleTable::operator= ( const G4ParticleTable &  )
delete

◆ Remove()

G4ParticleDefinition * G4ParticleTable::Remove ( G4ParticleDefinition *  particle)

Definition at line 413 of file G4ParticleTable.cc.

414{
415 if( particle == nullptr) return nullptr;
416#ifdef G4MULTITHREADED
418 {
420 ed << "Request of removing " << particle->GetParticleName()
421 << " is ignored as it is invoked from a worker thread.";
422 G4Exception("G4ParticleTable::Remove()", "PART10117", JustWarning, ed);
423 return nullptr;
424 }
425#endif
426 if (readyToUse)
427 {
429 G4ApplicationState currentState = pStateManager->GetCurrentState();
430 if (currentState != G4State_PreInit)
431 {
432 G4String msg = "Request of removing ";
433 msg += particle->GetParticleName();
434 msg += " has No effects other than Pre_Init";
435 G4Exception("G4ParticleTable::Remove()", "PART117", JustWarning, msg);
436 return nullptr;
437 }
438 else
439 {
440#ifdef G4VERBOSE
441 if (verboseLevel>0)
442 {
443 G4cout << particle->GetParticleName()
444 << " will be removed from the ParticleTable " << G4endl;
445 }
446#endif
447 }
448 }
449
450 G4PTblDictionary::iterator it = fDictionaryShadow->find(GetKey(particle));
451 if (it != fDictionaryShadow->end())
452 {
453 fDictionaryShadow->erase(it);
454 // remove from EncodingDictionary
455 G4int code = particle->GetPDGEncoding();
456 if (code != 0 )
457 {
459 }
460 }
461 else
462 {
463 return nullptr;
464 }
465
466 // remove it from IonTable if "nucleus"
467 if (fIonTable->IsIon(particle) )
468 {
469 fIonTable->Remove(particle);
470 }
471
472#ifdef G4VERBOSE
473 if (verboseLevel>3)
474 {
475 G4cout << "The particle "<< particle->GetParticleName()
476 << " is removed from the ParticleTable " << G4endl;
477 }
478#endif
479
480 return particle;
481}
G4ApplicationState
@ G4State_PreInit
@ JustWarning
std::ostringstream G4ExceptionDescription
Definition: G4Exception.hh:40
void Remove(const G4ParticleDefinition *particle)
Definition: G4IonTable.cc:1594
const G4ApplicationState & GetCurrentState() const
static G4StateManager * GetStateManager()

References fDictionaryShadow, fEncodingDictionaryShadow, fIonTable, G4cout, G4endl, G4Exception(), G4State_PreInit, G4StateManager::GetCurrentState(), GetKey(), G4ParticleDefinition::GetParticleName(), G4ParticleDefinition::GetPDGEncoding(), G4StateManager::GetStateManager(), G4IonTable::IsIon(), G4Threading::IsWorkerThread(), JustWarning, readyToUse, G4IonTable::Remove(), and verboseLevel.

Referenced by G4Dineutron::Definition(), G4Diproton::Definition(), and G4UnboundPN::Definition().

◆ RemoveAllParticles()

void G4ParticleTable::RemoveAllParticles ( )

Definition at line 295 of file G4ParticleTable.cc.

296{
297 if (readyToUse)
298 {
299 G4Exception("G4ParticleTable::RemoveAllParticle()",
300 "PART115", JustWarning,
301 "No effects because readyToUse is true.");
302 return;
303 }
304
305#ifdef G4VERBOSE
306 if (verboseLevel>1)
307 {
308 G4cout << "G4ParticleTable::RemoveAllParticles() " << G4endl;
309 }
310#endif
311
312 // remove all contents in Ion Table
313 if (fIonTable != nullptr)
314 {
315 fIonTable->clear();
316 }
317
318 // clear dictionary
319 if (fDictionary != nullptr)
320 {
321 fDictionary->clear();
322 }
323}
void clear()
Definition: G4IonTable.cc:1526

References G4IonTable::clear(), fDictionary, fIonTable, G4cout, G4endl, G4Exception(), JustWarning, readyToUse, and verboseLevel.

Referenced by DeleteAllParticles(), and ~G4ParticleTable().

◆ SelectParticle()

void G4ParticleTable::SelectParticle ( const G4String &  name)

Definition at line 557 of file G4ParticleTable.cc.

558{
559 if(name != selectedName)
560 {
562 if(part)
563 {
564#ifdef G4MULTITHREADED
565 G4MUTEXLOCK(&G4ParticleTable::particleTableMutex());
566#endif
567 selectedParticle = part;
569#ifdef G4MULTITHREADED
570 G4MUTEXUNLOCK(&G4ParticleTable::particleTableMutex());
571#endif
572 }
573 }
574}
const G4ParticleDefinition * selectedParticle
const char * name(G4int ptype)

References FindParticle(), G4MUTEXLOCK, G4MUTEXUNLOCK, G4InuclParticleNames::name(), selectedName, and selectedParticle.

Referenced by G4ParticleMessenger::SetNewValue().

◆ SetGenericIon()

void G4ParticleTable::SetGenericIon ( G4ParticleDefinition *  )
inline

◆ SetGenericMuonicAtom()

void G4ParticleTable::SetGenericMuonicAtom ( G4ParticleDefinition *  )
inline

◆ SetReadiness()

void G4ParticleTable::SetReadiness ( G4bool  val = true)
inline

◆ SetVerboseLevel()

void G4ParticleTable::SetVerboseLevel ( G4int  value)
inline

◆ size()

G4int G4ParticleTable::size ( ) const

Definition at line 736 of file G4ParticleTable.cc.

737{
738 return (G4int)fDictionary->size();
739}

References fDictionary.

Referenced by export_G4ParticleTable(), and getParticleTable().

◆ WorkerG4ParticleTable()

void G4ParticleTable::WorkerG4ParticleTable ( )

Definition at line 142 of file G4ParticleTable.cc.

143{
144 // The iterator for the shadow particle table is not sharable.
145 //
146#ifdef G4MULTITHREADED
147 G4MUTEXLOCK(&G4ParticleTable::particleTableMutex());
148 G4ParticleTable::lockCount()++;
149#endif
150 if(fDictionary == nullptr)
151 {
153 }
154 else
155 {
156 fDictionary->clear();
157 }
158
159 if(fEncodingDictionary == nullptr)
160 {
162 }
163 else
164 {
165 fEncodingDictionary->clear();
166 }
167
168 fIteratorShadow->reset(false);
169 while( (*fIteratorShadow)() ) // Loop checking, 09.08.2015, K.Kurashige
170 {
172 fDictionary->insert( std::pair<G4String,
173 G4ParticleDefinition*>(GetKey(particle), particle) );
174 G4int code = particle->GetPDGEncoding();
175 if (code !=0 )
176 {
177 fEncodingDictionary->insert( std::pair<G4int,
178 G4ParticleDefinition*>(code ,particle) );
179 }
180 }
182
183#ifdef G4MULTITHREADED
184 G4MUTEXUNLOCK(&G4ParticleTable::particleTableMutex());
185#endif
186
188}
void WorkerG4IonTable()
Definition: G4IonTable.cc:180

References fDictionary, fEncodingDictionary, fIonTable, fIterator, fIteratorShadow, G4MUTEXLOCK, G4MUTEXUNLOCK, GetKey(), G4ParticleDefinition::GetPDGEncoding(), G4ParticleTableIterator< K, V >::reset(), G4ParticleTableIterator< K, V >::value(), and G4IonTable::WorkerG4IonTable().

Referenced by G4WorkerRunManager::G4WorkerRunManager(), and GetParticleTable().

Field Documentation

◆ fDictionary

G4ThreadLocal G4ParticleTable::G4PTblDictionary * G4ParticleTable::fDictionary = nullptr
static

◆ fDictionaryShadow

G4ParticleTable::G4PTblDictionary * G4ParticleTable::fDictionaryShadow = nullptr
static

Definition at line 182 of file G4ParticleTable.hh.

Referenced by contains(), FindParticle(), G4ParticleTable(), Insert(), and Remove().

◆ fEncodingDictionary

G4ThreadLocal G4ParticleTable::G4PTblEncodingDictionary * G4ParticleTable::fEncodingDictionary = nullptr
static

◆ fEncodingDictionaryShadow

G4ParticleTable::G4PTblEncodingDictionary * G4ParticleTable::fEncodingDictionaryShadow = nullptr
static

Definition at line 184 of file G4ParticleTable.hh.

Referenced by FindParticle(), G4ParticleTable(), Insert(), and Remove().

◆ fgParticleTable

G4ParticleTable * G4ParticleTable::fgParticleTable = nullptr
static

Definition at line 171 of file G4ParticleTable.hh.

Referenced by GetParticleTable(), and ~G4ParticleTable().

◆ fIonTable

G4IonTable* G4ParticleTable::fIonTable = nullptr

◆ fIterator

G4ThreadLocal G4ParticleTable::G4PTblDicIterator * G4ParticleTable::fIterator = nullptr
static

◆ fIteratorShadow

G4ParticleTable::G4PTblDicIterator * G4ParticleTable::fIteratorShadow = nullptr
static

Definition at line 183 of file G4ParticleTable.hh.

Referenced by G4ParticleTable(), and WorkerG4ParticleTable().

◆ fParticleMessenger

G4ParticleMessenger* G4ParticleTable::fParticleMessenger = nullptr

Definition at line 162 of file G4ParticleTable.hh.

Referenced by CreateMessenger(), G4ParticleTable(), and ~G4ParticleTable().

◆ genericIon

G4ParticleDefinition* G4ParticleTable::genericIon = nullptr
private

Definition at line 211 of file G4ParticleTable.hh.

◆ genericMuonicAtom

G4ParticleDefinition* G4ParticleTable::genericMuonicAtom = nullptr
private

Definition at line 212 of file G4ParticleTable.hh.

◆ noName

const G4String G4ParticleTable::noName = " "
private

Definition at line 215 of file G4ParticleTable.hh.

Referenced by GetParticleName().

◆ readyToUse

G4bool G4ParticleTable::readyToUse = false
private

◆ selectedName

G4String G4ParticleTable::selectedName = "undefined"
private

Definition at line 216 of file G4ParticleTable.hh.

Referenced by SelectParticle().

◆ selectedParticle

const G4ParticleDefinition* G4ParticleTable::selectedParticle = nullptr
private

Definition at line 213 of file G4ParticleTable.hh.

Referenced by SelectParticle().

◆ verboseLevel

G4int G4ParticleTable::verboseLevel = 1
private

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