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

#include <geant4/tree/geant4-10.6-release/source/geometry/volumes/include/G4ReflectionFactory.hh>

+ Collaboration diagram for G4ReflectionFactory:

Public Member Functions

virtual ~G4ReflectionFactory ()
 
G4PhysicalVolumesPair Place (const G4Transform3D &transform3D, const G4String &name, G4LogicalVolume *LV, G4LogicalVolume *motherLV, G4bool isMany, G4int copyNo, G4bool surfCheck=false)
 
G4PhysicalVolumesPair Replicate (const G4String &name, G4LogicalVolume *LV, G4LogicalVolume *motherLV, EAxis axis, G4int nofReplicas, G4double width, G4double offset=0.)
 
G4PhysicalVolumesPair Divide (const G4String &name, G4LogicalVolume *LV, G4LogicalVolume *motherLV, EAxis axis, G4int nofDivisions, G4double width, G4double offset)
 
G4PhysicalVolumesPair Divide (const G4String &name, G4LogicalVolume *LV, G4LogicalVolume *motherLV, EAxis axis, G4int nofDivisions, G4double offset)
 
G4PhysicalVolumesPair Divide (const G4String &name, G4LogicalVolume *LV, G4LogicalVolume *motherLV, EAxis axis, G4double width, G4double offset)
 
void SetVerboseLevel (G4int verboseLevel)
 
G4int GetVerboseLevel () const
 
void SetVolumesNameExtension (const G4String &nameExtension)
 
const G4StringGetVolumesNameExtension () const
 
void SetScalePrecision (G4double scaleValue)
 
G4double GetScalePrecision () const
 
G4LogicalVolumeGetConstituentLV (G4LogicalVolume *reflLV) const
 
G4LogicalVolumeGetReflectedLV (G4LogicalVolume *lv) const
 
G4bool IsConstituent (G4LogicalVolume *lv) const
 
G4bool IsReflected (G4LogicalVolume *lv) const
 
const G4ReflectedVolumesMapGetReflectedVolumesMap () const
 
void Reset ()
 
 G4ReflectionFactory (const G4ReflectionFactory &)=delete
 
G4ReflectionFactoryoperator= (const G4ReflectionFactory &)=delete
 

Static Public Member Functions

static G4ReflectionFactoryInstance ()
 

Protected Member Functions

 G4ReflectionFactory ()
 

Private Types

using LogicalVolumesMapIterator = G4ReflectedVolumesMap::const_iterator
 

Private Member Functions

G4LogicalVolumeReflectLV (G4LogicalVolume *LV, G4bool surfCheck=false)
 
G4LogicalVolumeCreateReflectedLV (G4LogicalVolume *LV)
 
void ReflectDaughters (G4LogicalVolume *LV, G4LogicalVolume *refLV, G4bool surfCheck=false)
 
void ReflectPVPlacement (G4VPhysicalVolume *PV, G4LogicalVolume *refLV, G4bool surfCheck=false)
 
void ReflectPVReplica (G4VPhysicalVolume *PV, G4LogicalVolume *refLV)
 
void ReflectPVDivision (G4VPhysicalVolume *PV, G4LogicalVolume *refLV)
 
void ReflectPVParameterised (G4VPhysicalVolume *PV, G4LogicalVolume *refLV, G4bool surfChk=false)
 
G4bool IsReflection (const G4Scale3D &scale) const
 
void CheckScale (const G4Scale3D &scale) const
 
G4VPVDivisionFactoryGetPVDivisionFactory () const
 
void PrintConstituentLVMap ()
 

Private Attributes

G4double fScalePrecision
 
G4int fVerboseLevel = 0
 
G4String fNameExtension
 
G4ReflectedVolumesMap fConstituentLVMap
 
G4ReflectedVolumesMap fReflectedLVMap
 

Static Private Attributes

static G4ThreadLocal
G4ReflectionFactory
fInstance = nullptr
 
static const G4String fDefaultNameExtension = "_refl"
 
static const G4Scale3D fScale = G4ScaleZ3D(-1.0)
 

Detailed Description

Definition at line 78 of file G4ReflectionFactory.hh.

View newest version in sPHENIX GitHub at line 78 of file G4ReflectionFactory.hh

Member Typedef Documentation

using G4ReflectionFactory::LogicalVolumesMapIterator = G4ReflectedVolumesMap::const_iterator
private

Definition at line 80 of file G4ReflectionFactory.hh.

View newest version in sPHENIX GitHub at line 80 of file G4ReflectionFactory.hh

Constructor & Destructor Documentation

G4ReflectionFactory::~G4ReflectionFactory ( )
virtual

Definition at line 92 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 92 of file G4ReflectionFactory.cc

References fInstance.

G4ReflectionFactory::G4ReflectionFactory ( const G4ReflectionFactory )
delete
G4ReflectionFactory::G4ReflectionFactory ( )
protected

Definition at line 79 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 79 of file G4ReflectionFactory.cc

References fInstance, fScalePrecision, G4GeometryTolerance::GetInstance(), and G4GeometryTolerance::GetSurfaceTolerance().

Referenced by Instance().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Function Documentation

void G4ReflectionFactory::CheckScale ( const G4Scale3D scale) const
private

Definition at line 778 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 778 of file G4ReflectionFactory.cc

References kdfinder::abs(), FatalException, fScale, fScalePrecision, G4endl, G4Exception(), IsReflection(), message(), and scale.

Referenced by Place().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4LogicalVolume * G4ReflectionFactory::CreateReflectedLV ( G4LogicalVolume LV)
private

Definition at line 398 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 398 of file G4ReflectionFactory.cc

References FatalException, fConstituentLVMap, fNameExtension, fReflectedLVMap, fScale, G4endl, G4Exception(), G4LogicalVolume::GetBiasWeight(), G4LogicalVolume::GetFieldManager(), G4LogicalVolume::GetMaterial(), G4VSolid::GetName(), G4LogicalVolume::GetName(), G4LogicalVolume::GetRegion(), G4LogicalVolume::GetSensitiveDetector(), G4LogicalVolume::GetSolid(), G4LogicalVolume::GetUserLimits(), G4LogicalVolume::GetVisAttributes(), G4LogicalVolume::IsRegion(), message(), and G4LogicalVolume::SetVisAttributes().

Referenced by ReflectLV(), ReflectPVDivision(), ReflectPVPlacement(), and ReflectPVReplica().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4PhysicalVolumesPair G4ReflectionFactory::Divide ( const G4String name,
G4LogicalVolume LV,
G4LogicalVolume motherLV,
EAxis  axis,
G4int  nofDivisions,
G4double  width,
G4double  offset 
)

Definition at line 238 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 238 of file G4ReflectionFactory.cc

References G4VPVDivisionFactory::CreatePVDivision(), fVerboseLevel, G4cout, G4endl, G4LogicalVolume::GetName(), GetPVDivisionFactory(), GetReflectedLV(), and ReflectLV().

Referenced by G4GDMLReadStructure::DivisionvolRead().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4PhysicalVolumesPair G4ReflectionFactory::Divide ( const G4String name,
G4LogicalVolume LV,
G4LogicalVolume motherLV,
EAxis  axis,
G4int  nofDivisions,
G4double  offset 
)

Definition at line 280 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 280 of file G4ReflectionFactory.cc

References G4VPVDivisionFactory::CreatePVDivision(), fVerboseLevel, G4cout, G4endl, G4LogicalVolume::GetName(), GetPVDivisionFactory(), GetReflectedLV(), and ReflectLV().

+ Here is the call graph for this function:

G4PhysicalVolumesPair G4ReflectionFactory::Divide ( const G4String name,
G4LogicalVolume LV,
G4LogicalVolume motherLV,
EAxis  axis,
G4double  width,
G4double  offset 
)

Definition at line 321 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 321 of file G4ReflectionFactory.cc

References G4VPVDivisionFactory::CreatePVDivision(), fVerboseLevel, G4cout, G4endl, G4LogicalVolume::GetName(), GetPVDivisionFactory(), GetReflectedLV(), and ReflectLV().

+ Here is the call graph for this function:

G4LogicalVolume * G4ReflectionFactory::GetConstituentLV ( G4LogicalVolume reflLV) const

Definition at line 680 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 680 of file G4ReflectionFactory.cc

References fReflectedLVMap, and it.

Referenced by PHG4GDMLWriteStructure::PhysvolWrite(), G4GDMLWriteStructure::PhysvolWrite(), ReflectPVDivision(), ReflectPVPlacement(), ReflectPVReplica(), PHG4GDMLWriteStructure::TraverseVolumeTree(), and G4GDMLWriteStructure::TraverseVolumeTree().

+ Here is the caller graph for this function:

G4VPVDivisionFactory * G4ReflectionFactory::GetPVDivisionFactory ( ) const
private

Definition at line 803 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 803 of file G4ReflectionFactory.cc

References FatalException, G4endl, G4Exception(), G4VPVDivisionFactory::Instance(), and message().

Referenced by Divide(), and ReflectPVDivision().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4LogicalVolume * G4ReflectionFactory::GetReflectedLV ( G4LogicalVolume lv) const

Definition at line 696 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 696 of file G4ReflectionFactory.cc

References fConstituentLVMap, and it.

Referenced by Divide(), G4GDMLParser::ImportRegions(), Place(), ReflectLV(), ReflectPVDivision(), ReflectPVPlacement(), ReflectPVReplica(), and Replicate().

+ Here is the caller graph for this function:

const G4ReflectedVolumesMap & G4ReflectionFactory::GetReflectedVolumesMap ( ) const

Definition at line 747 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 747 of file G4ReflectionFactory.cc

References fReflectedLVMap.

G4double G4ReflectionFactory::GetScalePrecision ( ) const

Definition at line 838 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 838 of file G4ReflectionFactory.cc

References fScalePrecision.

G4int G4ReflectionFactory::GetVerboseLevel ( ) const

Definition at line 852 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 852 of file G4ReflectionFactory.cc

References fVerboseLevel.

const G4String & G4ReflectionFactory::GetVolumesNameExtension ( ) const

Definition at line 866 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 866 of file G4ReflectionFactory.cc

References fNameExtension.

G4ReflectionFactory * G4ReflectionFactory::Instance ( void  )
static

Definition at line 67 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 67 of file G4ReflectionFactory.cc

References fInstance, and G4ReflectionFactory().

Referenced by G02DetectorConstruction::ConstructDetector(), G4tgbVolume::ConstructG4PhysVol(), G3Division::CreatePVReplica(), G4GDMLReadStructure::DivisionvolRead(), G4tgbGeometryDumper::DumpPhysVol(), G4tgbGeometryDumper::DumpPVPlacement(), G4GDMLParser::ExportRegions(), G3toG4BuildPVTree(), G4GDMLWriteStructure::G4GDMLWriteStructure(), G4tgbVolumeMgr::G4tgbVolumeMgr(), G4GDMLParser::ImportRegions(), G4AssemblyVolume::MakeImprint(), PHG4GDMLWriteStructure::PHG4GDMLWriteStructure(), G4GDMLReadStructure::PhysvolRead(), DetectorConstruction::PlaceWithReflections(), and G4GDMLReadStructure::ReplicaRead().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4ReflectionFactory::IsConstituent ( G4LogicalVolume lv) const

Definition at line 711 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 711 of file G4ReflectionFactory.cc

References fConstituentLVMap.

Referenced by G4GDMLParser::ImportRegions().

+ Here is the caller graph for this function:

G4bool G4ReflectionFactory::IsReflected ( G4LogicalVolume lv) const

Definition at line 722 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 722 of file G4ReflectionFactory.cc

References fReflectedLVMap.

Referenced by G4tgbGeometryDumper::DumpPhysVol(), G4tgbGeometryDumper::DumpPVPlacement(), G4GDMLParser::ExportRegions(), PHG4GDMLWriteStructure::PhysvolWrite(), G4GDMLWriteStructure::PhysvolWrite(), ReflectPVDivision(), ReflectPVPlacement(), ReflectPVReplica(), PHG4GDMLWriteStructure::TraverseVolumeTree(), and G4GDMLWriteStructure::TraverseVolumeTree().

+ Here is the caller graph for this function:

G4bool G4ReflectionFactory::IsReflection ( const G4Scale3D scale) const
private

Definition at line 733 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 733 of file G4ReflectionFactory.cc

References scale.

Referenced by CheckScale(), and Place().

+ Here is the caller graph for this function:

G4ReflectionFactory& G4ReflectionFactory::operator= ( const G4ReflectionFactory )
delete
G4PhysicalVolumesPair G4ReflectionFactory::Place ( const G4Transform3D transform3D,
const G4String name,
G4LogicalVolume LV,
G4LogicalVolume motherLV,
G4bool  isMany,
G4int  copyNo,
G4bool  surfCheck = false 
)

Definition at line 104 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 104 of file G4ReflectionFactory.cc

References CheckScale(), fScale, fVerboseLevel, G4cout, G4endl, HepGeom::Transform3D::getDecomposition(), G4LogicalVolume::GetName(), GetReflectedLV(), HepGeom::Transform3D::inverse(), IsReflection(), ReflectLV(), and scale.

Referenced by G02DetectorConstruction::ConstructDetector(), G4tgbVolume::ConstructG4PhysVol(), G3Division::CreatePVReplica(), G3toG4BuildPVTree(), G4AssemblyVolume::MakeImprint(), G4GDMLReadStructure::PhysvolRead(), and DetectorConstruction::PlaceWithReflections().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4ReflectionFactory::PrintConstituentLVMap ( )
private

Definition at line 763 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 763 of file G4ReflectionFactory.cc

References fConstituentLVMap, G4cout, G4endl, and it.

void G4ReflectionFactory::ReflectDaughters ( G4LogicalVolume LV,
G4LogicalVolume refLV,
G4bool  surfCheck = false 
)
private

Definition at line 442 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 442 of file G4ReflectionFactory.cc

References fVerboseLevel, G4cout, G4endl, G4LogicalVolume::GetDaughter(), G4LogicalVolume::GetName(), G4LogicalVolume::GetNoDaughters(), G4VPhysicalVolume::GetParameterisation(), G4VPVDivisionFactory::Instance(), G4VPhysicalVolume::IsReplicated(), ReflectPVDivision(), ReflectPVParameterised(), ReflectPVPlacement(), and ReflectPVReplica().

Referenced by ReflectLV(), ReflectPVDivision(), ReflectPVPlacement(), and ReflectPVReplica().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4LogicalVolume * G4ReflectionFactory::ReflectLV ( G4LogicalVolume LV,
G4bool  surfCheck = false 
)
private

Definition at line 365 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 365 of file G4ReflectionFactory.cc

References G4Region::AddRootLogicalVolume(), CreateReflectedLV(), GetReflectedLV(), G4LogicalVolume::GetRegion(), G4LogicalVolume::IsRootRegion(), and ReflectDaughters().

Referenced by Divide(), Place(), and Replicate().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4ReflectionFactory::ReflectPVDivision ( G4VPhysicalVolume PV,
G4LogicalVolume refLV 
)
private

Definition at line 605 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 605 of file G4ReflectionFactory.cc

References G4VPVDivisionFactory::CreatePVDivision(), CreateReflectedLV(), fVerboseLevel, G4cout, G4endl, GetConstituentLV(), G4VPhysicalVolume::GetLogicalVolume(), G4VPhysicalVolume::GetName(), G4LogicalVolume::GetName(), G4VPhysicalVolume::GetParameterisation(), GetPVDivisionFactory(), GetReflectedLV(), IsReflected(), and ReflectDaughters().

Referenced by ReflectDaughters().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4ReflectionFactory::ReflectPVParameterised ( G4VPhysicalVolume PV,
G4LogicalVolume refLV,
G4bool  surfChk = false 
)
private

Definition at line 662 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 662 of file G4ReflectionFactory.cc

References FatalException, G4endl, G4Exception(), G4VPhysicalVolume::GetName(), and message().

Referenced by ReflectDaughters().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4ReflectionFactory::ReflectPVPlacement ( G4VPhysicalVolume PV,
G4LogicalVolume refLV,
G4bool  surfCheck = false 
)
private

Definition at line 481 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 481 of file G4ReflectionFactory.cc

References CreateReflectedLV(), fScale, fVerboseLevel, G4cout, G4endl, GetConstituentLV(), G4VPhysicalVolume::GetCopyNo(), G4VPhysicalVolume::GetLogicalVolume(), G4VPhysicalVolume::GetName(), G4LogicalVolume::GetName(), G4VPhysicalVolume::GetObjectRotationValue(), G4VPhysicalVolume::GetObjectTranslation(), GetReflectedLV(), HepGeom::Transform3D::inverse(), G4VPhysicalVolume::IsMany(), IsReflected(), and ReflectDaughters().

Referenced by ReflectDaughters().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4ReflectionFactory::ReflectPVReplica ( G4VPhysicalVolume PV,
G4LogicalVolume refLV 
)
private

Definition at line 542 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 542 of file G4ReflectionFactory.cc

References CreateReflectedLV(), fVerboseLevel, G4cout, G4endl, GetConstituentLV(), G4VPhysicalVolume::GetLogicalVolume(), G4VPhysicalVolume::GetName(), G4LogicalVolume::GetName(), GetReflectedLV(), G4VPhysicalVolume::GetReplicationData(), IsReflected(), offset, ReflectDaughters(), and width.

Referenced by ReflectDaughters().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4PhysicalVolumesPair G4ReflectionFactory::Replicate ( const G4String name,
G4LogicalVolume LV,
G4LogicalVolume motherLV,
EAxis  axis,
G4int  nofReplicas,
G4double  width,
G4double  offset = 0. 
)

Definition at line 199 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 199 of file G4ReflectionFactory.cc

References fVerboseLevel, G4cout, G4endl, G4LogicalVolume::GetName(), GetReflectedLV(), and ReflectLV().

Referenced by G3Division::CreatePVReplica(), and G4GDMLReadStructure::ReplicaRead().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4ReflectionFactory::Reset ( )

Definition at line 755 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 755 of file G4ReflectionFactory.cc

References fConstituentLVMap, and fReflectedLVMap.

void G4ReflectionFactory::SetScalePrecision ( G4double  scaleValue)

Definition at line 831 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 831 of file G4ReflectionFactory.cc

References fScalePrecision.

Referenced by G4tgbVolumeMgr::G4tgbVolumeMgr().

+ Here is the caller graph for this function:

void G4ReflectionFactory::SetVerboseLevel ( G4int  verboseLevel)

Definition at line 845 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 845 of file G4ReflectionFactory.cc

References fVerboseLevel.

void G4ReflectionFactory::SetVolumesNameExtension ( const G4String nameExtension)

Definition at line 859 of file G4ReflectionFactory.cc.

View newest version in sPHENIX GitHub at line 859 of file G4ReflectionFactory.cc

References fNameExtension.

Member Data Documentation

G4ReflectedVolumesMap G4ReflectionFactory::fConstituentLVMap
private

Definition at line 244 of file G4ReflectionFactory.hh.

View newest version in sPHENIX GitHub at line 244 of file G4ReflectionFactory.hh

Referenced by CreateReflectedLV(), GetReflectedLV(), IsConstituent(), PrintConstituentLVMap(), and Reset().

const G4String G4ReflectionFactory::fDefaultNameExtension = "_refl"
staticprivate

Definition at line 238 of file G4ReflectionFactory.hh.

View newest version in sPHENIX GitHub at line 238 of file G4ReflectionFactory.hh

G4ThreadLocal G4ReflectionFactory * G4ReflectionFactory::fInstance = nullptr
staticprivate

Definition at line 237 of file G4ReflectionFactory.hh.

View newest version in sPHENIX GitHub at line 237 of file G4ReflectionFactory.hh

Referenced by G4ReflectionFactory(), Instance(), and ~G4ReflectionFactory().

G4String G4ReflectionFactory::fNameExtension
private

Definition at line 243 of file G4ReflectionFactory.hh.

View newest version in sPHENIX GitHub at line 243 of file G4ReflectionFactory.hh

Referenced by CreateReflectedLV(), GetVolumesNameExtension(), and SetVolumesNameExtension().

G4ReflectedVolumesMap G4ReflectionFactory::fReflectedLVMap
private

Definition at line 245 of file G4ReflectionFactory.hh.

View newest version in sPHENIX GitHub at line 245 of file G4ReflectionFactory.hh

Referenced by CreateReflectedLV(), GetConstituentLV(), GetReflectedVolumesMap(), IsReflected(), and Reset().

const G4Scale3D G4ReflectionFactory::fScale = G4ScaleZ3D(-1.0)
staticprivate

Definition at line 239 of file G4ReflectionFactory.hh.

View newest version in sPHENIX GitHub at line 239 of file G4ReflectionFactory.hh

Referenced by CheckScale(), CreateReflectedLV(), Place(), and ReflectPVPlacement().

G4double G4ReflectionFactory::fScalePrecision
private

Definition at line 240 of file G4ReflectionFactory.hh.

View newest version in sPHENIX GitHub at line 240 of file G4ReflectionFactory.hh

Referenced by CheckScale(), G4ReflectionFactory(), GetScalePrecision(), and SetScalePrecision().

G4int G4ReflectionFactory::fVerboseLevel = 0
private

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