BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
|
Wrapper box for an accelerator component. More...
#include <BDSLinkOpaqueBox.hh>
Public Member Functions | |
BDSLinkOpaqueBox (BDSAcceleratorComponent *acceleratorComponentIn, BDSTiltOffset *tiltOffsetIn, G4double outputSamplerRadiusIn) | |
BDSLinkOpaqueBox ()=delete | |
Default constructor. | |
BDSLinkOpaqueBox (const BDSLinkOpaqueBox &other)=delete | |
Copy constructor. | |
BDSLinkOpaqueBox & | operator= (const BDSLinkOpaqueBox &other)=delete |
Copy assignment operator. | |
const G4ThreeVector & | OffsetToStart () const |
const G4Transform3D & | TransformToStart () const |
G4int | PlaceOutputSampler () |
Place the output sampler. | |
G4double | ArcLength () const |
Accessor. | |
G4double | ChordLength () const |
Accessor. | |
G4bool | Angled () const |
Accessor. | |
G4String | LinkName () const |
Accessor. | |
![]() | |
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. | |
Private Attributes | |
BDSAcceleratorComponent * | component |
G4double | outputSamplerRadius |
G4ThreeVector | offsetToStart |
G4Transform3D | transformToStart |
BDSSamplerCustom * | sampler |
Additional Inherited Members | |
![]() | |
static void | AttachUserLimitsToAssembly (G4AssemblyVolume *av, G4UserLimits *ul) |
Utility function to apply user limits to an assembly volume as there's not interface. | |
![]() | |
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(). | |
Wrapper box for an accelerator component.
Definition at line 39 of file BDSLinkOpaqueBox.hh.
BDSLinkOpaqueBox::BDSLinkOpaqueBox | ( | BDSAcceleratorComponent * | acceleratorComponentIn, |
BDSTiltOffset * | tiltOffsetIn, | ||
G4double | outputSamplerRadiusIn | ||
) |
Definition at line 54 of file BDSLinkOpaqueBox.cc.
|
virtual |
Definition at line 157 of file BDSLinkOpaqueBox.cc.
|
inline |
Accessor.
Definition at line 64 of file BDSLinkOpaqueBox.hh.
References BDSAcceleratorComponent::GetAngle(), and BDS::IsFinite().
|
inline |
Accessor.
Definition at line 62 of file BDSLinkOpaqueBox.hh.
References BDSAcceleratorComponent::GetArcLength().
Referenced by BDSLinkComponent::ComponentArcLength().
|
inline |
Accessor.
Definition at line 63 of file BDSLinkOpaqueBox.hh.
References BDSAcceleratorComponent::GetChordLength().
Referenced by BDSLinkComponent::ComponentChordLength().
|
inline |
Accessor.
Definition at line 65 of file BDSLinkOpaqueBox.hh.
References BDSAcceleratorComponent::GetName().
Referenced by BDSLinkComponent::LinkName().
|
inline |
Definition at line 55 of file BDSLinkOpaqueBox.hh.
G4int BDSLinkOpaqueBox::PlaceOutputSampler | ( | ) |
Place the output sampler.
Definition at line 162 of file BDSLinkOpaqueBox.cc.
References BDSSamplerCustom::ChordLength(), BDSAcceleratorComponent::GetAngle(), BDSAcceleratorComponent::GetChordLength(), BDSGeometryComponent::GetContainerLogicalVolume(), BDSGeometryComponent::GetExtent(), BDSAcceleratorComponent::GetName(), BDSSamplerRegistry::Instance(), BDS::IsFinite(), BDSSampler::MakeMaterialValidForUseInMassWorld(), BDSGeometryComponent::RegisterRotationMatrix(), BDSSamplerRegistry::RegisterSampler(), and BDSAcceleratorComponent::Sagitta().
|
inline |
Definition at line 56 of file BDSLinkOpaqueBox.hh.
|
private |
Definition at line 69 of file BDSLinkOpaqueBox.hh.
|
private |
Definition at line 71 of file BDSLinkOpaqueBox.hh.
|
private |
Definition at line 70 of file BDSLinkOpaqueBox.hh.
|
private |
Definition at line 73 of file BDSLinkOpaqueBox.hh.
|
private |
Definition at line 72 of file BDSLinkOpaqueBox.hh.