61#ifndef G4_REFLECTION_FACTORY_HH
62#define G4_REFLECTION_FACTORY_HH
77 std::less<G4LogicalVolume*> >;
std::pair< G4VPhysicalVolume *, G4VPhysicalVolume * > G4PhysicalVolumesPair
std::map< G4LogicalVolume *, G4LogicalVolume *, std::less< G4LogicalVolume * > > G4ReflectedVolumesMap
G4LogicalVolume * ReflectLV(G4LogicalVolume *LV, G4bool surfCheck=false)
G4bool IsReflection(const G4Scale3D &scale) const
G4int GetVerboseLevel() const
const G4String & GetVolumesNameExtension() const
G4bool IsReflected(G4LogicalVolume *lv) const
G4PhysicalVolumesPair Divide(const G4String &name, G4LogicalVolume *LV, G4LogicalVolume *motherLV, EAxis axis, G4int nofDivisions, G4double width, G4double offset)
G4LogicalVolume * GetReflectedLV(G4LogicalVolume *lv) const
static G4ReflectionFactory * Instance()
void SetVerboseLevel(G4int verboseLevel)
virtual ~G4ReflectionFactory()
G4ReflectedVolumesMap::const_iterator LogicalVolumesMapIterator
void ReflectPVPlacement(G4VPhysicalVolume *PV, G4LogicalVolume *refLV, G4bool surfCheck=false)
G4double GetScalePrecision() const
G4VPVDivisionFactory * GetPVDivisionFactory() const
void CheckScale(const G4Scale3D &scale) const
void PrintConstituentLVMap()
G4PhysicalVolumesPair Place(const G4Transform3D &transform3D, const G4String &name, G4LogicalVolume *LV, G4LogicalVolume *motherLV, G4bool isMany, G4int copyNo, G4bool surfCheck=false)
static const G4Scale3D fScale
static G4ThreadLocal G4ReflectionFactory * fInstance
G4ReflectedVolumesMap fConstituentLVMap
G4ReflectionFactory(const G4ReflectionFactory &)=delete
G4bool IsConstituent(G4LogicalVolume *lv) const
G4ReflectionFactory & operator=(const G4ReflectionFactory &)=delete
void ReflectPVReplica(G4VPhysicalVolume *PV, G4LogicalVolume *refLV)
void SetScalePrecision(G4double scaleValue)
void ReflectDaughters(G4LogicalVolume *LV, G4LogicalVolume *refLV, G4bool surfCheck=false)
void ReflectPVParameterised(G4VPhysicalVolume *PV, G4LogicalVolume *refLV, G4bool surfChk=false)
void ReflectPVDivision(G4VPhysicalVolume *PV, G4LogicalVolume *refLV)
const G4ReflectedVolumesMap & GetReflectedVolumesMap() const
static const G4String fDefaultNameExtension
G4LogicalVolume * GetConstituentLV(G4LogicalVolume *reflLV) const
G4LogicalVolume * CreateReflectedLV(G4LogicalVolume *LV)
G4ReflectedVolumesMap fReflectedLVMap
G4PhysicalVolumesPair Replicate(const G4String &name, G4LogicalVolume *LV, G4LogicalVolume *motherLV, EAxis axis, G4int nofReplicas, G4double width, G4double offset=0.)
void SetVolumesNameExtension(const G4String &nameExtension)
const char * name(G4int ptype)