Geant4  10.01.p02
G4ReflectionFactory Class Reference

#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 ()
 

Static Public Member Functions

static G4ReflectionFactoryInstance ()
 

Protected Member Functions

 G4ReflectionFactory ()
 
 G4ReflectionFactory (const G4ReflectionFactory &)
 
G4ReflectionFactoryoperator= (const G4ReflectionFactory &)
 

Private Types

typedef
G4ReflectedVolumesMap::const_iterator 
LogicalVolumesMapIterator
 

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 surfCheck=false)
 
G4bool IsReflection (const G4Scale3D &scale) const
 
void CheckScale (const G4Scale3D &scale) const
 
G4VPVDivisionFactoryGetPVDivisionFactory () const
 
void PrintConstituentLVMap ()
 

Private Attributes

G4double fScalePrecision
 
G4int fVerboseLevel
 
G4String fNameExtension
 
G4ReflectedVolumesMap fConstituentLVMap
 
G4ReflectedVolumesMap fReflectedLVMap
 

Static Private Attributes

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

Detailed Description

Definition at line 84 of file G4ReflectionFactory.hh.

Member Typedef Documentation

typedef G4ReflectedVolumesMap::const_iterator G4ReflectionFactory::LogicalVolumesMapIterator
private

Definition at line 86 of file G4ReflectionFactory.hh.

Constructor & Destructor Documentation

G4ReflectionFactory::~G4ReflectionFactory ( )
virtual

Definition at line 97 of file G4ReflectionFactory.cc.

References fInstance.

G4ReflectionFactory::G4ReflectionFactory ( )
protected

Definition at line 83 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:

G4ReflectionFactory::G4ReflectionFactory ( const G4ReflectionFactory )
protected

Member Function Documentation

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

Definition at line 783 of file G4ReflectionFactory.cc.

References FatalException, fScale, fScalePrecision, G4endl, G4Exception(), and IsReflection().

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 403 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(), 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 243 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 285 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 326 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 685 of file G4ReflectionFactory.cc.

References fReflectedLVMap.

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

+ Here is the caller graph for this function:

G4VPVDivisionFactory * G4ReflectionFactory::GetPVDivisionFactory ( ) const
private

Definition at line 808 of file G4ReflectionFactory.cc.

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

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 701 of file G4ReflectionFactory.cc.

References fConstituentLVMap.

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

+ Here is the caller graph for this function:

const G4ReflectedVolumesMap & G4ReflectionFactory::GetReflectedVolumesMap ( ) const

Definition at line 752 of file G4ReflectionFactory.cc.

References fReflectedLVMap.

G4double G4ReflectionFactory::GetScalePrecision ( ) const

Definition at line 843 of file G4ReflectionFactory.cc.

References fScalePrecision.

G4int G4ReflectionFactory::GetVerboseLevel ( ) const

Definition at line 857 of file G4ReflectionFactory.cc.

References fVerboseLevel.

const G4String & G4ReflectionFactory::GetVolumesNameExtension ( ) const

Definition at line 871 of file G4ReflectionFactory.cc.

References fNameExtension.

G4ReflectionFactory * G4ReflectionFactory::Instance ( void  )
static

Definition at line 71 of file G4ReflectionFactory.cc.

References fInstance, and G4ReflectionFactory().

Referenced by G02DetectorConstruction::ConstructDetector(), G4tgbVolume::ConstructG4PhysVol(), G3Division::CreatePVReplica(), G4GDMLReadStructure::DivisionvolRead(), G4tgbGeometryDumper::DumpPhysVol(), G4tgbGeometryDumper::DumpPVPlacement(), G3toG4BuildPVTree(), G4tgbVolumeMgr::G4tgbVolumeMgr(), G4AssemblyVolume::MakeImprint(), 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 716 of file G4ReflectionFactory.cc.

References fConstituentLVMap.

G4bool G4ReflectionFactory::IsReflected ( G4LogicalVolume lv) const

Definition at line 727 of file G4ReflectionFactory.cc.

References fReflectedLVMap.

Referenced by G4tgbGeometryDumper::DumpPhysVol(), G4tgbGeometryDumper::DumpPVPlacement(), ReflectPVDivision(), ReflectPVPlacement(), and ReflectPVReplica().

+ Here is the caller graph for this function:

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

Definition at line 738 of file G4ReflectionFactory.cc.

Referenced by CheckScale(), and Place().

+ Here is the caller graph for this function:

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

Definition at line 109 of file G4ReflectionFactory.cc.

References CheckScale(), fScale, fVerboseLevel, G4cout, G4endl, G4LogicalVolume::GetName(), GetReflectedLV(), IsReflection(), name, and ReflectLV().

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 768 of file G4ReflectionFactory.cc.

References fConstituentLVMap, G4cout, and G4endl.

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

Definition at line 447 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 370 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 610 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  surfCheck = false 
)
private

Definition at line 667 of file G4ReflectionFactory.cc.

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

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 486 of file G4ReflectionFactory.cc.

References CreateReflectedLV(), fScale, fVerboseLevel, G4cout, G4endl, GetConstituentLV(), G4VPhysicalVolume::GetCopyNo(), G4VPhysicalVolume::GetLogicalVolume(), G4VPhysicalVolume::GetName(), G4LogicalVolume::GetName(), G4VPhysicalVolume::GetObjectRotationValue(), G4VPhysicalVolume::GetObjectTranslation(), GetReflectedLV(), 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 547 of file G4ReflectionFactory.cc.

References CreateReflectedLV(), fVerboseLevel, G4cout, G4endl, GetConstituentLV(), G4VPhysicalVolume::GetLogicalVolume(), G4VPhysicalVolume::GetName(), G4LogicalVolume::GetName(), GetReflectedLV(), G4VPhysicalVolume::GetReplicationData(), IsReflected(), 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 204 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 760 of file G4ReflectionFactory.cc.

References fConstituentLVMap, and fReflectedLVMap.

void G4ReflectionFactory::SetScalePrecision ( G4double  scaleValue)

Definition at line 836 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 850 of file G4ReflectionFactory.cc.

References fVerboseLevel.

void G4ReflectionFactory::SetVolumesNameExtension ( const G4String nameExtension)

Definition at line 864 of file G4ReflectionFactory.cc.

References fNameExtension.

Member Data Documentation

G4ReflectedVolumesMap G4ReflectionFactory::fConstituentLVMap
private
const G4String G4ReflectionFactory::fDefaultNameExtension = "_refl"
staticprivate

Definition at line 244 of file G4ReflectionFactory.hh.

G4ThreadLocal G4ReflectionFactory * G4ReflectionFactory::fInstance = 0
staticprivate

Definition at line 243 of file G4ReflectionFactory.hh.

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

G4String G4ReflectionFactory::fNameExtension
private
G4ReflectedVolumesMap G4ReflectionFactory::fReflectedLVMap
private
const G4Scale3D G4ReflectionFactory::fScale = G4ScaleZ3D(-1.0)
staticprivate

Definition at line 245 of file G4ReflectionFactory.hh.

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

G4double G4ReflectionFactory::fScalePrecision
private
G4int G4ReflectionFactory::fVerboseLevel
private

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