54 : radius_spherical_source(0.),fLinearNavigator(0),theAccumulatedDepthVector(0)
87 if (costh_to_normal <1.
e-4) costh_to_normal =1.e-4;
116 if (costh_to_normal <1.
e-4) costh_to_normal =1.e-4;
179 while (newStep > 0. && thePhysVolume) {
193 position=position+newStep*direction;
void SetParticleDefinition(G4ParticleDefinition *aParticleDefinition)
virtual G4double ComputeStep(const G4ThreeVector &pGlobalPoint, const G4ThreeVector &pDirection, const G4double pCurrentProposedStepLength, G4double &pNewSafety)
CLHEP::Hep3Vector G4ThreeVector
static const G4double pos
G4LogicalVolume * GetLogicalVolume() const
void SetEnergyDisType(G4String)
void InsertValues(G4double energy, G4double value)
void SetPosDisType(G4String)
G4double FindLinearEnergy(G4double rand) const
G4PhysicsOrderedFreeVector * theAccumulatedDepthVector
G4SPSPosDistribution * GetPosDist() const
G4SingleParticleSource * theSingleParticleSource
G4Navigator * GetNavigatorForTracking() const
void ComputeAccumulatedDepthVectorAlongBackRay(G4ThreeVector glob_pos, G4ThreeVector direction, G4double ekin, G4ParticleDefinition *aPartDef)
G4Material * GetMaterial() const
void GenerateAdjointPrimaryVertex(G4Event *anEvt, G4ParticleDefinition *adj_part, G4double E1, G4double E2)
void SetPosDisShape(G4String)
void GenerateAPositionOnTheExtSurfaceOfThePhysicalVolume(G4ThreeVector &p, G4ThreeVector &direction)
void SetMaxTheta(G4double)
G4SPSAngDistribution * GetAngDist() const
void GeneratePrimaryVertex(G4Event *evt)
G4String type_of_adjoint_source
G4ThreeVector center_spherical_source
void DefinePhysicalVolume1(const G4String &aName)
void SetMinTheta(G4double)
G4SPSEneDistribution * GetEneDist() const
static constexpr double halfpi
G4AdjointPrimaryGenerator()
G4double SampleDistanceAlongBackRayAndComputeWeightCorrection(G4double &weight_corr)
G4double radius_spherical_source
static G4TransportationManager * GetTransportationManager()
~G4AdjointPrimaryGenerator()
G4AdjointPosOnPhysVolGenerator * theG4AdjointPosOnPhysVolGenerator
void SetSphericalAdjointPrimarySource(G4double radius, G4ThreeVector pos)
static G4AdjointPosOnPhysVolGenerator * GetInstance()
void SetAdjointPrimarySourceOnAnExtSurfaceOfAVolume(const G4String &volume_name)
virtual G4VPhysicalVolume * LocateGlobalPointAndSetup(const G4ThreeVector &point, const G4ThreeVector *direction=0, const G4bool pRelativeSearch=true, const G4bool ignoreDirection=true)
G4Navigator * fLinearNavigator
static constexpr double pi
void SetCentreCoords(G4ThreeVector)
void GenerateFwdPrimaryVertex(G4Event *anEvt, G4ParticleDefinition *adj_part, G4double E1, G4double E2)
void SetParticleMomentumDirection(G4ParticleMomentum aMomentumDirection)
G4double GetDensity() const
void SetAngDistType(G4String)