Geant4
10.01.p01
|
Andrea Dotti Feb 2015 GPS messenger design requires some explanation for what distributions parameters are concerned : Each thread has its own GPS since primary generation is a user action. More...
#include <G4GeneralParticleSource.hh>
Private Member Functions | |
void | IntensityNormalization () |
Private Attributes | |
G4bool | multiple_vertex |
G4bool | flat_sampling |
G4bool | normalised |
G4int | currentSourceIdx |
G4SingleParticleSource * | currentSource |
std::vector < G4SingleParticleSource * > | sourceVector |
std::vector< G4double > | sourceIntensity |
std::vector< G4double > | sourceProbability |
G4GeneralParticleSourceMessenger * | theMessenger |
G4GeneralParticleSourceData * | GPSData |
Additional Inherited Members | |
![]() | |
static G4bool | CheckVertexInsideWorld (const G4ThreeVector &pos) |
![]() | |
G4ThreeVector | particle_position |
G4double | particle_time |
Andrea Dotti Feb 2015 GPS messenger design requires some explanation for what distributions parameters are concerned : Each thread has its own GPS since primary generation is a user action.
However to save memory the underlying structures that provide the GPS functionalities ( the G4SPS*Distribution classes and the G4SPSRandomGenerator class) are shared among threads. This implies that modifying parameters of sources requires some attention: 1- Only one thread should change source parameters. 2- Changing of parameters can happen only between runs, when is guaranteed that no thread is accessing them 2- UI commands require that even if messenger is instantiated in a thread the commands are executed in the master (this is possible since V10.1) The simplest solution is to use UI commands to change GPS parameters and avoid C++ APIs. If this is inevitable a simple solution is to instantiate an instance of G4GeneralParticleSource explicitly in the master thread (for example in G4VUserActionInitialization::BuildForMaster() and set the defaults parameter there).
Definition at line 179 of file G4GeneralParticleSource.hh.
G4GeneralParticleSource::G4GeneralParticleSource | ( | ) |
Definition at line 77 of file G4GeneralParticleSource.cc.
References currentSource, currentSourceIdx, G4GeneralParticleSourceData::GetCurrentSource(), G4GeneralParticleSourceMessenger::GetInstance(), G4GeneralParticleSourceData::GetSourceVectorSize(), GPSData, G4GeneralParticleSourceData::Instance(), IntensityNormalization(), and theMessenger.
G4GeneralParticleSource::~G4GeneralParticleSource | ( | ) |
Definition at line 97 of file G4GeneralParticleSource.cc.
References G4GeneralParticleSourceMessenger::Destroy(), and theMessenger.
void G4GeneralParticleSource::AddaSource | ( | G4double | aV | ) |
Definition at line 102 of file G4GeneralParticleSource.cc.
References G4GeneralParticleSourceData::AddASource(), currentSource, currentSourceIdx, G4GeneralParticleSourceData::GetCurrentSource(), G4GeneralParticleSourceData::GetSourceVectorSize(), GPSData, IntensityNormalization(), G4GeneralParticleSourceData::Lock(), normalised, G4GeneralParticleSourceMessenger::SetParticleGun(), theMessenger, and G4GeneralParticleSourceData::Unlock().
Referenced by G4GeneralParticleSourceMessenger::SetNewValue().
void G4GeneralParticleSource::ClearAll | ( | ) |
Definition at line 153 of file G4GeneralParticleSource.cc.
References G4GeneralParticleSourceData::ClearSources(), currentSource, currentSourceIdx, GPSData, and normalised.
Referenced by G4GeneralParticleSourceMessenger::SetNewValue().
void G4GeneralParticleSource::DeleteaSource | ( | G4int | aV | ) |
Definition at line 161 of file G4GeneralParticleSource.cc.
References G4GeneralParticleSourceData::DeleteASource(), G4cout, G4endl, G4GeneralParticleSourceData::GetIntensityVectorSize(), GPSData, and normalised.
Referenced by G4GeneralParticleSourceMessenger::SetNewValue().
|
virtual |
Implements G4VPrimaryGenerator.
Definition at line 176 of file G4GeneralParticleSource.cc.
References currentSource, flat_sampling, G4UniformRand, G4SingleParticleSource::GeneratePrimaryVertex(), G4GeneralParticleSourceData::GetCurrentSource(), G4GeneralParticleSourceData::GetIntensityVectorSize(), G4GeneralParticleSourceData::GetSourceProbability(), GPSData, IntensityNormalization(), G4GeneralParticleSourceData::Lock(), multiple_vertex, G4GeneralParticleSourceData::Normalised(), normalised, and G4GeneralParticleSourceData::Unlock().
Referenced by GammaKnifePrimaryGeneratorAction::GeneratePrimaries(), ExExChPrimaryGeneratorAction::GeneratePrimaries(), ElectronPrimaryGeneratorAction::GeneratePrimaries(), ExGflashPrimaryGeneratorAction::GeneratePrimaries(), exrdmPrimaryGeneratorAction::GeneratePrimaries(), ExG4PrimaryGeneratorAction02::GeneratePrimaries(), WLSPrimaryGeneratorAction::GeneratePrimaries(), UltraPrimaryGeneratorAction::GeneratePrimaries(), RMC01PrimaryGeneratorAction::GeneratePrimaries(), GammaRayTelPrimaryGeneratorAction::GeneratePrimaries(), and XrayTelPrimaryGeneratorAction::GeneratePrimaries().
|
inline |
Definition at line 193 of file G4GeneralParticleSource.hh.
References currentSource.
Referenced by UltraPrimaryGeneratorAction::GeneratePrimaries(), and UltraActionInitializer::UltraActionInitializer().
|
inline |
Definition at line 194 of file G4GeneralParticleSource.hh.
References currentSourceIdx.
Referenced by G4GeneralParticleSourceMessenger::SetNewValue().
|
inline |
Definition at line 195 of file G4GeneralParticleSource.hh.
References currentSourceIdx, G4GeneralParticleSourceData::GetIntensity(), and GPSData.
Referenced by G4GeneralParticleSourceMessenger::SetNewValue().
|
inline |
Definition at line 228 of file G4GeneralParticleSource.hh.
References currentSource, and G4SingleParticleSource::GetNumberOfParticles().
|
inline |
Definition at line 189 of file G4GeneralParticleSource.hh.
References G4GeneralParticleSourceData::GetSourceVectorSize(), and GPSData.
|
inline |
Definition at line 214 of file G4GeneralParticleSource.hh.
References currentSource, and G4SingleParticleSource::GetParticleDefinition().
Referenced by WLSPrimaryGeneratorAction::GeneratePrimaries(), UltraPrimaryGeneratorAction::GeneratePrimaries(), and WLSPrimaryGeneratorAction::SetOptPhotonPolar().
|
inline |
Definition at line 231 of file G4GeneralParticleSource.hh.
References currentSource, and G4SingleParticleSource::GetParticleEnergy().
Referenced by UltraPrimaryGeneratorAction::GeneratePrimaries().
|
inline |
Definition at line 230 of file G4GeneralParticleSource.hh.
References currentSource, and G4SingleParticleSource::GetParticleMomentumDirection().
Referenced by WLSPrimaryGeneratorAction::SetOptPhotonPolar().
|
inline |
Definition at line 220 of file G4GeneralParticleSource.hh.
References currentSource, and G4SingleParticleSource::GetParticlePolarization().
|
inline |
Definition at line 229 of file G4GeneralParticleSource.hh.
References currentSource, and G4SingleParticleSource::GetParticlePosition().
|
inline |
Definition at line 224 of file G4GeneralParticleSource.hh.
References currentSource, and G4SingleParticleSource::GetParticleTime().
|
private |
Definition at line 114 of file G4GeneralParticleSource.cc.
References GPSData, G4GeneralParticleSourceData::IntensityNormalise(), and normalised.
Referenced by AddaSource(), G4GeneralParticleSource(), and GeneratePrimaryVertex().
void G4GeneralParticleSource::ListSource | ( | ) |
Definition at line 120 of file G4GeneralParticleSource.cc.
References G4cout, G4endl, G4GeneralParticleSourceData::GetIntensity(), G4GeneralParticleSourceData::GetIntensityVectorSize(), and GPSData.
Referenced by G4GeneralParticleSourceMessenger::SetNewValue().
void G4GeneralParticleSource::SetCurrentSourceIntensity | ( | G4double | aV | ) |
Definition at line 145 of file G4GeneralParticleSource.cc.
References GPSData, G4GeneralParticleSourceData::Lock(), normalised, G4GeneralParticleSourceData::SetCurrentSourceIntensity(), and G4GeneralParticleSourceData::Unlock().
Referenced by G4GeneralParticleSourceMessenger::SetNewValue().
void G4GeneralParticleSource::SetCurrentSourceto | ( | G4int | aV | ) |
Definition at line 129 of file G4GeneralParticleSource.cc.
References currentSource, currentSourceIdx, G4cout, G4endl, G4GeneralParticleSourceData::GetCurrentSource(), G4GeneralParticleSourceData::GetIntensityVectorSize(), GPSData, G4GeneralParticleSourceMessenger::SetParticleGun(), and theMessenger.
Referenced by G4GeneralParticleSourceMessenger::SetNewValue().
|
inline |
Definition at line 208 of file G4GeneralParticleSource.hh.
References flat_sampling, GPSData, normalised, and G4GeneralParticleSourceData::SetFlatSampling().
Referenced by G4GeneralParticleSourceMessenger::SetNewValue().
|
inline |
Definition at line 204 of file G4GeneralParticleSource.hh.
References multiple_vertex.
Referenced by G4GeneralParticleSourceMessenger::SetNewValue().
|
inline |
Definition at line 226 of file G4GeneralParticleSource.hh.
References currentSource, and G4SingleParticleSource::SetNumberOfParticles().
|
inline |
Definition at line 216 of file G4GeneralParticleSource.hh.
References currentSource, and G4SingleParticleSource::SetParticleCharge().
|
inline |
Definition at line 211 of file G4GeneralParticleSource.hh.
References currentSource, and G4SingleParticleSource::SetParticleDefinition().
Referenced by GammaKnifeActionInitialization::GammaKnifeActionInitialization(), and UltraActionInitializer::UltraActionInitializer().
|
inline |
Definition at line 219 of file G4GeneralParticleSource.hh.
References currentSource, and G4SingleParticleSource::SetParticlePolarization().
Referenced by WLSPrimaryGeneratorAction::SetOptPhotonPolar(), and UltraActionInitializer::UltraActionInitializer().
|
inline |
Definition at line 223 of file G4GeneralParticleSource.hh.
References currentSource, and G4SingleParticleSource::SetParticleTime().
Referenced by WLSPrimaryGeneratorAction::SetOptPhotonTime().
|
inline |
Definition at line 201 of file G4GeneralParticleSource.hh.
References currentSource, and G4SingleParticleSource::SetVerbosity().
|
private |
Definition at line 242 of file G4GeneralParticleSource.hh.
Referenced by AddaSource(), ClearAll(), G4GeneralParticleSource(), GeneratePrimaryVertex(), GetCurrentSource(), GetNumberOfParticles(), GetParticleDefinition(), GetParticleEnergy(), GetParticleMomentumDirection(), GetParticlePolarization(), GetParticlePosition(), GetParticleTime(), SetCurrentSourceto(), SetNumberOfParticles(), SetParticleCharge(), SetParticleDefinition(), SetParticlePolarization(), SetParticleTime(), and SetVerbosity().
|
private |
Definition at line 241 of file G4GeneralParticleSource.hh.
Referenced by AddaSource(), ClearAll(), G4GeneralParticleSource(), GetCurrentSourceIndex(), GetCurrentSourceIntensity(), and SetCurrentSourceto().
|
private |
Definition at line 239 of file G4GeneralParticleSource.hh.
Referenced by GeneratePrimaryVertex(), and SetFlatSampling().
|
private |
Definition at line 249 of file G4GeneralParticleSource.hh.
Referenced by AddaSource(), ClearAll(), DeleteaSource(), G4GeneralParticleSource(), GeneratePrimaryVertex(), GetCurrentSourceIntensity(), GetNumberofSource(), IntensityNormalization(), ListSource(), SetCurrentSourceIntensity(), SetCurrentSourceto(), and SetFlatSampling().
|
private |
Definition at line 238 of file G4GeneralParticleSource.hh.
Referenced by GeneratePrimaryVertex(), and SetMultipleVertex().
|
private |
Definition at line 240 of file G4GeneralParticleSource.hh.
Referenced by AddaSource(), ClearAll(), DeleteaSource(), GeneratePrimaryVertex(), IntensityNormalization(), SetCurrentSourceIntensity(), and SetFlatSampling().
|
private |
Definition at line 244 of file G4GeneralParticleSource.hh.
|
private |
Definition at line 245 of file G4GeneralParticleSource.hh.
|
private |
Definition at line 243 of file G4GeneralParticleSource.hh.
|
private |
Definition at line 247 of file G4GeneralParticleSource.hh.
Referenced by AddaSource(), G4GeneralParticleSource(), SetCurrentSourceto(), and ~G4GeneralParticleSource().