BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
Loading...
Searching...
No Matches
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)
 
BDSGeometryComponent & operator= (const BDSGeometryComponent &)=delete
 Assignment operator not used.
 
G4bool ContainerIsAssembly () const
 Whether the container is an assembly. If not, it's a logical volume.
 
void SetPlacementOffset (const G4ThreeVector &offsetIn)
 Set the offset from 0,0,0 that the object should ideally be placed in its parent.
 
G4ThreeVector GetExtentPositive () const
 Get the extent of the object in the positive direction in all dimensions.
 
G4ThreeVector GetExtentNegative () const
 Get the extent of the object in the negative direction in all dimensions.
 
void InheritExtents (BDSGeometryComponent const *const anotherComponent)
 Update the extents of this object with those of another object.
 
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.
 
void RegisterLogicalVolume (G4LogicalVolume *logicalVolume)
 
void RegisterLogicalVolume (const std::set< G4LogicalVolume * > &localVolumes)
 Apply RegisterLogicalVolume() to a set of logical volumes.
 
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.
 
void RegisterPhysicalVolume (G4VPhysicalVolume *physicalVolume)
 
void RegisterPhysicalVolume (const std::set< G4VPhysicalVolume * > &physicalVolumes)
 Apply RegisterPhysicalVolume() to a set of physical volumes.
 
void RegisterRotationMatrix (G4RotationMatrix *rotationMatrix)
 
void RegisterRotationMatrix (const std::set< G4RotationMatrix * > &rotationMatrices)
 Apply Register RotationMatrix() to a set of rotation matrices.
 
void RegisterVisAttributes (G4VisAttributes *visAttribute)
 
void RegisterVisAttributes (const std::set< G4VisAttributes * > &visAttributes)
 Apply RegisterVisAttribute() to a set of visualisation attributes.
 
void RegisterUserLimits (G4UserLimits *userLimit)
 
void RegisterUserLimits (const std::set< G4UserLimits * > &userLimits)
 Apply RegisterUserLimit to a set of user limits.
 
void InheritObjects (BDSGeometryComponent *component)
 
virtual std::set< G4LogicalVolume * > GetAllLogicalVolumes () const
 Access all logical volumes belonging to this component.
 
virtual std::set< G4LogicalVolume * > GetAllBiasingVolumes () const
 Return all logical volumes that should be used for biasing minus any that are in the excluded set.
 
virtual std::map< G4LogicalVolume *, BDSSDType > GetAllSensitiveVolumes () const
 Access all sensitive volumes belonging to this component.
 
void MakeAllVolumesSensitive (BDSSDType stype=BDSSDType::energydep)
 
virtual void AttachSensitiveDetectors ()
 Attach a sensitive detector class to all registered sensitive volumes in this component.
 
virtual void ExcludeLogicalVolumeFromBiasing (G4LogicalVolume *lv)
 
void StripOuterAndMakeAssemblyVolume ()
 Change from a container logical volume to an assembly volume.
 
virtual G4String GetName () const
 Accessor - see member for more info.
 
G4VSolid * GetContainerSolid () const
 Accessor - see member for more info.
 
G4LogicalVolume * GetContainerLogicalVolume () const
 Accessor - see member for more info.
 
G4AssemblyVolume * GetContainerAssemblyVolume () const
 Accessor - see member for more info.
 
G4Transform3D GetPlacementTransform () const
 Accessor - see member for more info.
 
G4ThreeVector GetPlacementOffset () const
 Accessor - see member for more info.
 
G4RotationMatrix * GetPlacementRotation () const
 Accessor - see member for more info.
 
BDSExtent GetExtent () const
 Accessor - see member for more info.
 
BDSExtent GetInnerExtent () const
 Accessor - see member for more info.
 
std::pair< G4double, G4double > GetExtentX () const
 Accessor - see member for more info.
 
std::pair< G4double, G4double > GetExtentY () const
 Accessor - see member for more info.
 
std::pair< G4double, G4double > GetExtentZ () const
 Accessor - see member for more info.
 
std::pair< G4double, G4double > GetInnerExtentX () const
 Accessor - see member for more info.
 
std::pair< G4double, G4double > GetInnerExtentY () const
 Accessor - see member for more info.
 
std::pair< G4double, G4double > GetInnerExtentZ () const
 Accessor - see member for more info.
 
virtual std::set< G4VPhysicalVolume * > GetAllPhysicalVolumes () const
 Accessor - see member for more info.
 
virtual std::set< G4RotationMatrix * > GetAllRotationMatrices () const
 Accessor - see member for more info.
 
virtual std::set< G4VisAttributes * > GetAllVisAttributes () const
 Accessor - see member for more info.
 
virtual std::set< G4UserLimits * > GetAllUserLimits () const
 Accessor - see member for more info.
 
virtual std::set< BDSGeometryComponent * > GetAllDaughters () const
 Accessor - see member for more info.
 
virtual std::set< G4VSolid * > GetAllSolids () const
 Accessor - see member for more info.
 
void SetExtent (const BDSExtent &extIn)
 Set extent.
 
void SetInnerExtent (const BDSExtent &extIn)
 Set extent.
 

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.
 

Protected Attributes

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

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 68 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 40 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 58 of file BDSGeometryComponent.cc.

◆ BDSGeometryComponent() [3/3]

BDSGeometryComponent::BDSGeometryComponent ( const BDSGeometryComponent &  component)

Copy constructor (no copying of registered objects)

Definition at line 75 of file BDSGeometryComponent.cc.

◆ ~BDSGeometryComponent()

BDSGeometryComponent::~BDSGeometryComponent ( )
virtual

Definition at line 91 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 239 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 279 of file BDSGeometryComponent.cc.

Referenced by BDSAcceleratorComponent::AttachUserLimits().

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 90 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 248 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 209 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 112 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 198 of file BDSGeometryComponent.cc.

References allDaughters.

Referenced by BDSGeometryFactoryGDML::Build(), 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 108 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 109 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 227 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 113 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 111 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 110 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 96 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 128 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 125 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 102 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 103 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 104 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 101 of file BDSGeometryComponent.hh.

Referenced by BDSMagnetOuterFactory::CreateExternal(), InheritExtents(), 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 105 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 106 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 107 of file BDSGeometryComponent.hh.

References BDSExtent::ExtentZ().

Here is the call graph for this function:

◆ GetName()

virtual G4String BDSGeometryComponent::GetName ( ) const
inlinevirtual

◆ GetPlacementOffset()

G4ThreeVector BDSGeometryComponent::GetPlacementOffset ( ) const
inline

Accessor - see member for more info.

Definition at line 98 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 99 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 284 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 116 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 187 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 215 of file BDSGeometryComponent.hh.

References GetAllLogicalVolumes(), and RegisterSensitiveVolume().

Here is the call 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 129 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 135 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 141 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 170 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 163 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 123 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 181 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 175 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 121 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 117 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 262 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 240 of file BDSGeometryComponent.hh.

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

◆ allLogicalVolumes

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

Definition at line 245 of file BDSGeometryComponent.hh.

◆ allPhysicalVolumes

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

registry of all physical volumes belonging to this component

Definition at line 259 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 262 of file BDSGeometryComponent.hh.

Referenced by GetAllRotationMatrices(), and RegisterRotationMatrix().

◆ allSolids

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

registry of all solids belonging to this component

Definition at line 243 of file BDSGeometryComponent.hh.

Referenced by GetAllSolids(), and RegisterSolid().

◆ allUserLimits

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

registry of all user limits belonging to this component

Definition at line 268 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 265 of file BDSGeometryComponent.hh.

Referenced by GetAllVisAttributes(), and RegisterVisAttributes().

◆ containerAssembly

G4AssemblyVolume* BDSGeometryComponent::containerAssembly
protected

Definition at line 235 of file BDSGeometryComponent.hh.

◆ containerIsAssembly

G4bool BDSGeometryComponent::containerIsAssembly
protected

◆ containerLogicalVolume

G4LogicalVolume* BDSGeometryComponent::containerLogicalVolume
protected

Definition at line 234 of file BDSGeometryComponent.hh.

◆ containerSolid

G4VSolid* BDSGeometryComponent::containerSolid
protected

Definition at line 233 of file BDSGeometryComponent.hh.

◆ innerExtent

BDSExtent BDSGeometryComponent::innerExtent
protected

Definition at line 237 of file BDSGeometryComponent.hh.

◆ lvsExcludedFromBiasing

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

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

Definition at line 281 of file BDSGeometryComponent.hh.

Referenced by ExcludeLogicalVolumeFromBiasing(), and GetAllBiasingVolumes().

◆ outerExtent

BDSExtent BDSGeometryComponent::outerExtent
protected

Definition at line 236 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 256 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 272 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 278 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 252 of file BDSGeometryComponent.hh.

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


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