Geant4  10.00.p02
G4AdjointCrossSurfChecker Class Reference

#include <G4AdjointCrossSurfChecker.hh>

+ Collaboration diagram for G4AdjointCrossSurfChecker:

Public Member Functions

G4bool CrossingASphere (const G4Step *aStep, G4double sphere_radius, G4ThreeVector sphere_center, G4ThreeVector &crossing_pos, G4double &cos_to_surface, G4bool &GoingIn)
 
G4bool GoingInOrOutOfaVolume (const G4Step *aStep, const G4String &volume_name, G4double &cos_to_surface, G4bool &GoingIn)
 
G4bool GoingInOrOutOfaVolumeByExtSurface (const G4Step *aStep, const G4String &volume_name, const G4String &mother_log_vol_name, G4double &cos_to_surface, G4bool &GoingIn)
 
G4bool CrossingAGivenRegisteredSurface (const G4Step *aStep, const G4String &surface_name, G4ThreeVector &crossing_pos, G4double &cos_to_surface, G4bool &GoingIn)
 
G4bool CrossingAGivenRegisteredSurface (const G4Step *aStep, int ind, G4ThreeVector &crossing_pos, G4double &cos_to_surface, G4bool &GoingIn)
 
G4bool CrossingOneOfTheRegisteredSurface (const G4Step *aStep, G4String &surface_name, G4ThreeVector &crossing_pos, G4double &cos_to_surface, G4bool &GoingIn)
 
G4bool CrossingAnInterfaceBetweenTwoVolumes (const G4Step *aStep, const G4String &vol1_name, const G4String &vol2_name, G4ThreeVector &crossing_pos, G4double &cos_to_surface, G4bool &GoingIn)
 
G4bool AddaSphericalSurface (const G4String &SurfaceName, G4double radius, G4ThreeVector pos, G4double &area)
 
G4bool AddaSphericalSurfaceWithCenterAtTheCenterOfAVolume (const G4String &SurfaceName, G4double radius, const G4String &volume_name, G4ThreeVector &center, G4double &area)
 
G4bool AddanExtSurfaceOfAvolume (const G4String &SurfaceName, const G4String &volume_name, G4double &area)
 
G4bool AddanInterfaceBetweenTwoVolumes (const G4String &SurfaceName, const G4String &volume_name1, const G4String &volume_name2, G4double &area)
 
void ClearListOfSelectedSurface ()
 

Static Public Member Functions

static G4AdjointCrossSurfCheckerGetInstance ()
 

Private Member Functions

 G4AdjointCrossSurfChecker ()
 
 ~G4AdjointCrossSurfChecker ()
 
G4int FindRegisteredSurface (const G4String &name)
 

Private Attributes

std::vector< G4StringListOfSurfaceName
 
std::vector< G4StringListOfSurfaceType
 
std::vector< G4doubleListOfSphereRadius
 
std::vector< G4ThreeVectorListOfSphereCenter
 
std::vector< G4StringListOfVol1Name
 
std::vector< G4StringListOfVol2Name
 
std::vector< G4doubleAreaOfSurface
 

Static Private Attributes

static G4ThreadLocal
G4AdjointCrossSurfChecker
instance = 0
 

Detailed Description

Definition at line 63 of file G4AdjointCrossSurfChecker.hh.

Constructor & Destructor Documentation

G4AdjointCrossSurfChecker::G4AdjointCrossSurfChecker ( )
private

Definition at line 51 of file G4AdjointCrossSurfChecker.cc.

Referenced by GetInstance().

+ Here is the caller graph for this function:

G4AdjointCrossSurfChecker::~G4AdjointCrossSurfChecker ( )
private

Definition at line 56 of file G4AdjointCrossSurfChecker.cc.

References instance.

Member Function Documentation

G4bool G4AdjointCrossSurfChecker::AddanExtSurfaceOfAvolume ( const G4String SurfaceName,
const G4String volume_name,
G4double area 
)

Definition at line 316 of file G4AdjointCrossSurfChecker.cc.

References AreaOfSurface, FindRegisteredSurface(), G4cout, G4PhysicalVolumeStore::GetInstance(), G4VPhysicalVolume::GetLogicalVolume(), G4VPhysicalVolume::GetMotherLogical(), G4LogicalVolume::GetName(), G4LogicalVolume::GetSolid(), G4VSolid::GetSurfaceArea(), ListOfSphereCenter, ListOfSphereRadius, ListOfSurfaceName, ListOfSurfaceType, ListOfVol1Name, and ListOfVol2Name.

Referenced by G4AdjointSimManager::DefineAdjointSourceOnTheExtSurfaceOfAVolume(), and G4AdjointSimManager::DefineExtSourceOnTheExtSurfaceOfAVolume().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4AdjointCrossSurfChecker::AddanInterfaceBetweenTwoVolumes ( const G4String SurfaceName,
const G4String volume_name1,
const G4String volume_name2,
G4double area 
)

Definition at line 358 of file G4AdjointCrossSurfChecker.cc.

References AreaOfSurface, FindRegisteredSurface(), ListOfSphereCenter, ListOfSphereRadius, ListOfSurfaceName, ListOfSurfaceType, ListOfVol1Name, and ListOfVol2Name.

+ Here is the call graph for this function:

G4bool G4AdjointCrossSurfChecker::AddaSphericalSurface ( const G4String SurfaceName,
G4double  radius,
G4ThreeVector  pos,
G4double area 
)

Definition at line 247 of file G4AdjointCrossSurfChecker.cc.

References AreaOfSurface, FindRegisteredSurface(), ListOfSphereCenter, ListOfSphereRadius, ListOfSurfaceName, ListOfSurfaceType, ListOfVol1Name, ListOfVol2Name, G4INCL::Math::pi, and pos.

Referenced by AddaSphericalSurfaceWithCenterAtTheCenterOfAVolume(), G4AdjointSimManager::DefineSphericalAdjointSource(), and G4AdjointSimManager::DefineSphericalExtSource().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4AdjointCrossSurfChecker::AddaSphericalSurfaceWithCenterAtTheCenterOfAVolume ( const G4String SurfaceName,
G4double  radius,
const G4String volume_name,
G4ThreeVector center,
G4double area 
)

Definition at line 272 of file G4AdjointCrossSurfChecker.cc.

References AddaSphericalSurface(), cm, G4cout, G4VPhysicalVolume::GetFrameRotation(), G4PhysicalVolumeStore::GetInstance(), G4VPhysicalVolume::GetMotherLogical(), G4VPhysicalVolume::GetObjectTranslation(), and G4AffineTransform::NetTranslation().

Referenced by G4AdjointSimManager::DefineSphericalAdjointSourceWithCentreAtTheCentreOfAVolume(), and G4AdjointSimManager::DefineSphericalExtSourceWithCentreAtTheCentreOfAVolume().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4AdjointCrossSurfChecker::ClearListOfSelectedSurface ( )
G4bool G4AdjointCrossSurfChecker::CrossingAGivenRegisteredSurface ( const G4Step aStep,
const G4String surface_name,
G4ThreeVector crossing_pos,
G4double cos_to_surface,
G4bool GoingIn 
)

Definition at line 164 of file G4AdjointCrossSurfChecker.cc.

References FindRegisteredSurface().

Referenced by CrossingOneOfTheRegisteredSurface().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4AdjointCrossSurfChecker::CrossingAGivenRegisteredSurface ( const G4Step aStep,
int  ind,
G4ThreeVector crossing_pos,
G4double cos_to_surface,
G4bool GoingIn 
)

Definition at line 175 of file G4AdjointCrossSurfChecker.cc.

References CrossingAnInterfaceBetweenTwoVolumes(), CrossingASphere(), G4StepPoint::GetPosition(), G4Step::GetPostStepPoint(), GoingInOrOutOfaVolumeByExtSurface(), ListOfSphereCenter, ListOfSphereRadius, ListOfSurfaceType, ListOfVol1Name, and ListOfVol2Name.

+ Here is the call graph for this function:

G4bool G4AdjointCrossSurfChecker::CrossingAnInterfaceBetweenTwoVolumes ( const G4Step aStep,
const G4String vol1_name,
const G4String vol2_name,
G4ThreeVector crossing_pos,
G4double cos_to_surface,
G4bool GoingIn 
)

Definition at line 215 of file G4AdjointCrossSurfChecker.cc.

References fGeomBoundary, G4VPhysicalVolume::GetLogicalVolume(), G4VPhysicalVolume::GetName(), G4LogicalVolume::GetName(), G4Step::GetPostStepPoint(), G4Step::GetPreStepPoint(), G4StepPoint::GetStepStatus(), G4StepPoint::GetTouchable(), and G4VTouchable::GetVolume().

Referenced by CrossingAGivenRegisteredSurface().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4AdjointCrossSurfChecker::CrossingASphere ( const G4Step aStep,
G4double  sphere_radius,
G4ThreeVector  sphere_center,
G4ThreeVector crossing_pos,
G4double cos_to_surface,
G4bool GoingIn 
)

Definition at line 69 of file G4AdjointCrossSurfChecker.cc.

References a, G4StepPoint::GetPosition(), G4Step::GetPostStepPoint(), and G4Step::GetPreStepPoint().

Referenced by CrossingAGivenRegisteredSurface().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4AdjointCrossSurfChecker::CrossingOneOfTheRegisteredSurface ( const G4Step aStep,
G4String surface_name,
G4ThreeVector crossing_pos,
G4double cos_to_surface,
G4bool GoingIn 
)

Definition at line 203 of file G4AdjointCrossSurfChecker.cc.

References CrossingAGivenRegisteredSurface(), and ListOfSurfaceName.

Referenced by G4AdjointSteppingAction::UserSteppingAction().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4int G4AdjointCrossSurfChecker::FindRegisteredSurface ( const G4String name)
private

Definition at line 395 of file G4AdjointCrossSurfChecker.cc.

References ListOfSurfaceName.

Referenced by AddanExtSurfaceOfAvolume(), AddanInterfaceBetweenTwoVolumes(), AddaSphericalSurface(), and CrossingAGivenRegisteredSurface().

+ Here is the caller graph for this function:

G4AdjointCrossSurfChecker * G4AdjointCrossSurfChecker::GetInstance ( void  )
static

Definition at line 62 of file G4AdjointCrossSurfChecker.cc.

References G4AdjointCrossSurfChecker(), and instance.

Referenced by G4AdjointSimManager::DefineAdjointSourceOnTheExtSurfaceOfAVolume(), G4AdjointSimManager::DefineExtSourceOnTheExtSurfaceOfAVolume(), G4AdjointSimManager::DefineSphericalAdjointSource(), G4AdjointSimManager::DefineSphericalAdjointSourceWithCentreAtTheCentreOfAVolume(), G4AdjointSimManager::DefineSphericalExtSource(), G4AdjointSimManager::DefineSphericalExtSourceWithCentreAtTheCentreOfAVolume(), and G4AdjointSteppingAction::G4AdjointSteppingAction().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4AdjointCrossSurfChecker::GoingInOrOutOfaVolume ( const G4Step aStep,
const G4String volume_name,
G4double cos_to_surface,
G4bool GoingIn 
)

Definition at line 107 of file G4AdjointCrossSurfChecker.cc.

References fGeomBoundary, G4VPhysicalVolume::GetName(), G4Step::GetPostStepPoint(), G4Step::GetPreStepPoint(), G4StepPoint::GetStepStatus(), G4StepPoint::GetTouchable(), and G4VTouchable::GetVolume().

+ Here is the call graph for this function:

G4bool G4AdjointCrossSurfChecker::GoingInOrOutOfaVolumeByExtSurface ( const G4Step aStep,
const G4String volume_name,
const G4String mother_log_vol_name,
G4double cos_to_surface,
G4bool GoingIn 
)

Definition at line 135 of file G4AdjointCrossSurfChecker.cc.

References fGeomBoundary, G4VPhysicalVolume::GetLogicalVolume(), G4VPhysicalVolume::GetName(), G4LogicalVolume::GetName(), G4Step::GetPostStepPoint(), G4Step::GetPreStepPoint(), G4StepPoint::GetStepStatus(), G4StepPoint::GetTouchable(), and G4VTouchable::GetVolume().

Referenced by CrossingAGivenRegisteredSurface().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

std::vector<G4double> G4AdjointCrossSurfChecker::AreaOfSurface
private
G4ThreadLocal G4AdjointCrossSurfChecker * G4AdjointCrossSurfChecker::instance = 0
staticprivate

Definition at line 94 of file G4AdjointCrossSurfChecker.hh.

Referenced by GetInstance(), and ~G4AdjointCrossSurfChecker().

std::vector<G4ThreeVector> G4AdjointCrossSurfChecker::ListOfSphereCenter
private
std::vector<G4double> G4AdjointCrossSurfChecker::ListOfSphereRadius
private
std::vector<G4String> G4AdjointCrossSurfChecker::ListOfSurfaceType
private
std::vector<G4String> G4AdjointCrossSurfChecker::ListOfVol1Name
private
std::vector<G4String> G4AdjointCrossSurfChecker::ListOfVol2Name
private

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