Geant4  10.01
G4SPSPosDistribution Class Reference

#include <G4SPSPosDistribution.hh>

+ Collaboration diagram for G4SPSPosDistribution:

Public Member Functions

 G4SPSPosDistribution ()
 
 ~G4SPSPosDistribution ()
 
void SetPosDisType (G4String)
 
G4String GetPosDisType ()
 
void SetPosDisShape (G4String)
 
G4String GetPosDisShape ()
 
void SetCentreCoords (G4ThreeVector)
 
G4ThreeVector GetCentreCoords ()
 
void SetPosRot1 (G4ThreeVector)
 
void SetPosRot2 (G4ThreeVector)
 
void SetHalfX (G4double)
 
G4double GetHalfX ()
 
void SetHalfY (G4double)
 
G4double GetHalfY ()
 
void SetHalfZ (G4double)
 
G4double GetHalfZ ()
 
void SetRadius (G4double)
 
G4double GetRadius ()
 
void SetRadius0 (G4double)
 
void SetBeamSigmaInR (G4double)
 
void SetBeamSigmaInX (G4double)
 
void SetBeamSigmaInY (G4double)
 
void SetParAlpha (G4double)
 
void SetParTheta (G4double)
 
void SetParPhi (G4double)
 
void ConfineSourceToVolume (G4String)
 
void SetBiasRndm (G4SPSRandomGenerator *a)
 
void SetVerbosity (G4int a)
 
G4ThreeVector GenerateOne ()
 
G4ThreeVector GetSideRefVec1 () const
 
G4ThreeVector GetSideRefVec2 () const
 
G4ThreeVector GetSideRefVec3 () const
 
G4String GetSourcePosType ()
 
G4ThreeVector GetParticlePos () const
 

Private Member Functions

void GenerateRotationMatrices ()
 
void GeneratePointSource (G4ThreeVector &outoutPos)
 
void GeneratePointsInBeam (G4ThreeVector &outoutPos)
 
void GeneratePointsInPlane (G4ThreeVector &outoutPos)
 
void GeneratePointsOnSurface (G4ThreeVector &outputPos)
 
void GeneratePointsInVolume (G4ThreeVector &outputPos)
 
G4bool IsSourceConfined (G4ThreeVector &outputPos)
 
void InitThreadLocalCache () const
 
void HandleThreadLocalCache (const G4ThreeVector &v1, const G4ThreeVector &v2, const G4ThreeVector &v3)
 

Private Attributes

G4String SourcePosType
 
G4String Shape
 
G4double halfx
 
G4double halfy
 
G4double halfz
 
G4double Radius
 
G4double Radius0
 
G4double SR
 
G4double SX
 
G4double SY
 
G4ThreeVector CentreCoords
 
G4ThreeVector Rotx
 
G4ThreeVector Roty
 
G4ThreeVector Rotz
 
G4double ParAlpha
 
G4double ParTheta
 
G4double ParPhi
 
G4bool Confine
 
G4String VolName
 
G4Cache< G4ThreeVector * > CSideRefVec1
 
G4Cache< G4ThreeVector * > CSideRefVec2
 
G4Cache< G4ThreeVector * > CSideRefVec3
 
G4Cache< G4ThreeVectorCParticlePos
 
G4ThreeVector particle_position
 
G4SPSRandomGeneratorposRndm
 
G4int verbosityLevel
 
G4Mutex mutex
 

Detailed Description

Definition at line 145 of file G4SPSPosDistribution.hh.

Constructor & Destructor Documentation

G4SPSPosDistribution::G4SPSPosDistribution ( )

Definition at line 58 of file G4SPSPosDistribution.cc.

References CentreCoords, Confine, G4MUTEXINIT, halfx, halfy, halfz, CLHEP::HepXHat(), CLHEP::HepYHat(), CLHEP::HepZHat(), mutex, ParAlpha, ParPhi, ParTheta, Radius, Radius0, Rotx, Roty, Rotz, Shape, SourcePosType, SR, SX, SY, verbosityLevel, and VolName.

+ Here is the call graph for this function:

G4SPSPosDistribution::~G4SPSPosDistribution ( )

Definition at line 96 of file G4SPSPosDistribution.cc.

References G4MUTEXDESTROY, and mutex.

Member Function Documentation

void G4SPSPosDistribution::ConfineSourceToVolume ( G4String  Vname)

Definition at line 329 of file G4SPSPosDistribution.cc.

References Confine, G4cout, G4endl, G4PhysicalVolumeStore::GetInstance(), G4VPhysicalVolume::GetName(), mutex, verbosityLevel, and VolName.

Referenced by G4GeneralParticleSourceMessenger::SetNewValue().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4ThreeVector G4SPSPosDistribution::GenerateOne ( )

Definition at line 1074 of file G4SPSPosDistribution.cc.

References Confine, CParticlePos, G4endl, G4Exception(), GeneratePointsInBeam(), GeneratePointsInPlane(), GeneratePointsInVolume(), GeneratePointsOnSurface(), GeneratePointSource(), IsSourceConfined(), JustWarning, particle_position, G4Cache< VALTYPE >::Put(), and SourcePosType.

Referenced by G4SingleParticleSource::GeneratePrimaryVertex().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4SPSPosDistribution::GeneratePointsInBeam ( G4ThreeVector outoutPos)
private

Definition at line 378 of file G4SPSPosDistribution.cc.

References CentreCoords, G4cout, G4endl, G4SPSRandomGenerator::GenRandX(), G4SPSRandomGenerator::GenRandY(), halfx, halfy, posRndm, Radius, Rotx, Roty, Rotz, Shape, G4INCL::DeJongSpin::shoot(), SX, SY, verbosityLevel, and z.

Referenced by GenerateOne().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4SPSPosDistribution::GeneratePointsInPlane ( G4ThreeVector outoutPos)
private

Definition at line 438 of file G4SPSPosDistribution.cc.

References CentreCoords, CSideRefVec1, CSideRefVec2, CSideRefVec3, G4cerr, G4cout, G4endl, G4SPSRandomGenerator::GenRandX(), G4SPSRandomGenerator::GenRandY(), G4Cache< VALTYPE >::Get(), halfx, halfy, HandleThreadLocalCache(), posRndm, Radius, Radius0, Rotx, Roty, Rotz, Shape, SourcePosType, verbosityLevel, and z.

Referenced by GenerateOne().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4SPSPosDistribution::GeneratePointsInVolume ( G4ThreeVector outputPos)
private

Definition at line 937 of file G4SPSPosDistribution.cc.

References CentreCoords, CSideRefVec1, CSideRefVec2, CSideRefVec3, G4cout, G4endl, G4SPSRandomGenerator::GenRandX(), G4SPSRandomGenerator::GenRandY(), G4SPSRandomGenerator::GenRandZ(), G4Cache< VALTYPE >::Get(), halfx, halfy, halfz, HandleThreadLocalCache(), ParAlpha, ParPhi, ParTheta, posRndm, Radius, Rotx, Roty, Rotz, Shape, SourcePosType, verbosityLevel, and z.

Referenced by GenerateOne().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4SPSPosDistribution::GeneratePointsOnSurface ( G4ThreeVector outputPos)
private

Definition at line 553 of file G4SPSPosDistribution.cc.

References CentreCoords, CSideRefVec1, CSideRefVec2, CSideRefVec3, G4cout, G4endl, G4UniformRand, G4SPSRandomGenerator::GenRandPosPhi(), G4SPSRandomGenerator::GenRandPosTheta(), G4SPSRandomGenerator::GenRandX(), G4SPSRandomGenerator::GenRandY(), G4SPSRandomGenerator::GenRandZ(), G4Cache< VALTYPE >::Get(), halfx, halfy, halfz, HandleThreadLocalCache(), ParAlpha, ParPhi, ParTheta, G4INCL::Math::pi, posRndm, Radius, Rotx, Roty, Rotz, Shape, SourcePosType, verbosityLevel, and z.

Referenced by GenerateOne().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4SPSPosDistribution::GeneratePointSource ( G4ThreeVector outoutPos)
private

Definition at line 368 of file G4SPSPosDistribution.cc.

References CentreCoords, G4cerr, G4endl, SourcePosType, and verbosityLevel.

Referenced by GenerateOne().

+ Here is the caller graph for this function:

void G4SPSPosDistribution::GenerateRotationMatrices ( )
private

Definition at line 310 of file G4SPSPosDistribution.cc.

References G4cout, G4endl, mutex, Rotx, Roty, Rotz, and verbosityLevel.

Referenced by SetPosRot1(), and SetPosRot2().

+ Here is the caller graph for this function:

G4ThreeVector G4SPSPosDistribution::GetCentreCoords ( )

Definition at line 225 of file G4SPSPosDistribution.cc.

References CentreCoords, and mutex.

G4double G4SPSPosDistribution::GetHalfX ( )

Definition at line 231 of file G4SPSPosDistribution.cc.

References halfx, and mutex.

G4double G4SPSPosDistribution::GetHalfY ( )

Definition at line 237 of file G4SPSPosDistribution.cc.

References halfy, and mutex.

G4double G4SPSPosDistribution::GetHalfZ ( )

Definition at line 243 of file G4SPSPosDistribution.cc.

References halfz, and mutex.

G4ThreeVector G4SPSPosDistribution::GetParticlePos ( ) const

Definition at line 272 of file G4SPSPosDistribution.cc.

References CParticlePos, and G4Cache< VALTYPE >::Get().

Referenced by G4SPSAngDistribution::GenerateFocusedFlux().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4String G4SPSPosDistribution::GetPosDisShape ( )

Definition at line 219 of file G4SPSPosDistribution.cc.

References mutex, and Shape.

G4String G4SPSPosDistribution::GetPosDisType ( )

Definition at line 213 of file G4SPSPosDistribution.cc.

References mutex, and SourcePosType.

Referenced by UltraPrimaryGeneratorAction::GeneratePrimaries().

+ Here is the caller graph for this function:

G4double G4SPSPosDistribution::GetRadius ( )

Definition at line 249 of file G4SPSPosDistribution.cc.

References mutex, and Radius.

G4ThreeVector G4SPSPosDistribution::GetSideRefVec1 ( ) const

Definition at line 295 of file G4SPSPosDistribution.cc.

References CSideRefVec1, G4Cache< VALTYPE >::Get(), and InitThreadLocalCache().

Referenced by G4SPSAngDistribution::GenerateCosineLawFlux(), G4SPSAngDistribution::GenerateIsotropicFlux(), and G4SPSAngDistribution::GenerateUserDefFlux().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4ThreeVector G4SPSPosDistribution::GetSideRefVec2 ( ) const

Definition at line 300 of file G4SPSPosDistribution.cc.

References CSideRefVec2, G4Cache< VALTYPE >::Get(), and InitThreadLocalCache().

Referenced by G4SPSAngDistribution::GenerateCosineLawFlux(), G4SPSAngDistribution::GenerateIsotropicFlux(), and G4SPSAngDistribution::GenerateUserDefFlux().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4ThreeVector G4SPSPosDistribution::GetSideRefVec3 ( ) const

Definition at line 305 of file G4SPSPosDistribution.cc.

References CSideRefVec3, G4Cache< VALTYPE >::Get(), and InitThreadLocalCache().

Referenced by G4SPSAngDistribution::GenerateCosineLawFlux(), G4SPSAngDistribution::GenerateIsotropicFlux(), and G4SPSAngDistribution::GenerateUserDefFlux().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4String G4SPSPosDistribution::GetSourcePosType ( )

Definition at line 267 of file G4SPSPosDistribution.cc.

References mutex, and SourcePosType.

Referenced by G4SPSAngDistribution::GenerateCosineLawFlux(), and G4SPSAngDistribution::GenerateIsotropicFlux().

+ Here is the caller graph for this function:

void G4SPSPosDistribution::HandleThreadLocalCache ( const G4ThreeVector v1,
const G4ThreeVector v2,
const G4ThreeVector v3 
)
private

Definition at line 276 of file G4SPSPosDistribution.cc.

References CSideRefVec1, CSideRefVec2, CSideRefVec3, G4Cache< VALTYPE >::Get(), and InitThreadLocalCache().

Referenced by GeneratePointsInPlane(), GeneratePointsInVolume(), and GeneratePointsOnSurface().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4SPSPosDistribution::InitThreadLocalCache ( ) const
private

Definition at line 284 of file G4SPSPosDistribution.cc.

References CSideRefVec1, CSideRefVec2, CSideRefVec3, G4Cache< VALTYPE >::Get(), CLHEP::HepXHat(), CLHEP::HepYHat(), CLHEP::HepZHat(), G4Cache< VALTYPE >::Put(), and G4AutoDelete::Register().

Referenced by GetSideRefVec1(), GetSideRefVec2(), GetSideRefVec3(), and HandleThreadLocalCache().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4SPSPosDistribution::IsSourceConfined ( G4ThreeVector outputPos)
private

Definition at line 1048 of file G4SPSPosDistribution.cc.

References Confine, G4cout, G4endl, G4VPhysicalVolume::GetName(), G4TransportationManager::GetNavigatorForTracking(), G4TransportationManager::GetTransportationManager(), G4Navigator::LocateGlobalPointAndSetup(), verbosityLevel, and VolName.

Referenced by GenerateOne().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4SPSPosDistribution::SetBeamSigmaInR ( G4double  r)

Definition at line 176 of file G4SPSPosDistribution.cc.

References mutex, SR, SX, and SY.

Referenced by ExExChPrimaryGeneratorAction::ExExChPrimaryGeneratorAction(), and G4GeneralParticleSourceMessenger::SetNewValue().

+ Here is the caller graph for this function:

void G4SPSPosDistribution::SetBeamSigmaInX ( G4double  r)

Definition at line 183 of file G4SPSPosDistribution.cc.

References mutex, and SX.

Referenced by G4GeneralParticleSourceMessenger::SetNewValue().

+ Here is the caller graph for this function:

void G4SPSPosDistribution::SetBeamSigmaInY ( G4double  r)

Definition at line 189 of file G4SPSPosDistribution.cc.

References mutex, and SY.

Referenced by G4GeneralParticleSourceMessenger::SetNewValue().

+ Here is the caller graph for this function:

void G4SPSPosDistribution::SetBiasRndm ( G4SPSRandomGenerator a)

Definition at line 255 of file G4SPSPosDistribution.cc.

References a, mutex, and posRndm.

Referenced by G4SingleParticleSource::G4SingleParticleSource().

+ Here is the caller graph for this function:

void G4SPSPosDistribution::SetCentreCoords ( G4ThreeVector  coordsOfCentre)
void G4SPSPosDistribution::SetHalfX ( G4double  xhalf)

Definition at line 146 of file G4SPSPosDistribution.cc.

References halfx, and mutex.

Referenced by G4GeneralParticleSourceMessenger::SetNewValue().

+ Here is the caller graph for this function:

void G4SPSPosDistribution::SetHalfY ( G4double  yhalf)

Definition at line 152 of file G4SPSPosDistribution.cc.

References halfy, and mutex.

Referenced by G4GeneralParticleSourceMessenger::SetNewValue().

+ Here is the caller graph for this function:

void G4SPSPosDistribution::SetHalfZ ( G4double  zhalf)

Definition at line 158 of file G4SPSPosDistribution.cc.

References halfz, and mutex.

Referenced by G4GeneralParticleSourceMessenger::SetNewValue().

+ Here is the caller graph for this function:

void G4SPSPosDistribution::SetParAlpha ( G4double  paralp)

Definition at line 195 of file G4SPSPosDistribution.cc.

References mutex, and ParAlpha.

Referenced by G4GeneralParticleSourceMessenger::SetNewValue().

+ Here is the caller graph for this function:

void G4SPSPosDistribution::SetParPhi ( G4double  parphi)

Definition at line 207 of file G4SPSPosDistribution.cc.

References mutex, and ParPhi.

Referenced by G4GeneralParticleSourceMessenger::SetNewValue().

+ Here is the caller graph for this function:

void G4SPSPosDistribution::SetParTheta ( G4double  parthe)

Definition at line 201 of file G4SPSPosDistribution.cc.

References mutex, and ParTheta.

Referenced by G4GeneralParticleSourceMessenger::SetNewValue().

+ Here is the caller graph for this function:

void G4SPSPosDistribution::SetPosDisShape ( G4String  shapeType)

Definition at line 107 of file G4SPSPosDistribution.cc.

References mutex, and Shape.

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

+ Here is the caller graph for this function:

void G4SPSPosDistribution::SetPosDisType ( G4String  PosType)
void G4SPSPosDistribution::SetPosRot1 ( G4ThreeVector  posrot1)

Definition at line 119 of file G4SPSPosDistribution.cc.

References G4cout, G4endl, GenerateRotationMatrices(), mutex, Rotx, G4TemplateAutoLock< M, L, U >::unlock(), and verbosityLevel.

Referenced by G4GeneralParticleSourceMessenger::SetNewValue(), and UltraPrimaryGeneratorAction::UltraPrimaryGeneratorAction().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4SPSPosDistribution::SetPosRot2 ( G4ThreeVector  posrot2)

Definition at line 132 of file G4SPSPosDistribution.cc.

References G4cout, G4endl, GenerateRotationMatrices(), mutex, Roty, G4TemplateAutoLock< M, L, U >::unlock(), and verbosityLevel.

Referenced by G4GeneralParticleSourceMessenger::SetNewValue(), and UltraPrimaryGeneratorAction::UltraPrimaryGeneratorAction().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4SPSPosDistribution::SetRadius ( G4double  rds)

Definition at line 164 of file G4SPSPosDistribution.cc.

References mutex, and Radius.

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

+ Here is the caller graph for this function:

void G4SPSPosDistribution::SetRadius0 ( G4double  rds)

Definition at line 170 of file G4SPSPosDistribution.cc.

References mutex, and Radius0.

Referenced by G4GeneralParticleSourceMessenger::SetNewValue().

+ Here is the caller graph for this function:

void G4SPSPosDistribution::SetVerbosity ( G4int  a)

Definition at line 261 of file G4SPSPosDistribution.cc.

References a, mutex, and verbosityLevel.

Referenced by G4SingleParticleSource::SetVerbosity().

+ Here is the caller graph for this function:

Member Data Documentation

G4bool G4SPSPosDistribution::Confine
private
G4Cache<G4ThreeVector> G4SPSPosDistribution::CParticlePos
private

Definition at line 221 of file G4SPSPosDistribution.hh.

Referenced by GenerateOne(), and GetParticlePos().

G4double G4SPSPosDistribution::halfz
private
G4double G4SPSPosDistribution::ParAlpha
private
G4double G4SPSPosDistribution::ParPhi
private
G4double G4SPSPosDistribution::ParTheta
private
G4ThreeVector G4SPSPosDistribution::particle_position
private

Definition at line 223 of file G4SPSPosDistribution.hh.

Referenced by GenerateOne().

G4double G4SPSPosDistribution::Radius0
private
G4double G4SPSPosDistribution::SR
private

Definition at line 213 of file G4SPSPosDistribution.hh.

Referenced by G4SPSPosDistribution(), and SetBeamSigmaInR().

G4double G4SPSPosDistribution::SX
private
G4double G4SPSPosDistribution::SY
private
G4String G4SPSPosDistribution::VolName
private

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