Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions
G4ParticleTable Class Reference

#include <G4ParticleTable.hh>

Public Types

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

Public Member Functions

void SlaveG4ParticleTable ()
 
void WorkerG4ParticleTable ()
 
virtual ~G4ParticleTable ()
 
G4bool contains (const G4ParticleDefinition *particle) const
 
G4bool contains (const G4String &particle_name) const
 
G4int entries () const
 
G4int size () const
 
G4ParticleDefinitionGetParticle (G4int index) const
 
const G4StringGetParticleName (G4int index) const
 
G4ParticleDefinitionFindParticle (G4int PDGEncoding)
 
G4ParticleDefinitionFindParticle (const G4String &particle_name)
 
G4ParticleDefinitionFindParticle (const G4ParticleDefinition *particle)
 
G4ParticleDefinitionFindAntiParticle (G4int PDGEncoding)
 
G4ParticleDefinitionFindAntiParticle (const G4String &particle_name)
 
G4ParticleDefinitionFindAntiParticle (const G4ParticleDefinition *particle)
 
G4PTblDicIteratorGetIterator () const
 
void DumpTable (const G4String &particle_name="ALL")
 
G4IonTableGetIonTable () const
 
G4ParticleDefinitionFindIon (G4int atomicNumber, G4int atomicMass, G4double excitationEnergy)
 
G4ParticleDefinitionFindIon (G4int atomicNumber, G4int atomicMass, G4int numberOfLambda, G4double excitationEnergy)
 
G4ParticleDefinitionGetIon (G4int atomicNumber, G4int atomicMass, G4double excitationEnergy)
 
G4ParticleDefinitionGetIon (G4int atomicNumber, G4int atomicMass, G4int numberOfLambda, G4double excitationEnergy)
 
G4ParticleDefinitionGetIon (G4int atomicNumber, G4int atomicMass, G4int level)
 
G4ParticleDefinitionFindIon (G4int atomicNumber, G4int atomicMass, G4int dummy1, G4int dummy2)
 
G4ParticleDefinitionInsert (G4ParticleDefinition *particle)
 
G4ParticleDefinitionRemove (G4ParticleDefinition *particle)
 
void RemoveAllParticles ()
 
void DeleteAllParticles ()
 
G4UImessengerCreateMessenger ()
 
void DeleteMessenger ()
 
void SetVerboseLevel (G4int value)
 
G4int GetVerboseLevel () const
 
void SetReadiness (G4bool val=true)
 
G4bool GetReadiness () const
 
G4ParticleDefinitionGetGenericIon () const
 
void SetGenericIon (G4ParticleDefinition *)
 

Static Public Member Functions

static G4ParticleTableGetParticleTable ()
 

Static Public Attributes

static G4ThreadLocal
G4ParticleMessenger
fParticleMessenger = 0
 
static G4ThreadLocal
G4PTblDictionary
fDictionary = 0
 
static G4ThreadLocal
G4PTblDicIterator
fIterator = 0
 
static G4ThreadLocal
G4PTblEncodingDictionary
fEncodingDictionary = 0
 
static G4ParticleTablefgParticleTable =0
 
static G4IonTablefIonTable = 0
 
static G4ParticleMessengerfParticleMessengerShadow = 0
 
static G4PTblDictionaryfDictionaryShadow = 0
 
static G4PTblDicIteratorfIteratorShadow = 0
 
static G4PTblEncodingDictionaryfEncodingDictionaryShadow = 0
 

Protected Member Functions

 G4ParticleTable ()
 
 G4ParticleTable (const G4ParticleTable &right)
 
G4ParticleTableoperator= (const G4ParticleTable &)
 
const G4PTblDictionaryGetDictionary () const
 
const G4StringGetKey (const G4ParticleDefinition *particle) const
 
const G4PTblEncodingDictionaryGetEncodingDictionary () const
 

Detailed Description

Definition at line 65 of file G4ParticleTable.hh.

Member Typedef Documentation

Definition at line 78 of file G4ParticleTable.hh.

Definition at line 77 of file G4ParticleTable.hh.

Definition at line 80 of file G4ParticleTable.hh.

Definition at line 79 of file G4ParticleTable.hh.

Constructor & Destructor Documentation

G4ParticleTable::G4ParticleTable ( )
protected

Definition at line 110 of file G4ParticleTable.cc.

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

111  :verboseLevel(1),
112  noName(" "),
113  readyToUse(false),
114  genericIon(NULL)
115 {
117 
118  // Set up the shadow pointer used by worker threads.
119  //
120  if (fDictionaryShadow == 0)
121  {
123  }
124 
126 
127  // Set up the shadow pointer used by worker threads.
128  //
129  if (fIteratorShadow == 0)
130  {
132  }
133 
135  // Set up the shadow pointer used by worker threads.
136  //
137  if (fEncodingDictionaryShadow == 0)
138  {
140  }
141 
142 
143  // Ion Table
144  fIonTable = new G4IonTable();
145 
146 }
G4ParticleTableIterator< G4int, G4ParticleDefinition * >::Map G4PTblEncodingDictionary
G4ParticleTableIterator< G4String, G4ParticleDefinition * > G4PTblDicIterator
static G4PTblEncodingDictionary * fEncodingDictionaryShadow
static G4ThreadLocal G4PTblDictionary * fDictionary
static G4IonTable * fIonTable
static G4ThreadLocal G4PTblDicIterator * fIterator
static G4ThreadLocal G4PTblEncodingDictionary * fEncodingDictionary
static G4PTblDicIterator * fIteratorShadow
static G4PTblDictionary * fDictionaryShadow
G4ParticleTableIterator< G4String, G4ParticleDefinition * >::Map G4PTblDictionary
G4ParticleTable::G4ParticleTable ( const G4ParticleTable right)
protected

Definition at line 236 of file G4ParticleTable.cc.

References FatalException, fDictionary, fIterator, fParticleMessenger, and G4Exception().

237  :verboseLevel(1),
238  noName(" "),
239  readyToUse(false)
240 {
241  fParticleMessenger = 0 ;
242 
243  G4Exception("G4ParticleTable::G4ParticleTable()",
244  "PART001", FatalException,
245  "Illegal call of copy constructor for G4ParticleTable");
246  fDictionary = new G4PTblDictionary(*(right.fDictionary));
248 }
G4ParticleTableIterator< G4String, G4ParticleDefinition * > G4PTblDicIterator
static G4ThreadLocal G4ParticleMessenger * fParticleMessenger
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
static G4ThreadLocal G4PTblDictionary * fDictionary
static G4ThreadLocal G4PTblDicIterator * fIterator
G4ParticleTableIterator< G4String, G4ParticleDefinition * >::Map G4PTblDictionary
G4ParticleTable::~G4ParticleTable ( )
virtual

Definition at line 200 of file G4ParticleTable.cc.

References fDictionary, fEncodingDictionary, fgParticleTable, fIonTable, fIterator, fParticleMessenger, and RemoveAllParticles().

201 {
202  readyToUse = false;
203 
204  // remove all items from G4ParticleTable
206 
207  //delete Ion Table
208  if (fIonTable!=0) delete fIonTable;
209  fIonTable =0;
210 
211  // delete dictionary for encoding
212  if (fEncodingDictionary!=0){
213  fEncodingDictionary -> clear();
214  delete fEncodingDictionary;
216  }
217 
218 
219  if(fDictionary){
220  if (fIterator!=0 )delete fIterator;
221  fIterator =0;
222 
223  fDictionary->clear();
224  delete fDictionary;
225  fDictionary =0;
226  }
227 
228  if (fParticleMessenger!=0) delete fParticleMessenger;
230 
231  fgParticleTable =0;
232 
233 }
static G4ThreadLocal G4ParticleMessenger * fParticleMessenger
static G4ThreadLocal G4PTblDictionary * fDictionary
static G4IonTable * fIonTable
static G4ThreadLocal G4PTblDicIterator * fIterator
static G4ThreadLocal G4PTblEncodingDictionary * fEncodingDictionary
static G4ParticleTable * fgParticleTable

Member Function Documentation

G4bool G4ParticleTable::contains ( const G4ParticleDefinition particle) const
G4bool G4ParticleTable::contains ( const G4String particle_name) const

Definition at line 732 of file G4ParticleTable.cc.

References fDictionaryShadow.

733 {
734  G4PTblDictionary::iterator it = fDictionaryShadow->find(particle_name);
735  return (it != fDictionaryShadow->end());
736 }
static G4PTblDictionary * fDictionaryShadow
G4UImessenger * G4ParticleTable::CreateMessenger ( )

Definition at line 264 of file G4ParticleTable.cc.

References fParticleMessenger.

Referenced by G4RunManager::G4RunManager().

265 {
266  if (fParticleMessenger== 0) {
267  //UI messenger
269  }
270  return fParticleMessenger;
271 }
static G4ThreadLocal G4ParticleMessenger * fParticleMessenger
void G4ParticleTable::DeleteAllParticles ( )

Definition at line 285 of file G4ParticleTable.cc.

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

Referenced by G4VUserPhysicsList::~G4VUserPhysicsList().

286 {
287  //set readyToUse false
288  readyToUse = false;
289 
290 #ifdef G4VERBOSE
291  if (verboseLevel>1){
292  G4cout << "G4ParticleTable::DeleteAllParticles() " << G4endl;
293  }
294 #endif
295 
296  // delete all particles
297  G4PTblDicIterator *piter = fIterator;
298  piter -> reset();
299  while( (*piter)() ){
300 #ifdef G4VERBOSE
301  if (verboseLevel>2){
302  G4cout << "Delete " << (piter->value())->GetParticleName()
303  << " " << (piter->value()) << G4endl;
304  }
305 #endif
306  delete (piter->value());
307  }
309 }
const G4String & GetParticleName(G4int index) const
G4ParticleTableIterator< G4String, G4ParticleDefinition * > G4PTblDicIterator
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
static G4ThreadLocal G4PTblDicIterator * fIterator
void G4ParticleTable::DeleteMessenger ( )

Definition at line 274 of file G4ParticleTable.cc.

References fParticleMessenger.

Referenced by G4RunManager::~G4RunManager().

275 {
276  if (fParticleMessenger!= 0) {
277  //UI messenger
278  delete fParticleMessenger;
280  }
281 
282 }
static G4ThreadLocal G4ParticleMessenger * fParticleMessenger
void G4ParticleTable::DumpTable ( const G4String particle_name = "ALL")

Definition at line 666 of file G4ParticleTable.cc.

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

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

667 {
668  CheckReadiness();
669  if (( particle_name == "ALL" ) || (particle_name == "all")){
670  // dump all particles
671  G4PTblDicIterator *piter = fIterator;
672  piter -> reset();
673  while( (*piter)() ){
674  (piter->value())->DumpTable();
675  }
676  } else {
677  // dump only particle with name of particle_name
679  ptr = FindParticle(particle_name);
680  if ( ptr != 0) {
681  ptr->DumpTable();
682  } else {
683 #ifdef G4VERBOSE
684  if (verboseLevel>1) {
685  G4cout << " G4ParticleTable::DumpTable : "
686  << particle_name << " does not exist in ParticleTable " <<G4endl;
687  }
688 #endif
689  }
690  }
691 }
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
void DumpTable(const G4String &particle_name="ALL")
G4ParticleTableIterator< G4String, G4ParticleDefinition * > G4PTblDicIterator
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
static G4ThreadLocal G4PTblDicIterator * fIterator
G4int G4ParticleTable::entries ( ) const
G4ParticleDefinition* G4ParticleTable::FindAntiParticle ( G4int  PDGEncoding)
G4ParticleDefinition* G4ParticleTable::FindAntiParticle ( const G4String particle_name)
G4ParticleDefinition* G4ParticleTable::FindAntiParticle ( const G4ParticleDefinition particle)
G4ParticleDefinition * G4ParticleTable::FindIon ( G4int  atomicNumber,
G4int  atomicMass,
G4double  excitationEnergy 
)

Definition at line 524 of file G4ParticleTable.cc.

References G4IonTable::FindIon(), fIonTable, G4Exception(), and JustWarning.

Referenced by G4LENDModel::ApplyYourself(), and G4LENDElastic::ApplyYourself().

525 {
526  G4Exception("G4ParticleTable::FindIon()","PART11117",JustWarning,
527  "This method is obsolete and will be dropped from v10.0. Use G4IonTable::FindIon().");
528  CheckReadiness();
529  if (Z<=0) return 0;
530  if (A<Z) return 0;
531  if (E<0.) return 0;
532  return fIonTable->FindIon(Z, A, E);
533 }
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
G4ParticleDefinition * FindIon(G4int Z, G4int A, G4int lvl=0)
Definition: G4IonTable.cc:754
static G4IonTable * fIonTable
G4ParticleDefinition * G4ParticleTable::FindIon ( G4int  atomicNumber,
G4int  atomicMass,
G4int  numberOfLambda,
G4double  excitationEnergy 
)

Definition at line 536 of file G4ParticleTable.cc.

References G4IonTable::FindIon(), fIonTable, G4Exception(), and JustWarning.

537 {
538  G4Exception("G4ParticleTable::FindIon()","PART11117",JustWarning,
539  "This method is obsolete and will be dropped from v10.0. Use G4IonTable::FindIon().");
540  CheckReadiness();
541  if (Z<=0) return 0;
542  if (A-L<Z) return 0;
543  if (L<0) return 0;
544  if (E<0.) return 0;
545  return fIonTable->FindIon(Z, A, L, E);
546 }
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
G4ParticleDefinition * FindIon(G4int Z, G4int A, G4int lvl=0)
Definition: G4IonTable.cc:754
static G4IonTable * fIonTable
G4ParticleDefinition * G4ParticleTable::FindIon ( G4int  atomicNumber,
G4int  atomicMass,
G4int  dummy1,
G4int  dummy2 
)

Definition at line 477 of file G4ParticleTable.cc.

References fIonTable, G4Exception(), G4IonTable::GetIon(), and JustWarning.

478 {
479  G4Exception("G4ParticleTable::FindIon()","PART11117",JustWarning,
480  "This method is obsolete and will be dropped from v10.0. Use G4IonTable::FindIon().");
481  CheckReadiness();
482  if (Z<=0) return 0;
483  if (A<Z) return 0;
484  return fIonTable->GetIon(Z, A);
485 }
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
Definition: G4IonTable.cc:449
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
static G4IonTable * fIonTable
G4ParticleDefinition * G4ParticleTable::FindParticle ( G4int  PDGEncoding)

Definition at line 620 of file G4ParticleTable.cc.

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

Referenced by G4SDParticleFilter::add(), G4VHadronPhysics::AddElasticCrossSection(), G4VHadronPhysics::AddInelasticCrossSection(), GB02BOptrMultiParticleForceCollision::AddParticle(), GB01BOptrMultiParticleChangeCrossSection::AddParticle(), G4MonopoleTransportation::AlongStepDoIt(), G4ITTransportation::AlongStepDoIt(), B1PrimaryGeneratorAction::B1PrimaryGeneratorAction(), B2PrimaryGeneratorAction::B2PrimaryGeneratorAction(), B3PrimaryGeneratorAction::B3PrimaryGeneratorAction(), B4PrimaryGeneratorAction::B4PrimaryGeneratorAction(), B5PrimaryGeneratorAction::B5PrimaryGeneratorAction(), G4ErrorTrajState::BuildCharge(), G4VUserPhysicsList::BuildPhysicsTable(), CCalPrimaryGeneratorAction::CCalPrimaryGeneratorAction(), G4PrimaryTransformer::CheckUnknown(), G4PionDecayMakeSpin::DaughterPolarization(), G4PhononLong::Definition(), G4PhononTransSlow::Definition(), G4PhononTransFast::Definition(), G4BcMesonPlus::Definition(), G4BcMesonMinus::Definition(), G4Upsilon::Definition(), G4EtaPrime::Definition(), G4AntiSigmaZero::Definition(), G4OH::Definition(), G4OmegabMinus::Definition(), G4OmegacZero::Definition(), G4OmegaMinus::Definition(), G4AntiSigmaPlus::Definition(), G4AntiXicPlus::Definition(), G4AntiXicZero::Definition(), G4AntiXiMinus::Definition(), G4PionMinus::Definition(), G4AntiXiZero::Definition(), G4PionPlus::Definition(), G4PionZero::Definition(), G4BMesonMinus::Definition(), G4BMesonPlus::Definition(), G4BMesonZero::Definition(), G4BsMesonZero::Definition(), G4H2::Definition(), G4AntiBMesonZero::Definition(), G4AntiBsMesonZero::Definition(), G4AntiDMesonZero::Definition(), G4DMesonMinus::Definition(), G4SigmacPlus::Definition(), G4DMesonPlus::Definition(), G4SigmacPlusPlus::Definition(), G4SigmacZero::Definition(), G4DMesonZero::Definition(), G4SigmaMinus::Definition(), G4SigmaPlus::Definition(), G4DsMesonPlus::Definition(), G4SigmaZero::Definition(), G4TauMinus::Definition(), G4TauPlus::Definition(), G4DsMesonMinus::Definition(), G4Electron::Definition(), G4AntiKaonZero::Definition(), G4Electron_aq::Definition(), G4AntiLambda::Definition(), G4AntiLambdacPlus::Definition(), G4Eta::Definition(), G4AntiNeutrinoE::Definition(), G4XicPlus::Definition(), G4XicZero::Definition(), G4XiMinus::Definition(), G4XiZero::Definition(), G4AntiNeutrinoTau::Definition(), G4AntiNeutrinoMu::Definition(), G4AntiNeutron::Definition(), G4AntiOmegabMinus::Definition(), G4H2O::Definition(), G4H2O2::Definition(), G4H3O::Definition(), G4AntiOmegacZero::Definition(), G4Hydrogen::Definition(), G4AntiOmegaMinus::Definition(), G4AntiProton::Definition(), G4JPsi::Definition(), G4KaonMinus::Definition(), G4KaonPlus::Definition(), G4KaonZero::Definition(), G4KaonZeroLong::Definition(), G4KaonZeroShort::Definition(), G4Lambda::Definition(), G4AntiSigmacPlus::Definition(), G4LambdacPlus::Definition(), G4AntiSigmacPlusPlus::Definition(), G4MuonMinus::Definition(), G4AntiSigmacZero::Definition(), G4MuonPlus::Definition(), G4NeutrinoE::Definition(), G4AntiSigmaMinus::Definition(), G4NeutrinoMu::Definition(), G4NeutrinoTau::Definition(), G4Neutron::Definition(), G4AntiTriton::Definition(), G4AntiXibMinus::Definition(), G4AntiXibZero::Definition(), G4Alpha::Definition(), G4XibZero::Definition(), G4Positron::Definition(), G4AntiAlpha::Definition(), G4Proton::Definition(), G4AntiHe3::Definition(), G4Deuteron::Definition(), G4SigmabMinus::Definition(), G4SigmabPlus::Definition(), G4SigmabZero::Definition(), G4AntiDeuteron::Definition(), G4Triton::Definition(), G4Etac::Definition(), G4XibMinus::Definition(), G4He3::Definition(), G4AntiSigmabMinus::Definition(), G4AntiSigmabPlus::Definition(), G4AntiSigmabZero::Definition(), G4AntiLambdab::Definition(), G4Lambdab::Definition(), G4OpticalPhoton::Definition(), G4AdjointTriton::Definition(), G4ChargedGeantino::Definition(), G4UnknownParticle::Definition(), G4Gamma::Definition(), G4Geantino::Definition(), G4AdjointAlpha::Definition(), G4AdjointDeuteron::Definition(), G4AdjointHe3::Definition(), G4AdjointPositron::Definition(), G4AdjointProton::Definition(), G4AdjointElectron::Definition(), G4AdjointGenericIon::Definition(), G4GenericIon::Definition(), G4AdjointGamma::Definition(), DumpTable(), Em10PrimaryGeneratorAction::Em10PrimaryGeneratorAction(), eRositaPrimaryGeneratorAction::eRositaPrimaryGeneratorAction(), G4DiffractiveExcitation::ExciteParticipants(), ExG4PrimaryGeneratorAction01::ExG4PrimaryGeneratorAction01(), ExN02PrimaryGeneratorAction::ExN02PrimaryGeneratorAction(), ExP01PrimaryGeneratorAction::ExP01PrimaryGeneratorAction(), ExP02PrimaryGeneratorAction::ExP02PrimaryGeneratorAction(), ExTGPrimaryGeneratorAction::ExTGPrimaryGeneratorAction(), F01PrimaryGeneratorAction::F01PrimaryGeneratorAction(), F02PrimaryGeneratorAction::F02PrimaryGeneratorAction(), F03PrimaryGeneratorAction::F03PrimaryGeneratorAction(), F05PrimaryGeneratorAction::F05PrimaryGeneratorAction(), F06PrimaryGeneratorAction::F06PrimaryGeneratorAction(), FCALPrimaryGeneratorAction::FCALPrimaryGeneratorAction(), G4VDecayChannel::FillDaughters(), G4VDecayChannel::FillParent(), G4VHadronPhysics::FindElasticProcess(), G4VHadronPhysics::FindInelasticProcess(), G4VLongitudinalStringDecay::FindParticle(), FindParticle(), G4EmCalculator::FindParticle(), G01PrimaryGeneratorAction::G01PrimaryGeneratorAction(), G02PrimaryGeneratorAction::G02PrimaryGeneratorAction(), G03PrimaryGeneratorAction::G03PrimaryGeneratorAction(), G04PrimaryGeneratorAction::G04PrimaryGeneratorAction(), G4BOptrForceCollision::G4BOptrForceCollision(), G4CollisionMesonBaryonToResonance::G4CollisionMesonBaryonToResonance(), G4Parton::G4Parton(), G4PrimaryParticle::G4PrimaryParticle(), G4ResonanceNames::G4ResonanceNames(), G4RToEConvForElectron::G4RToEConvForElectron(), G4RToEConvForGamma::G4RToEConvForGamma(), G4RToEConvForPositron::G4RToEConvForPositron(), G4RToEConvForProton::G4RToEConvForProton(), G4SDParticleFilter::G4SDParticleFilter(), G4Track::G4Track(), GammaRayTelPrimaryGeneratorAction::GammaRayTelPrimaryGeneratorAction(), GB01BOptrChangeCrossSection::GB01BOptrChangeCrossSection(), GB01PrimaryGeneratorAction::GB01PrimaryGeneratorAction(), GB02PrimaryGeneratorAction::GB02PrimaryGeneratorAction(), DicomPrimaryGeneratorAction::GeneratePrimaries(), XrayFluoPrimaryGeneratorAction::GeneratePrimaries(), G4VUserPhysicsList::GetApplyCuts(), G4PrimaryTransformer::GetDefinition(), G4DynamicParticle::GetElectronMass(), G4HyperNucleiProperties::GetNuclearMass(), G4NucleiProperties::GetNuclearMass(), G4ParticlePropertyTable::GetParticleProperty(), PhysicsList::GetRange(), G4ErrorPropagator::InitG4Track(), G4INCL::ParticleTable::initialize(), CML2PrimaryGenerationAction::inizialize(), Insert(), G4ResonanceNames::MinMass(), G4CollisionComposite::Resolve::operator()(), OpNovicePrimaryGeneratorAction::OpNovicePrimaryGeneratorAction(), Par01PrimaryGeneratorAction::Par01PrimaryGeneratorAction(), G4AdjointTrackingAction::PostUserTrackingAction(), G4VMultipleScattering::PreparePhysicsTable(), G4VEnergyLossProcess::PreparePhysicsTable(), G4TextPPReporter::Print(), G4HtmlPPReporter::Print(), PurgMagPrimaryGeneratorAction::PurgMagPrimaryGeneratorAction(), RE01PrimaryGeneratorAction::RE01PrimaryGeneratorAction(), RE02PrimaryGeneratorAction::RE02PrimaryGeneratorAction(), RE03PrimaryGeneratorAction::RE03PrimaryGeneratorAction(), RE04PrimaryGeneratorAction::RE04PrimaryGeneratorAction(), RE05PrimaryGeneratorAction::RE05PrimaryGeneratorAction(), RE06PrimaryGeneratorAction::RE06PrimaryGeneratorAction(), G4AdjointSimManager::RegisterAtEndOfAdjointTrack(), G4VUserPhysicsList::SetApplyCuts(), PrimaryGeneratorAction::SetDefaultKinematic(), GammaKnifePrimaryGeneratorAction::SetDefaultPrimaryParticle(), StackingAction::SetKill(), F04PhysicsListMessenger::SetNewValue(), G4ParticleGunMessenger::SetNewValue(), WLSPhysicsListMessenger::SetNewValue(), G4ProcessTableMessenger::SetNewValue(), G4ParticleMessenger::SetNewValue(), G4GeneralParticleSourceMessenger::SetNewValue(), G4PSNofSecondary::SetParticle(), G4ParticlePropertyTable::SetParticleProperty(), G4PrimaryParticle::SetPDGcode(), G4RTPrimaryGeneratorAction::SetUp(), G4RayShooter::Shoot(), UltraPrimaryGeneratorAction::UltraPrimaryGeneratorAction(), G4AdjointPrimaryGeneratorAction::UpdateListOfPrimaryParticles(), XrayFluoMercuryPrimaryGeneratorAction::XrayFluoMercuryPrimaryGeneratorAction(), XrayFluoPlanePrimaryGeneratorAction::XrayFluoPlanePrimaryGeneratorAction(), and XrayFluoPrimaryGeneratorAction::XrayFluoPrimaryGeneratorAction().

621 {
622  CheckReadiness();
623  // check aPDGEncoding is valid
624  if (aPDGEncoding == 0){
625 #ifdef G4VERBOSE
626  if (verboseLevel>1){
627  G4cout << "PDGEncoding [" << aPDGEncoding << "] is not valid " << G4endl;
628  }
629 #endif
630  return 0;
631  }
632 
634  G4ParticleDefinition* particle =0;
635 
636  G4PTblEncodingDictionary::iterator it = pedic->find(aPDGEncoding );
637  if (it != pedic->end()) {
638  particle = (*it).second;
639  }
640 
641 #ifdef G4MULTITHREADED
642  if(particle == 0 && G4Threading::IsWorkerThread())
643  {
644  G4MUTEXLOCK(&G4ParticleTable::particleTableMutex);
645  G4PTblEncodingDictionary::iterator its = fEncodingDictionaryShadow->find(aPDGEncoding);
646  if(its!=fEncodingDictionaryShadow->end())
647  {
648  particle = (*its).second;
649  fEncodingDictionary->insert(*its);
650  G4String key = GetKey(particle);
651  fDictionary->insert( std::pair<G4String, G4ParticleDefinition*>(key,particle) );
652  }
653  G4MUTEXUNLOCK(&G4ParticleTable::particleTableMutex);
654  }
655 #endif
656 
657 #ifdef G4VERBOSE
658  if ((particle == 0) && (verboseLevel>1) ){
659  G4cout << "CODE:" << aPDGEncoding << " does not exist in ParticleTable " << G4endl;
660  }
661 #endif
662  return particle;
663 }
#define G4MUTEXUNLOCK
Definition: G4Threading.hh:162
const G4String & GetKey(const G4ParticleDefinition *particle) const
G4ParticleTableIterator< G4int, G4ParticleDefinition * >::Map G4PTblEncodingDictionary
static G4PTblEncodingDictionary * fEncodingDictionaryShadow
G4GLOB_DLL std::ostream G4cout
#define G4MUTEXLOCK
Definition: G4Threading.hh:161
G4bool IsWorkerThread()
Definition: G4Threading.cc:104
static G4ThreadLocal G4PTblDictionary * fDictionary
#define G4endl
Definition: G4ios.hh:61
static G4ThreadLocal G4PTblEncodingDictionary * fEncodingDictionary
G4ParticleDefinition * G4ParticleTable::FindParticle ( const G4String particle_name)

Definition at line 583 of file G4ParticleTable.cc.

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

584 {
585  G4PTblDictionary::iterator it = fDictionary->find(particle_name);
586  if (it != fDictionary->end()) {
587  return (*it).second;
588  } else {
589 #ifdef G4MULTITHREADED
590  G4ParticleDefinition* ptcl = 0;
592  {
593  G4MUTEXLOCK(&G4ParticleTable::particleTableMutex);
594  G4PTblDictionary::iterator its = fDictionaryShadow->find(particle_name);
595  if(its != fDictionaryShadow->end())
596  {
597  fDictionary->insert(*its);
598  ptcl = (*its).second;
599  G4int code = ptcl->GetPDGEncoding();
600  if(code!=0) fEncodingDictionary->insert(std::pair<G4int, G4ParticleDefinition*>(code,ptcl) );
601  }
602  G4MUTEXUNLOCK(&G4ParticleTable::particleTableMutex);
603  }
604  return ptcl;
605 #else
606  return 0;
607 #endif
608  }
609 }
#define G4MUTEXUNLOCK
Definition: G4Threading.hh:162
int G4int
Definition: G4Types.hh:78
#define G4MUTEXLOCK
Definition: G4Threading.hh:161
G4bool IsWorkerThread()
Definition: G4Threading.cc:104
Definition: inftrees.h:24
static G4ThreadLocal G4PTblDictionary * fDictionary
static G4ThreadLocal G4PTblEncodingDictionary * fEncodingDictionary
static G4PTblDictionary * fDictionaryShadow
G4ParticleDefinition * G4ParticleTable::FindParticle ( const G4ParticleDefinition particle)

Definition at line 612 of file G4ParticleTable.cc.

References FindParticle(), and GetKey().

613 {
614  CheckReadiness();
615  G4String key = GetKey(particle);
616  return FindParticle(key);
617 }
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
const G4String & GetKey(const G4ParticleDefinition *particle) const
const G4ParticleTable::G4PTblDictionary * G4ParticleTable::GetDictionary ( ) const
protected

Definition at line 717 of file G4ParticleTable.cc.

References fDictionary.

718 {
719  return fDictionary;
720 }
static G4ThreadLocal G4PTblDictionary * fDictionary
const G4ParticleTable::G4PTblEncodingDictionary * G4ParticleTable::GetEncodingDictionary ( ) const
protected

Definition at line 727 of file G4ParticleTable.cc.

References fEncodingDictionary.

728 {
729  return fEncodingDictionary;
730 }
static G4ThreadLocal G4PTblEncodingDictionary * fEncodingDictionary
G4ParticleDefinition* G4ParticleTable::GetGenericIon ( ) const
G4ParticleDefinition * G4ParticleTable::GetIon ( G4int  atomicNumber,
G4int  atomicMass,
G4double  excitationEnergy 
)

Definition at line 488 of file G4ParticleTable.cc.

References fIonTable, G4Exception(), G4IonTable::GetIon(), and JustWarning.

Referenced by export_G4ParticleTable(), G4IonCoulombScatteringModel::SampleSecondaries(), and G4ScreenedCoulombCrossSection::SelectRandomUnweightedTarget().

489 {
490  G4Exception("G4ParticleTable::FindIon()","PART11117",JustWarning,
491  "This method is obsolete and will be dropped from v10.0. Use G4IonTable::FindIon().");
492  CheckReadiness();
493  if (Z<=0) return 0;
494  if (A<Z) return 0;
495  if (E<0.) return 0;
496  return fIonTable->GetIon(Z, A, E);
497 }
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
Definition: G4IonTable.cc:449
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
static G4IonTable * fIonTable
G4ParticleDefinition * G4ParticleTable::GetIon ( G4int  atomicNumber,
G4int  atomicMass,
G4int  numberOfLambda,
G4double  excitationEnergy 
)

Definition at line 500 of file G4ParticleTable.cc.

References fIonTable, G4Exception(), G4IonTable::GetIon(), and JustWarning.

501 {
502  G4Exception("G4ParticleTable::GetIon()","PART11117",JustWarning,
503  "This method is obsolete and will be dropped from v10.0. Use G4IonTable::FindIon().");
504  CheckReadiness();
505  if (Z<=0) return 0;
506  if (A-L<Z) return 0;
507  if (L<0) return 0;
508  if (E<0.) return 0;
509  return fIonTable->GetIon(Z, A, L, E);
510 }
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
Definition: G4IonTable.cc:449
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
static G4IonTable * fIonTable
G4ParticleDefinition * G4ParticleTable::GetIon ( G4int  atomicNumber,
G4int  atomicMass,
G4int  level 
)

Definition at line 512 of file G4ParticleTable.cc.

References fIonTable, G4Exception(), G4IonTable::GetIon(), and JustWarning.

513 {
514  G4Exception("G4ParticleTable::GetIon()","PART11117",JustWarning,
515  "This method is obsolete and will be dropped from v10.0. Use G4IonTable::FindIon().");
516  CheckReadiness();
517  if (Z <= 0) return 0;
518  if (A < Z) return 0;
519  if (level < 0) return 0;
520  return fIonTable->GetIon(Z, A, level);
521 }
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
Definition: G4IonTable.cc:449
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
static G4IonTable * fIonTable
G4IonTable * G4ParticleTable::GetIonTable ( ) const

Definition at line 712 of file G4ParticleTable.cc.

References fIonTable.

Referenced by G4RadioactiveDecay::AddDecayRateTable(), G4BinaryLightIonReaction::ApplyYourself(), G4HadronElastic::ApplyYourself(), G4ChargeExchange::ApplyYourself(), G4TheoFSGenerator::ApplyYourself(), G4WilsonAblationModel::BreakItUp(), G4CompetitiveFission::BreakUp(), DMXPhysicsList::ConstructGeneral(), G4NuclearDecayChannel::DecayIt(), G4RadioactiveDecay::DecayIt(), G4ParticleDefinition::DumpTable(), G4eCoulombScatteringModel::G4eCoulombScatteringModel(), G4EmCalculator::G4EmCalculator(), G4EmCorrections::G4EmCorrections(), G4eSingleCoulombScatteringModel::G4eSingleCoulombScatteringModel(), G4Evaporation::G4Evaporation(), G4ExcitationHandler::G4ExcitationHandler(), G4hCoulombScatteringModel::G4hCoulombScatteringModel(), G4NeutronRadCapture::G4NeutronRadCapture(), G4ParticleDefinition::G4ParticleDefinition(), G4RadioactiveDecay::G4RadioactiveDecay(), G4GGNuclNuclCrossSection::GetCoulombBarier(), G4ComponentGGNuclNuclXsc::GetCoulombBarier(), G4TripathiCrossSection::GetElementCrossSection(), G4NuclNuclDiffuseElastic::GetInvCoulombElasticXsc(), G4DiffuseElastic::GetInvCoulombElasticXsc(), G4NuclNuclDiffuseElastic::GetInvElasticSumXsc(), G4DiffuseElastic::GetInvElasticSumXsc(), G4NuclNuclDiffuseElastic::GetInvElasticXsc(), G4DiffuseElastic::GetInvElasticXsc(), G4IonTable::GetIonTable(), G4StatMFFragment::GetNuclearMass(), G4FTFModel::Init(), G4INCL::ParticleTable::initialize(), G4RunManagerKernel::InitializePhysics(), G4InuclNuclei::makeDefinition(), G4QuasiElasticChannel::Scatter(), G4VPartonStringModel::Scatter(), G4ParticleMessenger::SetNewValue(), and G4RunManagerKernel::SetupPhysics().

713 {
714  return fIonTable;
715 }
static G4IonTable * fIonTable
G4ParticleTable::G4PTblDicIterator * G4ParticleTable::GetIterator ( ) const
const G4String& G4ParticleTable::GetKey ( const G4ParticleDefinition particle) const
protected
G4ParticleDefinition * G4ParticleTable::GetParticle ( G4int  index) const

Definition at line 550 of file G4ParticleTable.cc.

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

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

551 {
552  CheckReadiness();
553  if ( (index >=0) && (index < entries()) ) {
554  G4PTblDicIterator *piter = fIterator;
555  piter -> reset(false);
556  G4int counter = 0;
557  while( (*piter)() ){
558  if ( counter == index ) return piter->value();
559  counter++;
560  }
561  }
562 #ifdef G4VERBOSE
563  if (verboseLevel>1){
564  G4cout << " G4ParticleTable::GetParticle"
565  << " invalid index (=" << index << ")" << G4endl;
566  }
567 #endif
568  return 0;
569 }
G4ParticleTableIterator< G4String, G4ParticleDefinition * > G4PTblDicIterator
int G4int
Definition: G4Types.hh:78
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
G4int entries() const
static G4ThreadLocal G4PTblDicIterator * fIterator
const G4String & G4ParticleTable::GetParticleName ( G4int  index) const

Definition at line 572 of file G4ParticleTable.cc.

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

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

573 {
574  G4ParticleDefinition* aParticle =GetParticle(index);
575  if (aParticle != 0) {
576  return aParticle->GetParticleName();
577  } else {
578  return noName;
579  }
580 }
const G4String & GetParticleName() const
G4ParticleDefinition * GetParticle(G4int index) const
G4ParticleTable * G4ParticleTable::GetParticleTable ( )
static

Definition at line 95 of file G4ParticleTable.cc.

References fDictionary, fgParticleTable, and WorkerG4ParticleTable().

Referenced by G4ITStepProcessor::ActiveOnlyITProcess(), G4SDParticleFilter::add(), G4RadioactiveDecay::AddDecayRateTable(), G4VHadronPhysics::AddElasticCrossSection(), G4VHadronPhysics::AddInelasticCrossSection(), GB02BOptrMultiParticleForceCollision::AddParticle(), GB01BOptrMultiParticleChangeCrossSection::AddParticle(), G4IonTable::AddProcessManager(), G4MonopoleTransportation::AlongStepDoIt(), G4ITTransportation::AlongStepDoIt(), G4BinaryLightIonReaction::ApplyYourself(), G4LENDModel::ApplyYourself(), G4HadronElastic::ApplyYourself(), G4ChargeExchange::ApplyYourself(), G4LENDCapture::ApplyYourself(), G4LENDElastic::ApplyYourself(), G4LENDInelastic::ApplyYourself(), G4LENDFission::ApplyYourself(), G4TheoFSGenerator::ApplyYourself(), G4EMDissociation::ApplyYourself(), B1PrimaryGeneratorAction::B1PrimaryGeneratorAction(), B2PrimaryGeneratorAction::B2PrimaryGeneratorAction(), B3PrimaryGeneratorAction::B3PrimaryGeneratorAction(), B4PrimaryGeneratorAction::B4PrimaryGeneratorAction(), B5PrimaryGeneratorAction::B5PrimaryGeneratorAction(), G4WilsonAblationModel::BreakItUp(), G4CompetitiveFission::BreakUp(), G4ErrorTrajState::BuildCharge(), CCalPrimaryGeneratorAction::CCalPrimaryGeneratorAction(), G4IonTable::clear(), G4ExcitedBaryonConstructor::Construct(), G4ExcitedMesonConstructor::Construct(), DMXPhysicsList::ConstructGeneral(), G4WorkerRunManager::ConstructScoringWorlds(), G4RunManager::ConstructScoringWorlds(), G4IonTable::CreateIon(), G4PionDecayMakeSpin::DaughterPolarization(), G4NuclearDecayChannel::DecayIt(), G4RadioactiveDecay::DecayIt(), G4PhononTransSlow::Definition(), G4PhononLong::Definition(), G4PhononTransFast::Definition(), G4UnboundPN::Definition(), G4Dineutron::Definition(), G4Diproton::Definition(), G4Upsilon::Definition(), G4BcMesonMinus::Definition(), G4BcMesonPlus::Definition(), G4EtaPrime::Definition(), G4AntiSigmacPlus::Definition(), G4SigmacPlus::Definition(), G4SigmacPlusPlus::Definition(), G4SigmacZero::Definition(), G4SigmaMinus::Definition(), G4AntiSigmacPlusPlus::Definition(), G4SigmaPlus::Definition(), G4SigmaZero::Definition(), G4TauMinus::Definition(), G4TauPlus::Definition(), G4AntiSigmacZero::Definition(), G4AntiSigmaPlus::Definition(), G4AntiSigmaMinus::Definition(), G4AntiSigmaZero::Definition(), G4AntiXicPlus::Definition(), G4H2::Definition(), G4H2O::Definition(), G4H2O2::Definition(), G4H3O::Definition(), G4AntiXicZero::Definition(), G4AntiXiMinus::Definition(), G4AntiXiZero::Definition(), G4Hydrogen::Definition(), G4XicPlus::Definition(), G4XicZero::Definition(), G4XiMinus::Definition(), G4BMesonMinus::Definition(), G4JPsi::Definition(), G4KaonMinus::Definition(), G4KaonPlus::Definition(), G4BMesonPlus::Definition(), G4KaonZero::Definition(), G4KaonZeroLong::Definition(), G4BMesonZero::Definition(), G4KaonZeroShort::Definition(), G4Lambda::Definition(), G4AntiBMesonZero::Definition(), G4LambdacPlus::Definition(), G4BsMesonZero::Definition(), G4MuonMinus::Definition(), G4MuonPlus::Definition(), G4NeutrinoE::Definition(), G4AntiBsMesonZero::Definition(), G4NeutrinoMu::Definition(), G4NeutrinoTau::Definition(), G4AntiDMesonZero::Definition(), G4AntiKaonZero::Definition(), G4OH::Definition(), G4OmegabMinus::Definition(), G4OmegacZero::Definition(), G4OmegaMinus::Definition(), G4AntiLambda::Definition(), G4AntiLambdacPlus::Definition(), G4DMesonMinus::Definition(), G4XiZero::Definition(), G4AntiNeutrinoE::Definition(), G4DMesonPlus::Definition(), G4PionMinus::Definition(), G4DMesonZero::Definition(), G4PionPlus::Definition(), G4PionZero::Definition(), G4AntiNeutrinoMu::Definition(), G4DsMesonMinus::Definition(), G4DsMesonPlus::Definition(), G4Electron::Definition(), G4Electron_aq::Definition(), G4AntiNeutrinoTau::Definition(), G4AntiNeutron::Definition(), G4AntiOmegabMinus::Definition(), G4AntiOmegacZero::Definition(), G4AntiOmegaMinus::Definition(), G4AntiProton::Definition(), G4Eta::Definition(), G4SigmabPlus::Definition(), G4AntiSigmabZero::Definition(), G4Triton::Definition(), G4AntiTriton::Definition(), G4AntiXibMinus::Definition(), G4He3::Definition(), G4AntiXibZero::Definition(), G4XibMinus::Definition(), G4SigmabZero::Definition(), G4Alpha::Definition(), G4AntiAlpha::Definition(), G4AntiDeuteron::Definition(), G4Neutron::Definition(), G4AntiHe3::Definition(), G4Deuteron::Definition(), G4XibZero::Definition(), G4Positron::Definition(), G4Proton::Definition(), G4AntiSigmabMinus::Definition(), G4Etac::Definition(), G4SigmabMinus::Definition(), G4AntiSigmabPlus::Definition(), G4Lambdab::Definition(), G4AntiLambdab::Definition(), G4AdjointDeuteron::Definition(), G4Gamma::Definition(), G4Geantino::Definition(), G4UnknownParticle::Definition(), G4AdjointHe3::Definition(), G4AdjointTriton::Definition(), G4ChargedGeantino::Definition(), G4OpticalPhoton::Definition(), G4AdjointAlpha::Definition(), G4AdjointElectron::Definition(), G4AdjointGenericIon::Definition(), G4AdjointPositron::Definition(), G4AdjointProton::Definition(), G4GenericIon::Definition(), G4AdjointGamma::Definition(), DMXParticleSourceMessenger::DMXParticleSourceMessenger(), Em10PrimaryGeneratorAction::Em10PrimaryGeneratorAction(), eRositaPrimaryGeneratorAction::eRositaPrimaryGeneratorAction(), G4DiffractiveExcitation::ExciteParticipants(), ExG4PrimaryGeneratorAction01::ExG4PrimaryGeneratorAction01(), ExN02PrimaryGeneratorAction::ExN02PrimaryGeneratorAction(), ExP01PrimaryGeneratorAction::ExP01PrimaryGeneratorAction(), ExP02PrimaryGeneratorAction::ExP02PrimaryGeneratorAction(), export_G4ParticleTable(), ExTGPrimaryGeneratorAction::ExTGPrimaryGeneratorAction(), F01PrimaryGeneratorAction::F01PrimaryGeneratorAction(), F02PrimaryGeneratorAction::F02PrimaryGeneratorAction(), F03PrimaryGeneratorAction::F03PrimaryGeneratorAction(), F04PrimaryGeneratorAction::F04PrimaryGeneratorAction(), F05PrimaryGeneratorAction::F05PrimaryGeneratorAction(), F06PrimaryGeneratorAction::F06PrimaryGeneratorAction(), FCALPrimaryGeneratorAction::FCALPrimaryGeneratorAction(), G4VParticlePropertyReporter::FillList(), G4BaryonSplitter::FindDiquark(), G4VHadronPhysics::FindElasticProcess(), G4VHadronPhysics::FindInelasticProcess(), G4VLongitudinalStringDecay::FindParticle(), G4EmCalculator::FindParticle(), G01PrimaryGeneratorAction::G01PrimaryGeneratorAction(), G02PrimaryGeneratorAction::G02PrimaryGeneratorAction(), G03PrimaryGeneratorAction::G03PrimaryGeneratorAction(), G04PrimaryGeneratorAction::G04PrimaryGeneratorAction(), G4BaryonSplitter::G4BaryonSplitter(), G4BOptrForceCollision::G4BOptrForceCollision(), G4CollisionMesonBaryonToResonance::G4CollisionMesonBaryonToResonance(), G4DecayTableMessenger::G4DecayTableMessenger(), G4eCoulombScatteringModel::G4eCoulombScatteringModel(), G4EmCalculator::G4EmCalculator(), G4EmCorrections::G4EmCorrections(), G4ErrorTrackLengthTarget::G4ErrorTrackLengthTarget(), G4eSingleCoulombScatteringModel::G4eSingleCoulombScatteringModel(), G4Evaporation::G4Evaporation(), G4ExcitationHandler::G4ExcitationHandler(), G4GeneralParticleSourceMessenger::G4GeneralParticleSourceMessenger(), G4hCoulombScatteringModel::G4hCoulombScatteringModel(), G4IonCoulombScatteringModel::G4IonCoulombScatteringModel(), G4IsomerTable::G4IsomerTable(), G4NeutronRadCapture::G4NeutronRadCapture(), G4ParticleDefinition::G4ParticleDefinition(), G4ParticleGunMessenger::G4ParticleGunMessenger(), G4ParticleMessenger::G4ParticleMessenger(), G4ParticlePropertyMessenger::G4ParticlePropertyMessenger(), G4ParticlePropertyTable::G4ParticlePropertyTable(), G4ParticleTypeConverter::G4ParticleTypeConverter(), G4Parton::G4Parton(), G4PrimaryParticle::G4PrimaryParticle(), G4PrimaryTransformer::G4PrimaryTransformer(), G4ProcessManagerMessenger::G4ProcessManagerMessenger(), G4RadioactiveDecay::G4RadioactiveDecay(), G4ResonanceNames::G4ResonanceNames(), G4RToEConvForElectron::G4RToEConvForElectron(), G4RToEConvForGamma::G4RToEConvForGamma(), G4RToEConvForPositron::G4RToEConvForPositron(), G4RToEConvForProton::G4RToEConvForProton(), G4RunManager::G4RunManager(), G4RunManagerKernel::G4RunManagerKernel(), G4SDParticleFilter::G4SDParticleFilter(), G4SPBaryon::G4SPBaryon(), G4Track::G4Track(), G4UserEventAction::G4UserEventAction(), G4UserRunAction::G4UserRunAction(), G4UserStackingAction::G4UserStackingAction(), G4UserSteppingAction::G4UserSteppingAction(), G4UserTrackingAction::G4UserTrackingAction(), G4VDecayChannel::G4VDecayChannel(), G4VPhysicsConstructor::G4VPhysicsConstructor(), G4VUserPhysicsList::G4VUserPhysicsList(), G4VUserPrimaryGeneratorAction::G4VUserPrimaryGeneratorAction(), G4WorkerRunManager::G4WorkerRunManager(), GammaRayTelPrimaryGeneratorAction::GammaRayTelPrimaryGeneratorAction(), GB01BOptrChangeCrossSection::GB01BOptrChangeCrossSection(), GB01PrimaryGeneratorAction::GB01PrimaryGeneratorAction(), GB02PrimaryGeneratorAction::GB02PrimaryGeneratorAction(), DicomPrimaryGeneratorAction::GeneratePrimaries(), XrayFluoPrimaryGeneratorAction::GeneratePrimaries(), G4HyperNucleiProperties::GetAtomicMass(), G4NucleiProperties::GetBindingEnergy(), G4GGNuclNuclCrossSection::GetCoulombBarier(), G4ComponentGGNuclNuclXsc::GetCoulombBarier(), G4ProcessTableMessenger::GetCurrentValue(), G4UserPhysicsListMessenger::GetCurrentValue(), G4DynamicParticle::GetElectronMass(), G4TripathiCrossSection::GetElementCrossSection(), G4GGNuclNuclCrossSection::GetHadronNucleonXsc(), G4ComponentGGNuclNuclXsc::GetHadronNucleonXsc(), G4GlauberGribovCrossSection::GetHadronNucleonXscNS(), G4ComponentGGHadronNucleusXsc::GetHadronNucleonXscNS(), G4GlauberGribovCrossSection::GetHadronNucleonXscPDG(), G4ComponentGGHadronNucleusXsc::GetHadronNucleonXscPDG(), G4NuclNuclDiffuseElastic::GetInvCoulombElasticXsc(), G4DiffuseElastic::GetInvCoulombElasticXsc(), G4NuclNuclDiffuseElastic::GetInvElasticSumXsc(), G4DiffuseElastic::GetInvElasticSumXsc(), G4NuclNuclDiffuseElastic::GetInvElasticXsc(), G4DiffuseElastic::GetInvElasticXsc(), G4IonTable::GetIonTable(), G4NucleiProperties::GetMassExcess(), G4HyperNucleiProperties::GetNuclearMass(), G4NucleiProperties::GetNuclearMass(), G4StatMFFragment::GetNuclearMass(), F04Trajectory::GetParticleDefinition(), WLSTrajectory::GetParticleDefinition(), G4SmoothTrajectory::GetParticleDefinition(), G4Trajectory::GetParticleDefinition(), RE04Trajectory::GetParticleDefinition(), getParticleTable(), PhysicsList::GetRange(), G4BaryonSplitter::GetSPBaryon(), G4IonTable::GetVerboseLevel(), G4FTFModel::Init(), lightions::Init(), antilightions::Init(), G4ErrorPropagator::InitG4Track(), G4INCL::ParticleTable::initialize(), G4VPCData::initialize(), G4VUPLData::initialize(), G4RunManagerKernel::InitializePhysics(), G4VUserPhysicsList::InitializeProcessManager(), CML2PrimaryGenerationAction::inizialize(), G4EMDissociationCrossSection::IsElementApplicable(), G4NucleiProperties::IsInStableTable(), G4FastSimulationManager::ListModels(), LXePrimaryGeneratorAction::LXePrimaryGeneratorAction(), G4InuclNuclei::makeDefinition(), G4ResonanceNames::MinMass(), G4CollisionComposite::Resolve::operator()(), G4VDecayChannel::operator=(), OpNovicePrimaryGeneratorAction::OpNovicePrimaryGeneratorAction(), PyG4ParticleList::p_begin(), PyG4ParticleList::p_end(), Par01PrimaryGeneratorAction::Par01PrimaryGeneratorAction(), G4AdjointTrackingAction::PostUserTrackingAction(), G4VMultipleScattering::PreparePhysicsTable(), G4VEnergyLossProcess::PreparePhysicsTable(), G4TextPPReporter::Print(), G4HtmlPPReporter::Print(), PurgMagPrimaryGeneratorAction::PurgMagPrimaryGeneratorAction(), G4StackManager::PushOneTrack(), RE01PrimaryGeneratorAction::RE01PrimaryGeneratorAction(), RE02PrimaryGeneratorAction::RE02PrimaryGeneratorAction(), RE03PrimaryGeneratorAction::RE03PrimaryGeneratorAction(), RE04PrimaryGeneratorAction::RE04PrimaryGeneratorAction(), RE05PrimaryGeneratorAction::RE05PrimaryGeneratorAction(), RE06PrimaryGeneratorAction::RE06PrimaryGeneratorAction(), G4AdjointSimManager::RegisterAtEndOfAdjointTrack(), G4IonTable::Remove(), G4TextPPRetriever::Retrieve(), G4QuasiElasticChannel::Scatter(), G4VPartonStringModel::Scatter(), G4ScreenedCoulombCrossSection::SelectRandomUnweightedTarget(), PrimaryGeneratorAction::SetDefaultKinematic(), GammaKnifePrimaryGeneratorAction::SetDefaultPrimaryParticle(), StackingAction::SetKill(), F04PhysicsListMessenger::SetNewValue(), G4FastSimulationMessenger::SetNewValue(), WLSPhysicsListMessenger::SetNewValue(), CexmcParticleGunMessenger::SetNewValue(), G4ProcessTableMessenger::SetNewValue(), G4UserPhysicsListMessenger::SetNewValue(), G4PSNofSecondary::SetParticle(), pyMedicalBeam::SetParticleByName(), pyG4ParticleGun::SetParticleByName(), G4PrimaryParticle::SetPDGcode(), G4RunManagerKernel::SetPhysics(), G4RTPrimaryGeneratorAction::SetUp(), G4MTRunManagerKernel::SetUpDecayChannels(), G4RunManagerKernel::SetupPhysics(), G4WorkerRunManagerKernel::SetupShadowProcess(), G4RunManagerKernel::SetupShadowProcess(), G4RayShooter::Shoot(), G4GlobalFastSimulationManager::ShowSetup(), G4BaryonSplitter::SplitBarion(), UltraPrimaryGeneratorAction::UltraPrimaryGeneratorAction(), G4ProductionCutsTable::UpdateCoupleTable(), G4AdjointPrimaryGeneratorAction::UpdateListOfPrimaryParticles(), XrayFluoMercuryPrimaryGeneratorAction::XrayFluoMercuryPrimaryGeneratorAction(), XrayFluoPlanePrimaryGeneratorAction::XrayFluoPlanePrimaryGeneratorAction(), XrayFluoPrimaryGeneratorAction::XrayFluoPrimaryGeneratorAction(), G4ParticleDefinition::~G4ParticleDefinition(), and G4RunManager::~G4RunManager().

96 {
97  static G4ParticleTable theParticleTable;
98  if (!fgParticleTable){
99  fgParticleTable = &theParticleTable;
100  }
101 
102  // Here we initialize all thread private data members.
103  //
105 
106  return fgParticleTable;
107 }
void WorkerG4ParticleTable()
static G4ThreadLocal G4PTblDictionary * fDictionary
static G4ParticleTable * fgParticleTable
G4bool G4ParticleTable::GetReadiness ( ) const
G4int G4ParticleTable::GetVerboseLevel ( ) const
G4ParticleDefinition * G4ParticleTable::Insert ( G4ParticleDefinition particle)

Definition at line 339 of file G4ParticleTable.cc.

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

Referenced by G4ParticleDefinition::G4ParticleDefinition().

340 {
341 
342  // check particle name
343  if ((particle == 0) || (GetKey(particle).isNull())) {
344  G4Exception("G4ParticleTable::Insert()",
345  "PART121", FatalException,
346  "Particle witnout name can not be registered.");
347 #ifdef G4VERBOSE
348  if (verboseLevel>1){
349  G4cout << "The particle[Addr:" << particle << "] has no name "<< G4endl;
350  }
351 #endif
352  return 0;
353 
354  }else {
355 
356  if (contains(particle)) {
357 #ifdef G4VERBOSE
358  if (verboseLevel>2){
359  FindParticle(particle) -> DumpTable();
360  }
361 #endif
362  G4String msg = "The particle ";
363  msg += particle->GetParticleName();
364  msg += " has already been registered in the Particle Table ";
365  G4Exception("G4ParticleTable::Insert()",
366  "PART122", FatalException,msg);
367 //////////////////// return FindParticle(particle);
368  return particle;
369 
370  } else {
372 
373  // insert into Dictionary
374  pdic->insert( std::pair<G4String, G4ParticleDefinition*>(GetKey(particle), particle) );
375 #ifdef G4MULTITHREADED
377  { fDictionary->insert( std::pair<G4String, G4ParticleDefinition*>(GetKey(particle), particle) ); }
378 #endif
379 
381  // insert into EncodingDictionary
382  G4int code = particle->GetPDGEncoding();
383  if (code !=0 ) {
384  pedic->insert( std::pair<G4int, G4ParticleDefinition*>(code ,particle) );
385 #ifdef G4MULTITHREADED
387  { fEncodingDictionary->insert( std::pair<G4int, G4ParticleDefinition*>(code ,particle) ); }
388 #endif
389  }
390 
391  // insert it in IonTable if "nucleus"
392  if (fIonTable->IsIon(particle) ){
393  fIonTable->Insert(particle);
394  }
395 
396  // set Verbose Level same as ParticleTable
397  particle->SetVerboseLevel(verboseLevel);
398 
399 #ifdef G4VERBOSE
400  if (verboseLevel>3){
401  G4cout << "The particle "<< particle->GetParticleName()
402  << " is inserted in the ParticleTable " << G4endl;
403  }
404 #endif
405 
406  return particle;
407  }
408  }
409 }
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
void DumpTable(const G4String &particle_name="ALL")
const G4String & GetKey(const G4ParticleDefinition *particle) const
G4ParticleTableIterator< G4int, G4ParticleDefinition * >::Map G4PTblEncodingDictionary
static G4bool IsIon(const G4ParticleDefinition *)
Definition: G4IonTable.cc:1044
int G4int
Definition: G4Types.hh:78
const G4String & GetParticleName() const
void Insert(const G4ParticleDefinition *particle)
Definition: G4IonTable.cc:1260
static G4PTblEncodingDictionary * fEncodingDictionaryShadow
G4GLOB_DLL std::ostream G4cout
void SetVerboseLevel(G4int value)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
G4bool IsWorkerThread()
Definition: G4Threading.cc:104
G4bool contains(const G4ParticleDefinition *particle) const
Definition: inftrees.h:24
static G4ThreadLocal G4PTblDictionary * fDictionary
#define G4endl
Definition: G4ios.hh:61
static G4IonTable * fIonTable
static G4ThreadLocal G4PTblEncodingDictionary * fEncodingDictionary
static G4PTblDictionary * fDictionaryShadow
G4ParticleTableIterator< G4String, G4ParticleDefinition * >::Map G4PTblDictionary
G4ParticleTable & G4ParticleTable::operator= ( const G4ParticleTable right)
protected

Definition at line 251 of file G4ParticleTable.cc.

References FatalException, fDictionary, fIterator, and G4Exception().

252 {
253  if (this != &right) {
254  G4Exception("G4ParticleTable::G4ParticleTable()",
255  "PART001", FatalException,
256  "Illegal call of assignment operator for G4ParticleTable");
257  fDictionary = new G4PTblDictionary(*(right.fDictionary));
259  }
260  return *this;
261 }
G4ParticleTableIterator< G4String, G4ParticleDefinition * > G4PTblDicIterator
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
static G4ThreadLocal G4PTblDictionary * fDictionary
static G4ThreadLocal G4PTblDicIterator * fIterator
G4ParticleTableIterator< G4String, G4ParticleDefinition * >::Map G4PTblDictionary
G4ParticleDefinition * G4ParticleTable::Remove ( G4ParticleDefinition particle)

Definition at line 412 of file G4ParticleTable.cc.

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

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

413 {
414  if(!particle) return 0;
415 #ifdef G4MULTITHREADED
418  ed << "Request of removing " << particle->GetParticleName()
419  << " is ignored as it is invoked from a worker thread.";
420  G4Exception("G4ParticleTable::Remove()","PART10117",JustWarning,ed);
421  return 0;
422  }
423 #endif
424  if (readyToUse) {
426  G4ApplicationState currentState = pStateManager->GetCurrentState();
427  if (currentState != G4State_PreInit) {
428  G4String msg = "Request of removing ";
429  msg += particle->GetParticleName();
430  msg += " has No effects other than Pre_Init";
431  G4Exception("G4ParticleTable::Remove()",
432  "PART117", JustWarning, msg);
433  return 0;
434  } else {
435 #ifdef G4VERBOSE
436  if (verboseLevel>0){
437  G4cout << particle->GetParticleName()
438  << " will be removed from the ParticleTable " << G4endl;
439  }
440 #endif
441  }
442  }
443 
444  G4PTblDictionary::iterator it = fDictionaryShadow->find(GetKey(particle));
445  if (it != fDictionaryShadow->end()) {
446  fDictionaryShadow->erase(it);
447  // remove from EncodingDictionary
448  G4int code = particle->GetPDGEncoding();
449  if (code !=0 ) {
451  }
452  } else {
453  return 0;
454  }
455 
456  // remove it from IonTable if "nucleus"
457  if (fIonTable->IsIon(particle) ){
458  fIonTable->Remove(particle);
459  }
460 
461 #ifdef G4VERBOSE
462  if (verboseLevel>3){
463  G4cout << "The particle "<< particle->GetParticleName()
464  << " is removed from the ParticleTable " << G4endl;
465  }
466 #endif
467 
468  return particle;
469 }
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
const G4String & GetKey(const G4ParticleDefinition *particle) const
void Remove(const G4ParticleDefinition *particle)
Definition: G4IonTable.cc:1301
static G4bool IsIon(const G4ParticleDefinition *)
Definition: G4IonTable.cc:1044
int G4int
Definition: G4Types.hh:78
const G4String & GetParticleName() const
static G4PTblEncodingDictionary * fEncodingDictionaryShadow
static G4StateManager * GetStateManager()
G4GLOB_DLL std::ostream G4cout
G4ApplicationState GetCurrentState() const
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
G4bool IsWorkerThread()
Definition: G4Threading.cc:104
Definition: inftrees.h:24
#define G4endl
Definition: G4ios.hh:61
static G4IonTable * fIonTable
G4ApplicationState
static G4PTblDictionary * fDictionaryShadow
void G4ParticleTable::RemoveAllParticles ( )

Definition at line 312 of file G4ParticleTable.cc.

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

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

313 {
314  if (readyToUse) {
315  G4Exception("G4ParticleTable::RemoveAllParticle()",
316  "PART115", JustWarning,
317  "No effects because readyToUse is true.");
318  return;
319  }
320 
321 #ifdef G4VERBOSE
322  if (verboseLevel>1){
323  G4cout << "G4ParticleTable::RemoveAllParticles() " << G4endl;
324  }
325 #endif
326 
327  //remove all contnts in Ion Table
328  if (fIonTable!=0) {
329  fIonTable->clear();
330  }
331 
332  // clear dictionary
333  if (fDictionary) {
334  fDictionary->clear();
335  }
336 }
G4GLOB_DLL std::ostream G4cout
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
static G4ThreadLocal G4PTblDictionary * fDictionary
void clear()
Definition: G4IonTable.cc:1242
#define G4endl
Definition: G4ios.hh:61
static G4IonTable * fIonTable
void G4ParticleTable::SetGenericIon ( G4ParticleDefinition )
void G4ParticleTable::SetReadiness ( G4bool  val = true)
void G4ParticleTable::SetVerboseLevel ( G4int  value)
G4int G4ParticleTable::size ( ) const

Definition at line 743 of file G4ParticleTable.cc.

References fDictionary.

Referenced by export_G4ParticleTable(), and getParticleTable().

744 {
745  return fDictionary->size();
746 }
static G4ThreadLocal G4PTblDictionary * fDictionary
void G4ParticleTable::SlaveG4ParticleTable ( )

Definition at line 152 of file G4ParticleTable.cc.

References FatalException, and G4Exception().

153 {
154  G4Exception("G4ParticleTable::SlaveG4ParticleTable()","G4MT0000",FatalException,"Obsolete");
155 }
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
void G4ParticleTable::WorkerG4ParticleTable ( )

Definition at line 157 of file G4ParticleTable.cc.

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().

158 {
159  // The iterator for the shadow particle table is not sharable.
160  //
161 #ifdef G4MULTITHREADED
162  G4MUTEXLOCK(&G4ParticleTable::particleTableMutex);
163  G4ParticleTable::lockCount++;
164 #endif
165  if(fDictionary == 0) {
166  fDictionary = new G4PTblDictionary();
167  } else {
168  fDictionary->clear();
169  }
170 
171  if(fEncodingDictionary == 0){
173  } else {
174  fEncodingDictionary->clear();
175  }
176 
177  fIteratorShadow->reset(false);
178  while( (*fIteratorShadow)() )
179  {
181  fDictionary->insert( std::pair<G4String, G4ParticleDefinition*>(GetKey(particle), particle) );
182  G4int code = particle->GetPDGEncoding();
183  if (code !=0 ) {
184  fEncodingDictionary->insert( std::pair<G4int, G4ParticleDefinition*>(code ,particle) );
185  }
186  }
188 
189 #ifdef G4MULTITHREADED
190  G4MUTEXUNLOCK(&G4ParticleTable::particleTableMutex);
191 #endif
192 
194 
195 }
#define G4MUTEXUNLOCK
Definition: G4Threading.hh:162
void WorkerG4IonTable()
Definition: G4IonTable.cc:152
const G4String & GetKey(const G4ParticleDefinition *particle) const
G4ParticleTableIterator< G4int, G4ParticleDefinition * >::Map G4PTblEncodingDictionary
G4ParticleTableIterator< G4String, G4ParticleDefinition * > G4PTblDicIterator
int G4int
Definition: G4Types.hh:78
void reset(G4bool ifSkipIon=true)
#define G4MUTEXLOCK
Definition: G4Threading.hh:161
Definition: inftrees.h:24
static G4ThreadLocal G4PTblDictionary * fDictionary
static G4IonTable * fIonTable
static G4ThreadLocal G4PTblDicIterator * fIterator
static G4ThreadLocal G4PTblEncodingDictionary * fEncodingDictionary
static G4PTblDicIterator * fIteratorShadow
G4ParticleTableIterator< G4String, G4ParticleDefinition * >::Map G4PTblDictionary

Field Documentation

G4ThreadLocal G4ParticleTable::G4PTblDictionary * G4ParticleTable::fDictionary = 0
static
G4ParticleTable::G4PTblDictionary * G4ParticleTable::fDictionaryShadow = 0
static

Definition at line 251 of file G4ParticleTable.hh.

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

G4ThreadLocal G4ParticleTable::G4PTblEncodingDictionary * G4ParticleTable::fEncodingDictionary = 0
static
G4ParticleTable::G4PTblEncodingDictionary * G4ParticleTable::fEncodingDictionaryShadow = 0
static

Definition at line 253 of file G4ParticleTable.hh.

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

G4ParticleTable * G4ParticleTable::fgParticleTable =0
static

Definition at line 240 of file G4ParticleTable.hh.

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

G4IonTable * G4ParticleTable::fIonTable = 0
static
G4ThreadLocal G4ParticleTable::G4PTblDicIterator * G4ParticleTable::fIterator = 0
static
G4ParticleTable::G4PTblDicIterator * G4ParticleTable::fIteratorShadow = 0
static

Definition at line 252 of file G4ParticleTable.hh.

Referenced by G4ParticleTable(), and WorkerG4ParticleTable().

G4ThreadLocal G4ParticleMessenger * G4ParticleTable::fParticleMessenger = 0
static
G4ParticleMessenger * G4ParticleTable::fParticleMessengerShadow = 0
static

Definition at line 250 of file G4ParticleTable.hh.


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