ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4AdjointCrossSurfChecker Class Reference

#include <geant4/tree/geant4-10.6-release/source/tracking/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 62 of file G4AdjointCrossSurfChecker.hh.

View newest version in sPHENIX GitHub at line 62 of file G4AdjointCrossSurfChecker.hh

Constructor & Destructor Documentation

G4AdjointCrossSurfChecker::G4AdjointCrossSurfChecker ( )
private

Definition at line 50 of file G4AdjointCrossSurfChecker.cc.

View newest version in sPHENIX GitHub at line 50 of file G4AdjointCrossSurfChecker.cc

Referenced by GetInstance().

+ Here is the caller graph for this function:

G4AdjointCrossSurfChecker::~G4AdjointCrossSurfChecker ( )
private

Definition at line 55 of file G4AdjointCrossSurfChecker.cc.

View newest version in sPHENIX GitHub at line 55 of file G4AdjointCrossSurfChecker.cc

References instance.

Member Function Documentation

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

Definition at line 315 of file G4AdjointCrossSurfChecker.cc.

View newest version in sPHENIX GitHub at line 315 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 357 of file G4AdjointCrossSurfChecker.cc.

View newest version in sPHENIX GitHub at line 357 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 246 of file G4AdjointCrossSurfChecker.cc.

View newest version in sPHENIX GitHub at line 246 of file G4AdjointCrossSurfChecker.cc

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

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 271 of file G4AdjointCrossSurfChecker.cc.

View newest version in sPHENIX GitHub at line 271 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 ( )

Definition at line 383 of file G4AdjointCrossSurfChecker.cc.

View newest version in sPHENIX GitHub at line 383 of file G4AdjointCrossSurfChecker.cc

References ListOfSphereCenter, ListOfSphereRadius, ListOfSurfaceName, ListOfSurfaceType, ListOfVol1Name, and ListOfVol2Name.

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

Definition at line 163 of file G4AdjointCrossSurfChecker.cc.

View newest version in sPHENIX GitHub at line 163 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 174 of file G4AdjointCrossSurfChecker.cc.

View newest version in sPHENIX GitHub at line 174 of file G4AdjointCrossSurfChecker.cc

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

+ 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 214 of file G4AdjointCrossSurfChecker.cc.

View newest version in sPHENIX GitHub at line 214 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 68 of file G4AdjointCrossSurfChecker.cc.

View newest version in sPHENIX GitHub at line 68 of file G4AdjointCrossSurfChecker.cc

References a, kdfinder::abs(), b, c, d, G4StepPoint::GetPosition(), G4Step::GetPostStepPoint(), G4Step::GetPreStepPoint(), CLHEP::Hep3Vector::mag(), r1, and r2.

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 202 of file G4AdjointCrossSurfChecker.cc.

View newest version in sPHENIX GitHub at line 202 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 394 of file G4AdjointCrossSurfChecker.cc.

View newest version in sPHENIX GitHub at line 394 of file G4AdjointCrossSurfChecker.cc

References int(), and ListOfSurfaceName.

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

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4AdjointCrossSurfChecker * G4AdjointCrossSurfChecker::GetInstance ( void  )
static

Definition at line 61 of file G4AdjointCrossSurfChecker.cc.

View newest version in sPHENIX GitHub at line 61 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 106 of file G4AdjointCrossSurfChecker.cc.

View newest version in sPHENIX GitHub at line 106 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 134 of file G4AdjointCrossSurfChecker.cc.

View newest version in sPHENIX GitHub at line 134 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

Definition at line 101 of file G4AdjointCrossSurfChecker.hh.

View newest version in sPHENIX GitHub at line 101 of file G4AdjointCrossSurfChecker.hh

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

G4ThreadLocal G4AdjointCrossSurfChecker * G4AdjointCrossSurfChecker::instance = 0
staticprivate

Definition at line 93 of file G4AdjointCrossSurfChecker.hh.

View newest version in sPHENIX GitHub at line 93 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::ListOfSurfaceName
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: