BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
Public Member Functions | Static Public Member Functions | Protected Attributes
BDSGeometryComponent Class Reference

A generic geometry component for a bdsim model. More...

#include <BDSGeometryComponent.hh>

Inheritance diagram for BDSGeometryComponent:
Inheritance graph
Collaboration diagram for BDSGeometryComponent:
Collaboration graph

Public Member Functions

 BDSGeometryComponent (G4VSolid *containerSolidIn, G4LogicalVolume *containerLVIn, const BDSExtent &extentIn=BDSExtent(), const BDSExtent &innerExtentIn=BDSExtent(), const G4ThreeVector &placementOffsetIn=G4ThreeVector(0, 0, 0), G4RotationMatrix *placementRotationIn=nullptr)
 
 BDSGeometryComponent (G4AssemblyVolume *containerAssemblyIn, const BDSExtent &extentIn=BDSExtent(), const BDSExtent &innerExtentIn=BDSExtent(), const G4ThreeVector &placementOffsetIn=G4ThreeVector(0, 0, 0), G4RotationMatrix *placementRotationIn=nullptr)
 
 BDSGeometryComponent (const BDSGeometryComponent &component)
 Copy constructor (no copying of registered objects) More...
 
BDSGeometryComponentoperator= (const BDSGeometryComponent &)=delete
 Assignment operator not used.
 
G4bool ContainerIsAssembly () const
 Whether the container is an assembly. If not, it's a logical volume. More...
 
void SetPlacementOffset (const G4ThreeVector &offsetIn)
 Set the offset from 0,0,0 that the object should ideally be placed in its parent. More...
 
G4ThreeVector GetExtentPositive () const
 Get the extent of the object in the positive direction in all dimensions. More...
 
G4ThreeVector GetExtentNegative () const
 Get the extent of the object in the negative direction in all dimensions. More...
 
void InheritExtents (BDSGeometryComponent const *const anotherComponent)
 Update the extents of this object with those of another object. More...
 
void InheritExtents (BDSGeometryComponent const *const anotherComponent, const G4ThreeVector &offset)
 
void RegisterDaughter (BDSGeometryComponent *anotherComponent)
 
void RegisterSolid (G4VSolid *solid)
 
void RegisterSolid (const std::set< G4VSolid * > &solids)
 Similarly for a set of unique solids. More...
 
void RegisterLogicalVolume (G4LogicalVolume *logicalVolume)
 
void RegisterLogicalVolume (const std::set< G4LogicalVolume * > &localVolumes)
 Apply RegisterLogicalVolume() to a set of logical volumes. More...
 
void RegisterSensitiveVolume (G4LogicalVolume *sensitiveVolume, BDSSDType sensitivityType)
 
void RegisterSensitiveVolume (const std::set< G4LogicalVolume * > &sensitiveVolumes, BDSSDType sensitivityType)
 
void RegisterSensitiveVolume (const std::map< G4LogicalVolume *, BDSSDType > &sensitiveVolumes)
 Copy in a mapping of sensitive volumes to sensitive detectors. More...
 
void RegisterPhysicalVolume (G4VPhysicalVolume *physicalVolume)
 
void RegisterPhysicalVolume (const std::set< G4VPhysicalVolume * > &physicalVolumes)
 Apply RegisterPhysicalVolume() to a set of physical volumes. More...
 
void RegisterRotationMatrix (G4RotationMatrix *rotationMatrix)
 
void RegisterRotationMatrix (const std::set< G4RotationMatrix * > &rotationMatrices)
 Apply Register RotationMatrix() to a set of rotation matrices. More...
 
void RegisterVisAttributes (G4VisAttributes *visAttribute)
 
void RegisterVisAttributes (const std::set< G4VisAttributes * > &visAttributes)
 Apply RegisterVisAttribute() to a set of visualisation attributes. More...
 
void RegisterUserLimits (G4UserLimits *userLimit)
 
void RegisterUserLimits (const std::set< G4UserLimits * > &userLimits)
 Apply RegisterUserLimit to a set of user limits. More...
 
void InheritObjects (BDSGeometryComponent *component)
 
virtual std::set< G4LogicalVolume * > GetAllLogicalVolumes () const
 Access all logical volumes belonging to this component. More...
 
virtual std::set< G4LogicalVolume * > GetAllBiasingVolumes () const
 Return all logical volumes that should be used for biasing minus any that are in the excluded set. More...
 
virtual std::map< G4LogicalVolume *, BDSSDTypeGetAllSensitiveVolumes () const
 Access all sensitive volumes belonging to this component. More...
 
void MakeAllVolumesSensitive (BDSSDType stype=BDSSDType::energydep)
 
virtual void AttachSensitiveDetectors ()
 Attach a sensitive detector class to all registered sensitive volumes in this component. More...
 
virtual void ExcludeLogicalVolumeFromBiasing (G4LogicalVolume *lv)
 
void StripOuterAndMakeAssemblyVolume ()
 Change from a container logical volume to an assembly volume. More...
 
virtual G4String GetName () const
 Accessor - see member for more info. More...
 
G4VSolid * GetContainerSolid () const
 Accessor - see member for more info. More...
 
G4LogicalVolume * GetContainerLogicalVolume () const
 Accessor - see member for more info. More...
 
G4AssemblyVolume * GetContainerAssemblyVolume () const
 Accessor - see member for more info. More...
 
G4Transform3D GetPlacementTransform () const
 Accessor - see member for more info. More...
 
G4ThreeVector GetPlacementOffset () const
 Accessor - see member for more info. More...
 
G4RotationMatrix * GetPlacementRotation () const
 Accessor - see member for more info. More...
 
BDSExtent GetExtent () const
 Accessor - see member for more info. More...
 
BDSExtent GetInnerExtent () const
 Accessor - see member for more info. More...
 
std::pair< G4double, G4double > GetExtentX () const
 Accessor - see member for more info. More...
 
std::pair< G4double, G4double > GetExtentY () const
 Accessor - see member for more info. More...
 
std::pair< G4double, G4double > GetExtentZ () const
 Accessor - see member for more info. More...
 
std::pair< G4double, G4double > GetInnerExtentX () const
 Accessor - see member for more info. More...
 
std::pair< G4double, G4double > GetInnerExtentY () const
 Accessor - see member for more info. More...
 
std::pair< G4double, G4double > GetInnerExtentZ () const
 Accessor - see member for more info. More...
 
virtual std::set< G4VPhysicalVolume * > GetAllPhysicalVolumes () const
 Accessor - see member for more info. More...
 
virtual std::set< G4RotationMatrix * > GetAllRotationMatrices () const
 Accessor - see member for more info. More...
 
virtual std::set< G4VisAttributes * > GetAllVisAttributes () const
 Accessor - see member for more info. More...
 
virtual std::set< G4UserLimits * > GetAllUserLimits () const
 Accessor - see member for more info. More...
 
virtual std::set< BDSGeometryComponent * > GetAllDaughters () const
 Accessor - see member for more info. More...
 
virtual std::set< G4VSolid * > GetAllSolids () const
 Accessor - see member for more info. More...
 
void SetExtent (const BDSExtent &extIn)
 Set extent. More...
 
void SetInnerExtent (const BDSExtent &extIn)
 Set extent. More...
 

Static Public Member Functions

static void AttachUserLimitsToAssembly (G4AssemblyVolume *av, G4UserLimits *ul)
 Utility function to apply user limits to an assembly volume as there's not interface. More...
 

Protected Attributes

G4bool containerIsAssembly
 True if the 'container' is really an assembly; false if an LV. More...
 
G4VSolid * containerSolid
 
G4LogicalVolume * containerLogicalVolume
 
G4AssemblyVolume * containerAssembly
 
BDSExtent outerExtent
 
BDSExtent innerExtent
 
std::set< BDSGeometryComponent * > allDaughters
 registry of all daughter geometry components More...
 
std::set< G4VSolid * > allSolids
 registry of all solids belonging to this component More...
 
std::set< G4LogicalVolume * > allLogicalVolumes
 
std::map< G4LogicalVolume *, BDSSDTypesensitivity
 
G4bool overrideSensitivity
 
std::set< G4VPhysicalVolume * > allPhysicalVolumes
 registry of all physical volumes belonging to this component More...
 
std::set< G4RotationMatrix * > allRotationMatrices
 registry of all rotation matrices belonging to this component More...
 
std::set< G4VisAttributes * > allVisAttributes
 registry of all visualisation attributes belonging to this component More...
 
std::set< G4UserLimits * > allUserLimits
 registry of all user limits belonging to this component More...
 
G4ThreeVector placementOffset
 
G4RotationMatrix * placementRotation
 
std::set< G4LogicalVolume * > * lvsExcludedFromBiasing
 Volumes that should not be included when return GetAllBiasingVolumes(). More...
 

Detailed Description

A generic geometry component for a bdsim model.

This class contains the minimum information required for any geometrical object for a bdsim geant4 model.

It represents one complete geometrical object and all the (c++) objects that compose it - therefore, once constructed, a BDSGeometryComponent instance owns all the objects of its members.

Fundamentally, the piece of geometry can have an outer 'container' that is either a Logical Volume or an Assembly Volume.

Note, the container solid and container logical volume are automatically registered by the constructor and do not need to be registered separately like all other volumes. There are safeguards to prevent double registration and the consequential seg faults.

Many accessors construct a new set of pointers to return rather than a const reference to the member set as the pointers from daughter objects are appended to the temporary set. The originals are retained untouched.

Author
Laurie Nevay

Definition at line 69 of file BDSGeometryComponent.hh.

Constructor & Destructor Documentation

◆ BDSGeometryComponent() [1/3]

BDSGeometryComponent::BDSGeometryComponent ( G4VSolid *  containerSolidIn,
G4LogicalVolume *  containerLVIn,
const BDSExtent extentIn = BDSExtent(),
const BDSExtent innerExtentIn = BDSExtent(),
const G4ThreeVector &  placementOffsetIn = G4ThreeVector(0,0,0),
G4RotationMatrix *  placementRotationIn = nullptr 
)

Definition at line 41 of file BDSGeometryComponent.cc.

◆ BDSGeometryComponent() [2/3]

BDSGeometryComponent::BDSGeometryComponent ( G4AssemblyVolume *  containerAssemblyIn,
const BDSExtent extentIn = BDSExtent(),
const BDSExtent innerExtentIn = BDSExtent(),
const G4ThreeVector &  placementOffsetIn = G4ThreeVector(0,0,0),
G4RotationMatrix *  placementRotationIn = nullptr 
)

Definition at line 59 of file BDSGeometryComponent.cc.

◆ BDSGeometryComponent() [3/3]

BDSGeometryComponent::BDSGeometryComponent ( const BDSGeometryComponent component)

Copy constructor (no copying of registered objects)

Definition at line 76 of file BDSGeometryComponent.cc.

◆ ~BDSGeometryComponent()

BDSGeometryComponent::~BDSGeometryComponent ( )
virtual

Definition at line 92 of file BDSGeometryComponent.cc.

Member Function Documentation

◆ AttachSensitiveDetectors()

void BDSGeometryComponent::AttachSensitiveDetectors ( )
virtual

Attach a sensitive detector class to all registered sensitive volumes in this component.

Reimplemented in BDSBLM, and BDSElement.

Definition at line 240 of file BDSGeometryComponent.cc.

References allDaughters, overrideSensitivity, BDSSDManager::SensitiveDetector(), and sensitivity.

Referenced by BDSElement::AttachSensitiveDetectors(), and BDSDetectorConstruction::BuildWorld().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ AttachUserLimitsToAssembly()

void BDSGeometryComponent::AttachUserLimitsToAssembly ( G4AssemblyVolume *  av,
G4UserLimits *  ul 
)
static

Utility function to apply user limits to an assembly volume as there's not interface.

Definition at line 280 of file BDSGeometryComponent.cc.

Referenced by BDSAcceleratorComponent::AttachUserLimits(), and BDSSimpleComponent::Build().

Here is the caller graph for this function:

◆ ContainerIsAssembly()

G4bool BDSGeometryComponent::ContainerIsAssembly ( ) const
inline

Whether the container is an assembly. If not, it's a logical volume.

Definition at line 91 of file BDSGeometryComponent.hh.

References containerIsAssembly.

Referenced by BDSSimpleComponent::BDSSimpleComponent(), BDSElement::BuildContainerLogicalVolume(), and BDSBeamlineElement::PlaceElement().

Here is the caller graph for this function:

◆ ExcludeLogicalVolumeFromBiasing()

void BDSGeometryComponent::ExcludeLogicalVolumeFromBiasing ( G4LogicalVolume *  lv)
virtual

Remove a particular logical volume from the logical volumes that will be returned for biasing.

Reimplemented in BDSElement.

Definition at line 249 of file BDSGeometryComponent.cc.

References GetName(), and lvsExcludedFromBiasing.

Referenced by BDSCrystalFactory::BuildCrystalObject(), and BDSElement::ExcludeLogicalVolumeFromBiasing().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetAllBiasingVolumes()

std::set< G4LogicalVolume * > BDSGeometryComponent::GetAllBiasingVolumes ( ) const
virtual

Return all logical volumes that should be used for biasing minus any that are in the excluded set.

Reimplemented in BDSElement.

Definition at line 210 of file BDSGeometryComponent.cc.

References allDaughters, and lvsExcludedFromBiasing.

Referenced by BDSAcceleratorComponent::GetAcceleratorMaterialLogicalVolumes(), and BDSElement::GetAllBiasingVolumes().

Here is the caller graph for this function:

◆ GetAllDaughters()

virtual std::set< BDSGeometryComponent * > BDSGeometryComponent::GetAllDaughters ( ) const
inlinevirtual

Accessor - see member for more info.

Reimplemented in BDSElement.

Definition at line 113 of file BDSGeometryComponent.hh.

References allDaughters.

Referenced by BDSMagnet::BuildOuterField(), and BDSElement::GetAllDaughters().

Here is the caller graph for this function:

◆ GetAllLogicalVolumes()

std::set< G4LogicalVolume * > BDSGeometryComponent::GetAllLogicalVolumes ( ) const
virtual

Access all logical volumes belonging to this component.

Reimplemented in BDSElement.

Definition at line 199 of file BDSGeometryComponent.cc.

References allDaughters.

Referenced by BDSDetectorConstruction::BuildWorld(), BDSBLMFactory::CreateBLM(), BDSElement::GetAllLogicalVolumes(), BDSBeamPipe::GetVolumesForField(), InheritObjects(), MakeAllVolumesSensitive(), and BDSCollimatorCrystal::RegisterCrystalLVs().

Here is the caller graph for this function:

◆ GetAllPhysicalVolumes()

virtual std::set< G4VPhysicalVolume * > BDSGeometryComponent::GetAllPhysicalVolumes ( ) const
inlinevirtual

Accessor - see member for more info.

Reimplemented in BDSElement.

Definition at line 109 of file BDSGeometryComponent.hh.

References allPhysicalVolumes.

Referenced by BDSElement::GetAllPhysicalVolumes(), and InheritObjects().

Here is the caller graph for this function:

◆ GetAllRotationMatrices()

virtual std::set< G4RotationMatrix * > BDSGeometryComponent::GetAllRotationMatrices ( ) const
inlinevirtual

Accessor - see member for more info.

Reimplemented in BDSElement.

Definition at line 110 of file BDSGeometryComponent.hh.

References allRotationMatrices.

Referenced by BDSElement::GetAllRotationMatrices(), and InheritObjects().

Here is the caller graph for this function:

◆ GetAllSensitiveVolumes()

std::map< G4LogicalVolume *, BDSSDType > BDSGeometryComponent::GetAllSensitiveVolumes ( ) const
virtual

Access all sensitive volumes belonging to this component.

Reimplemented in BDSElement.

Definition at line 228 of file BDSGeometryComponent.cc.

References allDaughters, and sensitivity.

Referenced by BDSElement::GetAllSensitiveVolumes(), and InheritObjects().

Here is the caller graph for this function:

◆ GetAllSolids()

virtual std::set< G4VSolid * > BDSGeometryComponent::GetAllSolids ( ) const
inlinevirtual

Accessor - see member for more info.

Reimplemented in BDSElement.

Definition at line 114 of file BDSGeometryComponent.hh.

References allSolids.

Referenced by BDSElement::GetAllSolids(), and InheritObjects().

Here is the caller graph for this function:

◆ GetAllUserLimits()

virtual std::set< G4UserLimits * > BDSGeometryComponent::GetAllUserLimits ( ) const
inlinevirtual

Accessor - see member for more info.

Reimplemented in BDSElement.

Definition at line 112 of file BDSGeometryComponent.hh.

References allUserLimits.

Referenced by BDSElement::GetAllUserLimits(), and InheritObjects().

Here is the caller graph for this function:

◆ GetAllVisAttributes()

virtual std::set< G4VisAttributes * > BDSGeometryComponent::GetAllVisAttributes ( ) const
inlinevirtual

Accessor - see member for more info.

Reimplemented in BDSElement.

Definition at line 111 of file BDSGeometryComponent.hh.

References allVisAttributes.

Referenced by BDSElement::GetAllVisAttributes(), and InheritObjects().

Here is the caller graph for this function:

◆ GetContainerAssemblyVolume()

G4AssemblyVolume * BDSGeometryComponent::GetContainerAssemblyVolume ( ) const
inline

Accessor - see member for more info.

Definition at line 97 of file BDSGeometryComponent.hh.

Referenced by BDSSimpleComponent::BDSSimpleComponent(), BDSElement::BuildContainerLogicalVolume(), and BDSBeamlineElement::PlaceElement().

Here is the caller graph for this function:

◆ GetContainerLogicalVolume()

G4LogicalVolume * BDSGeometryComponent::GetContainerLogicalVolume ( ) const
inline

◆ GetContainerSolid()

G4VSolid * BDSGeometryComponent::GetContainerSolid ( ) const
inline

◆ GetExtent()

BDSExtent BDSGeometryComponent::GetExtent ( ) const
inline

◆ GetExtentNegative()

G4ThreeVector BDSGeometryComponent::GetExtentNegative ( ) const
inline

Get the extent of the object in the negative direction in all dimensions.

Definition at line 129 of file BDSGeometryComponent.hh.

References BDSExtent::ExtentNegative().

Referenced by BDSBeamline::AddSingleComponent().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetExtentPositive()

G4ThreeVector BDSGeometryComponent::GetExtentPositive ( ) const
inline

Get the extent of the object in the positive direction in all dimensions.

Definition at line 126 of file BDSGeometryComponent.hh.

References BDSExtent::ExtentPositive().

Referenced by BDSBeamline::AddSingleComponent().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetExtentX()

std::pair< G4double, G4double > BDSGeometryComponent::GetExtentX ( ) const
inline

Accessor - see member for more info.

Definition at line 103 of file BDSGeometryComponent.hh.

References BDSExtent::ExtentX().

Here is the call graph for this function:

◆ GetExtentY()

std::pair< G4double, G4double > BDSGeometryComponent::GetExtentY ( ) const
inline

Accessor - see member for more info.

Definition at line 104 of file BDSGeometryComponent.hh.

References BDSExtent::ExtentY().

Here is the call graph for this function:

◆ GetExtentZ()

std::pair< G4double, G4double > BDSGeometryComponent::GetExtentZ ( ) const
inline

Accessor - see member for more info.

Definition at line 105 of file BDSGeometryComponent.hh.

References BDSExtent::ExtentZ().

Here is the call graph for this function:

◆ GetInnerExtent()

BDSExtent BDSGeometryComponent::GetInnerExtent ( ) const
inline

Accessor - see member for more info.

Definition at line 102 of file BDSGeometryComponent.hh.

Referenced by BDSMagnetOuterFactory::CreateExternal(), and InheritExtents().

Here is the caller graph for this function:

◆ GetInnerExtentX()

std::pair< G4double, G4double > BDSGeometryComponent::GetInnerExtentX ( ) const
inline

Accessor - see member for more info.

Definition at line 106 of file BDSGeometryComponent.hh.

References BDSExtent::ExtentX().

Here is the call graph for this function:

◆ GetInnerExtentY()

std::pair< G4double, G4double > BDSGeometryComponent::GetInnerExtentY ( ) const
inline

Accessor - see member for more info.

Definition at line 107 of file BDSGeometryComponent.hh.

References BDSExtent::ExtentY().

Here is the call graph for this function:

◆ GetInnerExtentZ()

std::pair< G4double, G4double > BDSGeometryComponent::GetInnerExtentZ ( ) const
inline

Accessor - see member for more info.

Definition at line 108 of file BDSGeometryComponent.hh.

References BDSExtent::ExtentZ().

Here is the call graph for this function:

◆ GetName()

virtual G4String BDSGeometryComponent::GetName ( ) const
inlinevirtual

Accessor - see member for more info.

Reimplemented in BDSAcceleratorComponent, and BDSSampler.

Definition at line 94 of file BDSGeometryComponent.hh.

Referenced by BDS::BuildBLMs(), and ExcludeLogicalVolumeFromBiasing().

Here is the caller graph for this function:

◆ GetPlacementOffset()

G4ThreeVector BDSGeometryComponent::GetPlacementOffset ( ) const
inline

Accessor - see member for more info.

Definition at line 99 of file BDSGeometryComponent.hh.

References placementOffset.

Referenced by BDSBeamline::AddSingleComponent(), BDSCollimatorCrystal::Build(), BDSElement::BuildContainerLogicalVolume(), BDSMagnet::BuildOuter(), and BDSMagnet::PlaceComponents().

Here is the caller graph for this function:

◆ GetPlacementRotation()

G4RotationMatrix * BDSGeometryComponent::GetPlacementRotation ( ) const
inline

Accessor - see member for more info.

Definition at line 100 of file BDSGeometryComponent.hh.

References placementRotation.

Referenced by BDSCollimatorCrystal::Build().

Here is the caller graph for this function:

◆ GetPlacementTransform()

G4Transform3D BDSGeometryComponent::GetPlacementTransform ( ) const
inline

Accessor - see member for more info.

Definition at line 285 of file BDSGeometryComponent.hh.

References placementOffset, and placementRotation.

Referenced by BDSMagnet::BuildBeampipe().

Here is the caller graph for this function:

◆ InheritExtents() [1/2]

void BDSGeometryComponent::InheritExtents ( BDSGeometryComponent const *const  anotherComponent)

◆ InheritExtents() [2/2]

void BDSGeometryComponent::InheritExtents ( BDSGeometryComponent const *const  anotherComponent,
const G4ThreeVector &  offset 
)

Update the extents of this object with those of another object whilst accounting for any offset.

Definition at line 117 of file BDSGeometryComponent.cc.

References GetExtent(), GetInnerExtent(), and BDSExtent::Translate().

Here is the call graph for this function:

◆ InheritObjects()

void BDSGeometryComponent::InheritObjects ( BDSGeometryComponent component)

Utility method to copy all the logical & physical volumes plus rotation matrices from a BDSGeometryComponent instance to this one. Useful for example when prefabricated objects from factories are made to belong to an object.

Definition at line 188 of file BDSGeometryComponent.cc.

References GetAllLogicalVolumes(), GetAllPhysicalVolumes(), GetAllRotationMatrices(), GetAllSensitiveVolumes(), GetAllSolids(), GetAllUserLimits(), GetAllVisAttributes(), RegisterLogicalVolume(), RegisterPhysicalVolume(), RegisterRotationMatrix(), RegisterSensitiveVolume(), RegisterSolid(), RegisterUserLimits(), and RegisterVisAttributes().

Here is the call graph for this function:

◆ MakeAllVolumesSensitive()

void BDSGeometryComponent::MakeAllVolumesSensitive ( BDSSDType  stype = BDSSDType::energydep)
inline

Make all logical volumes sensitive by setting flag for later attachment with AttachSensitiveDetectors. This propagates to all daughter volumes.

Definition at line 216 of file BDSGeometryComponent.hh.

References GetAllLogicalVolumes(), and RegisterSensitiveVolume().

Referenced by BDSGeometryFactory::BuildGeometry().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ RegisterDaughter()

void BDSGeometryComponent::RegisterDaughter ( BDSGeometryComponent anotherComponent)
inline

◆ RegisterLogicalVolume() [1/2]

void BDSGeometryComponent::RegisterLogicalVolume ( const std::set< G4LogicalVolume * > &  localVolumes)

Apply RegisterLogicalVolume() to a set of logical volumes.

Definition at line 130 of file BDSGeometryComponent.cc.

References RegisterLogicalVolume().

Here is the call graph for this function:

◆ RegisterLogicalVolume() [2/2]

void BDSGeometryComponent::RegisterLogicalVolume ( G4LogicalVolume *  logicalVolume)
inline

◆ RegisterPhysicalVolume() [1/2]

void BDSGeometryComponent::RegisterPhysicalVolume ( const std::set< G4VPhysicalVolume * > &  physicalVolumes)

Apply RegisterPhysicalVolume() to a set of physical volumes.

Definition at line 136 of file BDSGeometryComponent.cc.

References RegisterPhysicalVolume().

Here is the call graph for this function:

◆ RegisterPhysicalVolume() [2/2]

void BDSGeometryComponent::RegisterPhysicalVolume ( G4VPhysicalVolume *  physicalVolume)
inline

◆ RegisterRotationMatrix() [1/2]

void BDSGeometryComponent::RegisterRotationMatrix ( const std::set< G4RotationMatrix * > &  rotationMatrices)

Apply Register RotationMatrix() to a set of rotation matrices.

Definition at line 142 of file BDSGeometryComponent.cc.

References RegisterRotationMatrix().

Here is the call graph for this function:

◆ RegisterRotationMatrix() [2/2]

void BDSGeometryComponent::RegisterRotationMatrix ( G4RotationMatrix *  rotationMatrix)
inline

◆ RegisterSensitiveVolume() [1/3]

void BDSGeometryComponent::RegisterSensitiveVolume ( const std::map< G4LogicalVolume *, BDSSDType > &  sensitiveVolumes)

Copy in a mapping of sensitive volumes to sensitive detectors.

Definition at line 171 of file BDSGeometryComponent.cc.

References sensitivity.

◆ RegisterSensitiveVolume() [2/3]

void BDSGeometryComponent::RegisterSensitiveVolume ( const std::set< G4LogicalVolume * > &  sensitiveVolumes,
BDSSDType  sensitivityType 
)

Apply RegisterSensitiveVolume(G4LogicalVolume* sensitiveVolume) to a set of logical volumes.

Definition at line 164 of file BDSGeometryComponent.cc.

References RegisterSensitiveVolume().

Here is the call graph for this function:

◆ RegisterSensitiveVolume() [3/3]

void BDSGeometryComponent::RegisterSensitiveVolume ( G4LogicalVolume *  sensitiveVolume,
BDSSDType  sensitivityType 
)

◆ RegisterSolid() [1/2]

void BDSGeometryComponent::RegisterSolid ( const std::set< G4VSolid * > &  solids)

Similarly for a set of unique solids.

Definition at line 124 of file BDSGeometryComponent.cc.

References RegisterSolid().

Here is the call graph for this function:

◆ RegisterSolid() [2/2]

void BDSGeometryComponent::RegisterSolid ( G4VSolid *  solid)
inline

◆ RegisterUserLimits() [1/2]

void BDSGeometryComponent::RegisterUserLimits ( const std::set< G4UserLimits * > &  userLimits)

Apply RegisterUserLimit to a set of user limits.

Definition at line 182 of file BDSGeometryComponent.cc.

References RegisterUserLimits().

Here is the call graph for this function:

◆ RegisterUserLimits() [2/2]

void BDSGeometryComponent::RegisterUserLimits ( G4UserLimits *  userLimit)
inline

◆ RegisterVisAttributes() [1/2]

void BDSGeometryComponent::RegisterVisAttributes ( const std::set< G4VisAttributes * > &  visAttributes)

Apply RegisterVisAttribute() to a set of visualisation attributes.

Definition at line 176 of file BDSGeometryComponent.cc.

References RegisterVisAttributes().

Here is the call graph for this function:

◆ RegisterVisAttributes() [2/2]

void BDSGeometryComponent::RegisterVisAttributes ( G4VisAttributes *  visAttribute)
inline

◆ SetExtent()

void BDSGeometryComponent::SetExtent ( const BDSExtent extIn)
inline

◆ SetInnerExtent()

void BDSGeometryComponent::SetInnerExtent ( const BDSExtent extIn)
inline

Set extent.

Definition at line 122 of file BDSGeometryComponent.hh.

Referenced by BDSMagnetOuterFactoryPolesBase::CreateEndPiece().

Here is the caller graph for this function:

◆ SetPlacementOffset()

void BDSGeometryComponent::SetPlacementOffset ( const G4ThreeVector &  offsetIn)
inline

Set the offset from 0,0,0 that the object should ideally be placed in its parent.

Definition at line 118 of file BDSGeometryComponent.hh.

References placementOffset.

Referenced by BDSElement::BuildContainerLogicalVolume(), and BDSMagnet::BuildOuter().

Here is the caller graph for this function:

◆ StripOuterAndMakeAssemblyVolume()

void BDSGeometryComponent::StripOuterAndMakeAssemblyVolume ( )

Change from a container logical volume to an assembly volume.

Definition at line 263 of file BDSGeometryComponent.cc.

References containerIsAssembly.

Referenced by BDSGeometryFactory::BuildGeometry().

Here is the caller graph for this function:

Field Documentation

◆ allDaughters

std::set<BDSGeometryComponent*> BDSGeometryComponent::allDaughters
protected

registry of all daughter geometry components

Definition at line 241 of file BDSGeometryComponent.hh.

Referenced by AttachSensitiveDetectors(), GetAllBiasingVolumes(), GetAllDaughters(), GetAllLogicalVolumes(), GetAllSensitiveVolumes(), and RegisterDaughter().

◆ allLogicalVolumes

std::set<G4LogicalVolume*> BDSGeometryComponent::allLogicalVolumes
protected

Definition at line 246 of file BDSGeometryComponent.hh.

◆ allPhysicalVolumes

std::set<G4VPhysicalVolume*> BDSGeometryComponent::allPhysicalVolumes
protected

registry of all physical volumes belonging to this component

Definition at line 260 of file BDSGeometryComponent.hh.

Referenced by GetAllPhysicalVolumes(), and RegisterPhysicalVolume().

◆ allRotationMatrices

std::set<G4RotationMatrix*> BDSGeometryComponent::allRotationMatrices
protected

registry of all rotation matrices belonging to this component

Definition at line 263 of file BDSGeometryComponent.hh.

Referenced by GetAllRotationMatrices(), and RegisterRotationMatrix().

◆ allSolids

std::set<G4VSolid*> BDSGeometryComponent::allSolids
protected

◆ allUserLimits

std::set<G4UserLimits*> BDSGeometryComponent::allUserLimits
protected

registry of all user limits belonging to this component

Definition at line 269 of file BDSGeometryComponent.hh.

Referenced by GetAllUserLimits(), and RegisterUserLimits().

◆ allVisAttributes

std::set<G4VisAttributes*> BDSGeometryComponent::allVisAttributes
protected

registry of all visualisation attributes belonging to this component

Definition at line 266 of file BDSGeometryComponent.hh.

Referenced by GetAllVisAttributes(), and RegisterVisAttributes().

◆ containerAssembly

G4AssemblyVolume* BDSGeometryComponent::containerAssembly
protected

Definition at line 236 of file BDSGeometryComponent.hh.

◆ containerIsAssembly

G4bool BDSGeometryComponent::containerIsAssembly
protected

◆ containerLogicalVolume

G4LogicalVolume* BDSGeometryComponent::containerLogicalVolume
protected

Definition at line 235 of file BDSGeometryComponent.hh.

◆ containerSolid

G4VSolid* BDSGeometryComponent::containerSolid
protected

Definition at line 234 of file BDSGeometryComponent.hh.

◆ innerExtent

BDSExtent BDSGeometryComponent::innerExtent
protected

Definition at line 238 of file BDSGeometryComponent.hh.

◆ lvsExcludedFromBiasing

std::set<G4LogicalVolume*>* BDSGeometryComponent::lvsExcludedFromBiasing
protected

Volumes that should not be included when return GetAllBiasingVolumes().

Definition at line 282 of file BDSGeometryComponent.hh.

Referenced by ExcludeLogicalVolumeFromBiasing(), and GetAllBiasingVolumes().

◆ outerExtent

BDSExtent BDSGeometryComponent::outerExtent
protected

Definition at line 237 of file BDSGeometryComponent.hh.

◆ overrideSensitivity

G4bool BDSGeometryComponent::overrideSensitivity
protected

If true, the sensitivity will be applied irrespective of the general store options. So if eloss is turned off but you really want from this component, you can.

Definition at line 257 of file BDSGeometryComponent.hh.

Referenced by AttachSensitiveDetectors().

◆ placementOffset

G4ThreeVector BDSGeometryComponent::placementOffset
protected

The offset to be applied BEFORE rotation when placed - used to account for any asymmetry the component may have.

Definition at line 273 of file BDSGeometryComponent.hh.

Referenced by GetPlacementOffset(), GetPlacementTransform(), and SetPlacementOffset().

◆ placementRotation

G4RotationMatrix* BDSGeometryComponent::placementRotation
protected

The rotation to be applied when placed - used to account for any required rotation of the geometry before placement such as being built along a different axis. This is defaulted to a nullptr so MUST be tested before use - this saves memory as every piece of geometry uses this class.

Definition at line 279 of file BDSGeometryComponent.hh.

Referenced by GetPlacementRotation(), and GetPlacementTransform().

◆ sensitivity

std::map<G4LogicalVolume*, BDSSDType> BDSGeometryComponent::sensitivity
protected

Mapping of which volumes have which sensitivity. Not all volumes need be registered. The way of saying no sensitivity is to not have the volume registered.

Definition at line 253 of file BDSGeometryComponent.hh.

Referenced by AttachSensitiveDetectors(), GetAllSensitiveVolumes(), and RegisterSensitiveVolume().


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