Geant4  10.01.p03
G4SPSAngDistribution Class Reference

Andrea Dotti Feb 2015 Important: This is a shared class between threads. More...

#include <G4SPSAngDistribution.hh>

+ Collaboration diagram for G4SPSAngDistribution:

Public Member Functions

 G4SPSAngDistribution ()
 
 ~G4SPSAngDistribution ()
 
void SetAngDistType (G4String)
 
void DefineAngRefAxes (G4String, G4ThreeVector)
 
void SetMinTheta (G4double)
 
void SetMinPhi (G4double)
 
void SetMaxTheta (G4double)
 
void SetMaxPhi (G4double)
 
void SetBeamSigmaInAngR (G4double)
 
void SetBeamSigmaInAngX (G4double)
 
void SetBeamSigmaInAngY (G4double)
 
void UserDefAngTheta (G4ThreeVector)
 
void UserDefAngPhi (G4ThreeVector)
 
void SetFocusPoint (G4ThreeVector)
 
void SetParticleMomentumDirection (G4ParticleMomentum aMomentumDirection)
 
void SetUseUserAngAxis (G4bool)
 
void SetUserWRTSurface (G4bool)
 
void SetPosDistribution (G4SPSPosDistribution *a)
 
void SetBiasRndm (G4SPSRandomGenerator *a)
 
void ReSetHist (G4String)
 
void SetVerbosity (G4int a)
 
G4String GetDistType ()
 
G4double GetMinTheta ()
 
G4double GetMaxTheta ()
 
G4double GetMinPhi ()
 
G4double GetMaxPhi ()
 
G4ThreeVector GetDirection ()
 
G4ParticleMomentum GenerateOne ()
 

Private Member Functions

void GenerateFocusedFlux (G4ParticleMomentum &outputMom)
 
void GenerateIsotropicFlux (G4ParticleMomentum &outputMom)
 
void GenerateCosineLawFlux (G4ParticleMomentum &outputMom)
 
void GenerateBeamFlux (G4ParticleMomentum &outputMom)
 
void GeneratePlanarFlux (G4ParticleMomentum &outputMom)
 
void GenerateUserDefFlux (G4ParticleMomentum &outputMom)
 
G4double GenerateUserDefTheta ()
 
G4double GenerateUserDefPhi ()
 

Private Attributes

G4String AngDistType
 
G4ThreeVector AngRef1
 
G4ThreeVector AngRef2
 
G4ThreeVector AngRef3
 
G4double MinTheta
 
G4double MaxTheta
 
G4double MinPhi
 
G4double MaxPhi
 
G4double DR
 
G4double DX
 
G4double DY
 
G4double Theta
 
G4double Phi
 
G4ThreeVector FocusPoint
 
G4bool IPDFThetaExist
 
G4bool IPDFPhiExist
 
G4PhysicsOrderedFreeVector UDefThetaH
 
G4PhysicsOrderedFreeVector IPDFThetaH
 
G4PhysicsOrderedFreeVector UDefPhiH
 
G4PhysicsOrderedFreeVector IPDFPhiH
 
G4String UserDistType
 
G4bool UserWRTSurface
 
G4bool UserAngRef
 
G4ParticleMomentum particle_momentum_direction
 
G4SPSPosDistributionposDist
 
G4SPSRandomGeneratorangRndm
 
G4int verbosityLevel
 
G4PhysicsOrderedFreeVector ZeroPhysVector
 
G4Mutex mutex
 

Detailed Description

Andrea Dotti Feb 2015 Important: This is a shared class between threads.

Only one thread should use the set-methods here. Note that this is exactly what is achieved using UI commands. If you use the set methods to set defaults in your application take care that only one thread is executing them. In addition take care of calling these methods before the run is started Do not use these setters during the event loop

Definition at line 174 of file G4SPSAngDistribution.hh.

Constructor & Destructor Documentation

G4SPSAngDistribution::G4SPSAngDistribution ( )

Definition at line 55 of file G4SPSAngDistribution.cc.

References AngDistType, AngRef1, AngRef2, AngRef3, DR, DX, DY, FocusPoint, G4MUTEXINIT, CLHEP::HepXHat(), CLHEP::HepYHat(), CLHEP::HepZHat(), IPDFPhiExist, IPDFThetaExist, MaxPhi, MaxTheta, MinPhi, MinTheta, mutex, particle_momentum_direction, G4INCL::Math::pi, UserAngRef, UserDistType, UserWRTSurface, and verbosityLevel.

+ Here is the call graph for this function:

G4SPSAngDistribution::~G4SPSAngDistribution ( )

Definition at line 84 of file G4SPSAngDistribution.cc.

References G4MUTEXDESTROY, and mutex.

Member Function Documentation

void G4SPSAngDistribution::DefineAngRefAxes ( G4String  refname,
G4ThreeVector  ref 
)

Definition at line 107 of file G4SPSAngDistribution.cc.

References AngRef1, AngRef2, AngRef3, G4cout, G4endl, mutex, UserAngRef, and verbosityLevel.

Referenced by G4GeneralParticleSourceMessenger::SetNewValue().

+ Here is the caller graph for this function:

void G4SPSAngDistribution::GenerateBeamFlux ( G4ParticleMomentum outputMom)
private

Definition at line 255 of file G4SPSAngDistribution.cc.

References AngDistType, AngRef1, AngRef2, AngRef3, DR, DX, DY, G4cout, G4endl, G4UniformRand, G4INCL::DeJongSpin::shoot(), UserAngRef, and verbosityLevel.

Referenced by GenerateOne().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4SPSAngDistribution::GenerateCosineLawFlux ( G4ParticleMomentum outputMom)
private

Definition at line 375 of file G4SPSAngDistribution.cc.

References AngRef1, AngRef2, AngRef3, angRndm, G4cout, G4endl, G4SPSRandomGenerator::GenRandPhi(), G4SPSRandomGenerator::GenRandTheta(), G4SPSPosDistribution::GetSideRefVec1(), G4SPSPosDistribution::GetSideRefVec2(), G4SPSPosDistribution::GetSideRefVec3(), G4SPSPosDistribution::GetSourcePosType(), MaxPhi, MaxTheta, MinPhi, MinTheta, Phi, posDist, UserAngRef, and verbosityLevel.

Referenced by GenerateOne().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4SPSAngDistribution::GenerateFocusedFlux ( G4ParticleMomentum outputMom)
private

Definition at line 301 of file G4SPSAngDistribution.cc.

References FocusPoint, G4cout, G4endl, G4SPSPosDistribution::GetParticlePos(), posDist, and verbosityLevel.

Referenced by GenerateOne().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4SPSAngDistribution::GenerateIsotropicFlux ( G4ParticleMomentum outputMom)
private

Definition at line 310 of file G4SPSAngDistribution.cc.

References AngRef1, AngRef2, AngRef3, angRndm, G4cout, G4endl, G4SPSRandomGenerator::GenRandPhi(), G4SPSRandomGenerator::GenRandTheta(), G4SPSPosDistribution::GetSideRefVec1(), G4SPSPosDistribution::GetSideRefVec2(), G4SPSPosDistribution::GetSideRefVec3(), G4SPSPosDistribution::GetSourcePosType(), MaxPhi, MaxTheta, MinPhi, MinTheta, Phi, posDist, UserAngRef, and verbosityLevel.

Referenced by GenerateOne().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4ParticleMomentum G4SPSAngDistribution::GenerateOne ( )

Definition at line 656 of file G4SPSAngDistribution.cc.

References AngDistType, G4cout, G4endl, GenerateBeamFlux(), GenerateCosineLawFlux(), GenerateFocusedFlux(), GenerateIsotropicFlux(), GeneratePlanarFlux(), GenerateUserDefFlux(), and particle_momentum_direction.

Referenced by G4SingleParticleSource::GeneratePrimaryVertex().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4SPSAngDistribution::GeneratePlanarFlux ( G4ParticleMomentum outputMom)
private

Definition at line 439 of file G4SPSAngDistribution.cc.

References G4cout, G4endl, and verbosityLevel.

Referenced by GenerateOne().

+ Here is the caller graph for this function:

void G4SPSAngDistribution::GenerateUserDefFlux ( G4ParticleMomentum outputMom)
private

Definition at line 450 of file G4SPSAngDistribution.cc.

References AngRef1, AngRef2, AngRef3, angRndm, G4cout, G4endl, GenerateUserDefPhi(), GenerateUserDefTheta(), G4SPSRandomGenerator::GenRandPhi(), G4SPSRandomGenerator::GenRandTheta(), G4SPSPosDistribution::GetSideRefVec1(), G4SPSPosDistribution::GetSideRefVec2(), G4SPSPosDistribution::GetSideRefVec3(), MaxPhi, MaxTheta, MinPhi, MinTheta, particle_momentum_direction, Phi, posDist, Theta, UserAngRef, UserDistType, UserWRTSurface, and verbosityLevel.

Referenced by GenerateOne().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4SPSAngDistribution::GenerateUserDefPhi ( )
private

Definition at line 594 of file G4SPSAngDistribution.cc.

References G4cout, G4endl, G4UniformRand, G4PhysicsOrderedFreeVector::GetEnergy(), G4PhysicsVector::GetLowEdgeEnergy(), G4PhysicsVector::GetVectorLength(), G4PhysicsOrderedFreeVector::InsertValues(), IPDFPhiExist, IPDFPhiH, mutex, UDefPhiH, G4TemplateAutoLock< M, L, U >::unlock(), and UserDistType.

Referenced by GenerateUserDefFlux().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4SPSAngDistribution::GenerateUserDefTheta ( )
private

Definition at line 548 of file G4SPSAngDistribution.cc.

References G4cout, G4endl, G4UniformRand, G4PhysicsOrderedFreeVector::GetEnergy(), G4PhysicsVector::GetLowEdgeEnergy(), G4PhysicsVector::GetVectorLength(), G4PhysicsOrderedFreeVector::InsertValues(), IPDFThetaExist, IPDFThetaH, mutex, UDefThetaH, G4TemplateAutoLock< M, L, U >::unlock(), and UserDistType.

Referenced by GenerateUserDefFlux().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4ThreeVector G4SPSAngDistribution::GetDirection ( )

Definition at line 215 of file G4SPSAngDistribution.cc.

References mutex, and particle_momentum_direction.

Referenced by G4GeneralParticleSource::ListSource().

+ Here is the caller graph for this function:

G4String G4SPSAngDistribution::GetDistType ( )

Definition at line 210 of file G4SPSAngDistribution.cc.

References AngDistType, and mutex.

Referenced by G4GeneralParticleSource::ListSource().

+ Here is the caller graph for this function:

G4double G4SPSAngDistribution::GetMaxPhi ( )

Definition at line 214 of file G4SPSAngDistribution.cc.

References MaxPhi, and mutex.

G4double G4SPSAngDistribution::GetMaxTheta ( )

Definition at line 212 of file G4SPSAngDistribution.cc.

References MaxTheta, and mutex.

G4double G4SPSAngDistribution::GetMinPhi ( )

Definition at line 213 of file G4SPSAngDistribution.cc.

References MinPhi, and mutex.

G4double G4SPSAngDistribution::GetMinTheta ( )

Definition at line 211 of file G4SPSAngDistribution.cc.

References MinTheta, and mutex.

void G4SPSAngDistribution::ReSetHist ( G4String  atype)

Definition at line 641 of file G4SPSAngDistribution.cc.

References G4cout, G4endl, IPDFPhiExist, IPDFPhiH, IPDFThetaExist, IPDFThetaH, mutex, UDefPhiH, UDefThetaH, and ZeroPhysVector.

Referenced by G4GeneralParticleSourceMessenger::SetNewValue().

+ Here is the caller graph for this function:

void G4SPSAngDistribution::SetAngDistType ( G4String  atype)
void G4SPSAngDistribution::SetBeamSigmaInAngR ( G4double  r)

Definition at line 153 of file G4SPSAngDistribution.cc.

References DR, and mutex.

Referenced by G4GeneralParticleSourceMessenger::SetNewValue().

+ Here is the caller graph for this function:

void G4SPSAngDistribution::SetBeamSigmaInAngX ( G4double  r)

Definition at line 159 of file G4SPSAngDistribution.cc.

References DX, and mutex.

Referenced by G4GeneralParticleSourceMessenger::SetNewValue().

+ Here is the caller graph for this function:

void G4SPSAngDistribution::SetBeamSigmaInAngY ( G4double  r)

Definition at line 165 of file G4SPSAngDistribution.cc.

References DY, and mutex.

Referenced by G4GeneralParticleSourceMessenger::SetNewValue().

+ Here is the caller graph for this function:

void G4SPSAngDistribution::SetBiasRndm ( G4SPSRandomGenerator a)

Definition at line 184 of file G4SPSAngDistribution.cc.

References a, angRndm, and mutex.

Referenced by G4SingleParticleSource::G4SingleParticleSource().

+ Here is the caller graph for this function:

void G4SPSAngDistribution::SetFocusPoint ( G4ThreeVector  input)

Definition at line 230 of file G4SPSAngDistribution.cc.

References FocusPoint, and mutex.

Referenced by G4GeneralParticleSourceMessenger::SetNewValue().

+ Here is the caller graph for this function:

void G4SPSAngDistribution::SetMaxPhi ( G4double  maxp)

Definition at line 147 of file G4SPSAngDistribution.cc.

References MaxPhi, and mutex.

Referenced by G4GeneralParticleSourceMessenger::SetNewValue().

+ Here is the caller graph for this function:

void G4SPSAngDistribution::SetMaxTheta ( G4double  maxt)

Definition at line 141 of file G4SPSAngDistribution.cc.

References MaxTheta, and mutex.

Referenced by G4GeneralParticleSourceMessenger::SetNewValue(), and G4AdjointPrimaryGenerator::SetSphericalAdjointPrimarySource().

+ Here is the caller graph for this function:

void G4SPSAngDistribution::SetMinPhi ( G4double  minp)

Definition at line 135 of file G4SPSAngDistribution.cc.

References MinPhi, and mutex.

Referenced by G4GeneralParticleSourceMessenger::SetNewValue().

+ Here is the caller graph for this function:

void G4SPSAngDistribution::SetMinTheta ( G4double  mint)

Definition at line 129 of file G4SPSAngDistribution.cc.

References MinTheta, and mutex.

Referenced by G4GeneralParticleSourceMessenger::SetNewValue(), and G4AdjointPrimaryGenerator::SetSphericalAdjointPrimarySource().

+ Here is the caller graph for this function:

void G4SPSAngDistribution::SetParticleMomentumDirection ( G4ParticleMomentum  aMomentumDirection)

Definition at line 171 of file G4SPSAngDistribution.cc.

References mutex, and particle_momentum_direction.

Referenced by G4AdjointPrimaryGenerator::GenerateAdjointPrimaryVertex(), G4AdjointPrimaryGenerator::GenerateFwdPrimaryVertex(), G4GeneralParticleSourceMessenger::SetNewValue(), and UltraActionInitializer::UltraActionInitializer().

+ Here is the caller graph for this function:

void G4SPSAngDistribution::SetPosDistribution ( G4SPSPosDistribution a)

Definition at line 178 of file G4SPSAngDistribution.cc.

References a, mutex, and posDist.

Referenced by G4SingleParticleSource::G4SingleParticleSource().

+ Here is the caller graph for this function:

void G4SPSAngDistribution::SetUserWRTSurface ( G4bool  wrtSurf)

Definition at line 236 of file G4SPSAngDistribution.cc.

References mutex, and UserWRTSurface.

Referenced by G4GeneralParticleSourceMessenger::SetNewValue().

+ Here is the caller graph for this function:

void G4SPSAngDistribution::SetUseUserAngAxis ( G4bool  userang)

Definition at line 247 of file G4SPSAngDistribution.cc.

References mutex, and UserAngRef.

Referenced by G4GeneralParticleSourceMessenger::SetNewValue().

+ Here is the caller graph for this function:

void G4SPSAngDistribution::SetVerbosity ( G4int  a)

Definition at line 190 of file G4SPSAngDistribution.cc.

References a, mutex, and verbosityLevel.

Referenced by G4SingleParticleSource::SetVerbosity().

+ Here is the caller graph for this function:

void G4SPSAngDistribution::UserDefAngPhi ( G4ThreeVector  input)

Definition at line 217 of file G4SPSAngDistribution.cc.

References G4cout, G4endl, G4PhysicsOrderedFreeVector::InsertValues(), mutex, UDefPhiH, UserDistType, and verbosityLevel.

Referenced by G4GeneralParticleSourceMessenger::SetNewValue().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4SPSAngDistribution::UserDefAngTheta ( G4ThreeVector  input)

Definition at line 197 of file G4SPSAngDistribution.cc.

References G4cout, G4endl, G4PhysicsOrderedFreeVector::InsertValues(), mutex, UDefThetaH, UserDistType, and verbosityLevel.

Referenced by G4GeneralParticleSourceMessenger::SetNewValue().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

G4String G4SPSAngDistribution::AngDistType
private
G4SPSRandomGenerator* G4SPSAngDistribution::angRndm
private
G4double G4SPSAngDistribution::DR
private
G4double G4SPSAngDistribution::DX
private
G4double G4SPSAngDistribution::DY
private
G4ThreeVector G4SPSAngDistribution::FocusPoint
private
G4bool G4SPSAngDistribution::IPDFPhiExist
private
G4PhysicsOrderedFreeVector G4SPSAngDistribution::IPDFPhiH
private

Definition at line 238 of file G4SPSAngDistribution.hh.

Referenced by GenerateUserDefPhi(), ReSetHist(), and SetAngDistType().

G4bool G4SPSAngDistribution::IPDFThetaExist
private
G4PhysicsOrderedFreeVector G4SPSAngDistribution::IPDFThetaH
private

Definition at line 236 of file G4SPSAngDistribution.hh.

Referenced by GenerateUserDefTheta(), ReSetHist(), and SetAngDistType().

G4double G4SPSAngDistribution::MaxPhi
private
G4double G4SPSAngDistribution::MinPhi
private
G4double G4SPSAngDistribution::MinTheta
private
G4ParticleMomentum G4SPSAngDistribution::particle_momentum_direction
private
G4double G4SPSAngDistribution::Phi
private
G4double G4SPSAngDistribution::Theta
private

Definition at line 232 of file G4SPSAngDistribution.hh.

Referenced by GenerateUserDefFlux().

G4PhysicsOrderedFreeVector G4SPSAngDistribution::UDefPhiH
private
G4PhysicsOrderedFreeVector G4SPSAngDistribution::UDefThetaH
private
G4String G4SPSAngDistribution::UserDistType
private
G4bool G4SPSAngDistribution::UserWRTSurface
private
G4PhysicsOrderedFreeVector G4SPSAngDistribution::ZeroPhysVector
private

Definition at line 252 of file G4SPSAngDistribution.hh.

Referenced by ReSetHist(), and SetAngDistType().


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