104#ifndef G4LOGICALVOLUME_HH
105#define G4LOGICALVOLUME_HH 1
393 using G4PhysicalVolumeList = std::vector<G4VPhysicalVolume *>;
398 G4PhysicalVolumeList fDaughters;
413 std::shared_ptr<const G4VisAttributes> fVisAttributes;
431 G4bool fRootRegion =
false;
437#include "G4LogicalVolume.icc"
G4VSensitiveDetector * fSensitiveDetector
G4MaterialCutsCouple * fCutsCouple
G4FieldManager * fFieldManager
G4bool operator==(const G4LogicalVolume &lv) const
void SetSmartless(G4double s)
G4VSolid * GetSolid() const
G4double GetMass(G4bool forced=false, G4bool propagate=true, G4Material *parMaterial=nullptr)
EVolume CharacteriseDaughters() const
const G4VisAttributes * GetVisAttributes() const
void SetName(const G4String &pName)
G4bool IsAncestor(const G4VPhysicalVolume *p) const
void SetFieldManager(G4FieldManager *pFieldMgr, G4bool forceToAllDaughters)
void AddDaughter(G4VPhysicalVolume *p)
G4VSensitiveDetector * GetMasterSensitiveDetector() const
void SetUserLimits(G4UserLimits *pULimits)
void SetVoxelHeader(G4SmartVoxelHeader *pVoxel)
G4VSensitiveDetector * GetSensitiveDetector() const
void TerminateWorker(G4LogicalVolume *ptrMasterObject)
std::size_t GetNoDaughters() const
virtual ~G4LogicalVolume()
void RemoveDaughter(const G4VPhysicalVolume *p)
void SetRegionRootFlag(G4bool rreg)
void SetRegion(G4Region *reg)
EVolume DeduceDaughtersType() const
virtual G4bool IsExtended() const
G4FastSimulationManager * GetFastSimulationManager() const
G4bool ChangeDaughtersType(EVolume atype)
static const G4LVManager & GetSubInstanceManager()
G4LogicalVolume(G4VSolid *pSolid, G4Material *pMaterial, const G4String &name, G4FieldManager *pFieldMgr=nullptr, G4VSensitiveDetector *pSDetector=nullptr, G4UserLimits *pULimits=nullptr, G4bool optimise=true)
G4bool IsRootRegion() const
G4Region * GetRegion() const
G4double GetBiasWeight() const
G4LogicalVolume(const G4LogicalVolume &)=delete
G4double GetSmartless() const
G4bool IsDaughter(const G4VPhysicalVolume *p) const
G4Material * GetMaterial() const
G4VPhysicalVolume * GetDaughter(const std::size_t i) const
G4LogicalVolume & operator=(const G4LogicalVolume &)=delete
G4UserLimits * GetUserLimits() const
void InitialiseWorker(G4LogicalVolume *ptrMasterObject, G4VSolid *pSolid, G4VSensitiveDetector *pSDetector)
G4FieldManager * GetMasterFieldManager() const
G4FieldManager * GetFieldManager() const
void SetVisAttributes(const G4VisAttributes *pVA)
G4int TotalVolumeEntities() const
void SetBiasWeight(G4double w)
G4int GetInstanceID() const
G4bool IsToOptimise() const
const G4String & GetName() const
const G4MaterialCutsCouple * GetMaterialCutsCouple() const
G4VSolid * GetMasterSolid() const
void AssignFieldManager(G4FieldManager *fldMgr)
void SetMaterial(G4Material *pMaterial)
void SetSolid(G4VSolid *pSolid)
G4SmartVoxelHeader * GetVoxelHeader() const
void SetSensitiveDetector(G4VSensitiveDetector *pSDetector)
void SetOptimisation(G4bool optim)
void SetMaterialCutsCouple(G4MaterialCutsCouple *cuts)
void UpdateMaterial(G4Material *pMaterial)