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 Member Functions | Protected Attributes
BDSMagnet Class Reference

Abstract base class that implements features common to all magnets. More...

#include <BDSMagnet.hh>

Inheritance diagram for BDSMagnet:
Inheritance graph
Collaboration diagram for BDSMagnet:
Collaboration graph

Public Member Functions

 BDSMagnet (BDSMagnetType type, const G4String &name, G4double length, BDSBeamPipeInfo *beamPipeInfo, BDSMagnetOuterInfo *magnetOuterInfo, BDSFieldInfo *vacuumFieldInfoIn, G4double angle=0, BDSFieldInfo *outerFieldInfoIn=nullptr, G4bool isThin=false)
 
const BDSMagnetStrengthMagnetStrength () const
 
void SetOuterField (BDSFieldInfo *outerFieldInfoIn)
 @ { Delete existing field info and replace.
 
void SetVacuumField (BDSFieldInfo *vacuumFieldInfoIn)
 
virtual G4String Material () const
 Accessor to outer material if it exists.
 
virtual G4bool HasAField () const
 Override for a magnet - test on either field definition.
 
virtual void SetFieldUsePlacementWorldTransform ()
 Override function as we have different field recipe objects.
 
virtual void SetInputFaceNormal (const G4ThreeVector &input)
 Update face normal and also to beam pipe and magnet outer.
 
virtual void SetOutputFaceNormal (const G4ThreeVector &output)
 Update face normal and also to beam pipe and magnet outer.
 
- Public Member Functions inherited from BDSAcceleratorComponent
 BDSAcceleratorComponent (const G4String &name, G4double arcLength, G4double angle, const G4String &type, BDSBeamPipeInfo *beamPipeInfo=nullptr, const G4ThreeVector &inputFaceNormalIn=G4ThreeVector(0, 0,-1), const G4ThreeVector &outputFaceNormalIn=G4ThreeVector(0, 0, 1), BDSFieldInfo *fieldInfoIn=nullptr)
 
virtual void Initialise ()
 
virtual void SetRegion (const G4String &regionIn)
 Set the region name for this component.
 
void SetField (BDSFieldInfo *fieldInfoIn)
 Set the field definition for the whole component.
 
virtual void SetMinimumKineticEnergy (G4double)
 
virtual G4String GetName () const
 The name of the component without modification.
 
G4double GetAngle () const
 
G4double Sagitta () const
 Calculate the sagitta - ie the distance between the chord and the arc at the centre.
 
G4String GetType () const
 Get a string describing the type of the component.
 
G4String GetRegion () const
 Get the region name for this component.
 
virtual G4bool HasAField () const
 Whether this component has a field or not (ie is active). Implicit cast of pointer to bool.
 
virtual void SetFieldUsePlacementWorldTransform ()
 
BDSBeamPipeInfoGetBeamPipeInfo () const
 
virtual G4String Material () const
 Return the name of a material associated with the component - ie the primary material.
 
virtual std::set< G4LogicalVolume * > GetAcceleratorVacuumLogicalVolumes () const
 Access the 'vacuum' volume(s) in this component if any. Default is empty set.
 
virtual std::set< G4LogicalVolume * > GetAcceleratorMaterialLogicalVolumes () const
 Return a set of logical volumes excluding the ones in the 'vacuum' set.
 
void IncrementCopyNumber ()
 Increment (+1) the number of times this component has been copied.
 
G4int GetCopyNumber () const
 Get the number of times this component has been copied.
 
BDSSimpleComponentEndPieceBefore () const
 
BDSSimpleComponentEndPieceAfter () const
 
virtual void SetBiasVacuumList (const std::list< std::string > &biasVacuumListIn)
 Copy the bias list to this element.
 
virtual void SetBiasMaterialList (const std::list< std::string > &biasMaterialListIn)
 Copy the bias list to this element.
 
virtual G4double GetArcLength () const
 
virtual G4double GetChordLength () const
 
G4ThreeVector InputFaceNormal () const
 
G4ThreeVector OutputFaceNormal () const
 
G4bool AngledInputFace () const
 Whether the face normal is angled at all w.r.t. the incoming / outgoing reference trajectory.
 
G4bool AngledOutputFace () const
 Whether the face normal is angled at all w.r.t. the incoming / outgoing reference trajectory.
 
std::list< std::string > GetBiasVacuumList () const
 Access the bias list copied from parser.
 
std::list< std::string > GetBiasMaterialList () const
 Access the bias list copied from parser.
 
- Public Member Functions inherited from BDSGeometryComponent
 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)
 
BDSGeometryComponentoperator= (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 *, BDSSDTypeGetAllSensitiveVolumes () 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.
 
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 G4String DetermineScalingKey (BDSMagnetType typeIn)
 
- Static Public Member Functions inherited from BDSGeometryComponent
static void AttachUserLimitsToAssembly (G4AssemblyVolume *av, G4UserLimits *ul)
 Utility function to apply user limits to an assembly volume as there's not interface.
 

Protected Member Functions

 BDSMagnet ()=delete
 Private default constructor to force the use of the supplied one.
 
virtual void Build ()
 
virtual void BuildBeampipe ()
 
virtual void BuildVacuumField ()
 Construct the field for the vacuum and attach it.
 
virtual void BuildOuter ()
 
virtual void BuildOuterField ()
 Construct the magnetic field for the outer magnet geometry.
 
virtual void BuildContainerLogicalVolume ()
 
virtual void PlaceComponents ()
 
BDSMagnetoperator= (const BDSMagnet &)=delete
 Assignment and copy constructor not implemented nor used.
 
 BDSMagnet (BDSMagnet &)=delete
 Assignment and copy constructor not implemented nor used.
 
- Protected Member Functions inherited from BDSAcceleratorComponent
virtual void Build ()
 
virtual void BuildContainerLogicalVolume ()=0
 
void SetAcceleratorVacuumLogicalVolume (G4LogicalVolume *accVacLVIn)
 
void SetAcceleratorVacuumLogicalVolume (const std::set< G4LogicalVolume * > &accVacLVIn)
 
virtual void BuildUserLimits ()
 
virtual void AttachUserLimits () const
 Doesn't change member variables, but may change their contents.
 

Protected Attributes

BDSMagnetType magnetType
 Magnet type.
 
BDSMagnetOuterInfomagnetOuterInfo
 Model information for the outer volume construction.
 
BDSFieldInfovacuumFieldInfo
 Field information for vacuum field.
 
BDSFieldInfoouterFieldInfo
 Field information for outer magnetic field (optional)
 
BDSBeamPipebeampipe
 The constructed beampipe.
 
G4bool placeBeamPipe
 
G4double horizontalWidth
 For outer volume construction.
 
G4double containerRadius
 
G4ThreeVector magnetOuterOffset
 
BDSMagnetOuterouter
 The assembled outer magnet geometry.
 
G4Transform3D beamPipePlacementTransform
 
G4bool isThin
 Boolean to store if the element is thin - will have no geometry constructed.
 
- Protected Attributes inherited from BDSAcceleratorComponent
BDSBeamPipeInfobeamPipeInfo
 Optional beam pipe recipe that is written out to the survey if it exists.
 
std::set< G4LogicalVolume * > acceleratorVacuumLV
 A set of logical volumes we classify as 'vacuum' for biasing purposes.
 
BDSSimpleComponentendPieceBefore
 
BDSSimpleComponentendPieceAfter
 
G4UserLimits * userLimits
 Cache of user limits.
 
BDSFieldInfofieldInfo
 Recipe for field that could overlay this whole component.
 
const G4String name
 Const protected member variable that may not be changed by derived classes.
 
const G4double arcLength
 Const protected member variable that may not be changed by derived classes.
 
const G4String type
 Const protected member variable that may not be changed by derived classes.
 
G4double chordLength
 Protected member variable that can be modified by derived classes.
 
G4double angle
 Protected member variable that can be modified by derived classes.
 
G4String region
 Protected member variable that can be modified by derived classes.
 
- Protected Attributes inherited from BDSGeometryComponent
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 *, BDSSDTypesensitivity
 
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().
 

Additional Inherited Members

- Static Public Attributes inherited from BDSAcceleratorComponent
static G4double lengthSafetyLarge = 0
 
- Static Protected Attributes inherited from BDSAcceleratorComponent
static G4double lengthSafety = -1
 Useful variable often used in construction.
 
static G4Material * emptyMaterial = nullptr
 Useful variable often used in construction.
 
static G4Material * worldMaterial = nullptr
 Useful variable often used in construction.
 
static G4bool checkOverlaps = false
 Useful variable often used in construction.
 
static G4bool sensitiveOuter = true
 Useful variable often used in construction.
 
static G4bool sensitiveVacuum = false
 Useful variable often used in construction.
 
static G4VisAttributes * containerVisAttr = nullptr
 Useful variable often used in construction.
 

Detailed Description

Abstract base class that implements features common to all magnets.

Magnet consists of a beam pipe (with optional field) and an 'outer' (with optional field) both placed in the same level in a container volume. The outer is typically a yoke but can be any geometry as long as it doesn't overlap with the beam pipe placed at the same level.

Author
Laurie Nevay

Definition at line 44 of file BDSMagnet.hh.

Constructor & Destructor Documentation

◆ BDSMagnet()

BDSMagnet::BDSMagnet ( BDSMagnetType  type,
const G4String &  name,
G4double  length,
BDSBeamPipeInfo beamPipeInfo,
BDSMagnetOuterInfo magnetOuterInfo,
BDSFieldInfo vacuumFieldInfoIn,
G4double  angle = 0,
BDSFieldInfo outerFieldInfoIn = nullptr,
G4bool  isThin = false 
)

Magnet base class constructor that is for basic geometric information rather magnetic field details, which are handled in the derived classes

Definition at line 50 of file BDSMagnet.cc.

References beampipe, BDSBeamPipeInfo::beamPipeType, containerRadius, BDSAcceleratorComponent::GetBeamPipeInfo(), horizontalWidth, isThin, magnetOuterInfo, outer, and placeBeamPipe.

Here is the call graph for this function:

◆ ~BDSMagnet()

BDSMagnet::~BDSMagnet ( )
virtual

Definition at line 352 of file BDSMagnet.cc.

Member Function Documentation

◆ Build()

void BDSMagnet::Build ( )
protectedvirtual

Overridden method of BDSAcceleratorComponent to not only build container, but first construct field objects. After using BDSAcceleratorComponent::Build() to build the container, the beam pipe and outer geometry are built.

Reimplemented from BDSAcceleratorComponent.

Definition at line 137 of file BDSMagnet.cc.

References BuildBeampipe(), BuildContainerLogicalVolume(), BuildOuter(), BuildOuterField(), BDSAcceleratorComponent::BuildUserLimits(), BuildVacuumField(), and PlaceComponents().

Here is the call graph for this function:

◆ BuildBeampipe()

void BDSMagnet::BuildBeampipe ( )
protectedvirtual

◆ BuildContainerLogicalVolume()

void BDSMagnet::BuildContainerLogicalVolume ( )
protectedvirtual

Necessary to provide this function a la BDSAcceleratorComponent. If there's an outer geometry, the containerSolid will have been set and build it into a logical volume. If no outer geometry, use the beam pipe container as this objects container in which case no need to build any logical volumes. Update extents if necessary.

Implements BDSAcceleratorComponent.

Definition at line 277 of file BDSMagnet.cc.

References beampipe, BDSAcceleratorComponent::containerVisAttr, BDSAcceleratorComponent::emptyMaterial, BDSGeometryComponent::GetContainerLogicalVolume(), BDSGeometryComponent::GetContainerSolid(), BDSGeometryComponent::InheritExtents(), BDSAcceleratorComponent::name, outer, placeBeamPipe, and BDSAcceleratorComponent::userLimits.

Referenced by Build().

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

◆ BuildOuter()

void BDSMagnet::BuildOuter ( )
protectedvirtual

◆ BuildOuterField()

void BDSMagnet::BuildOuterField ( )
protectedvirtual

◆ BuildVacuumField()

void BDSMagnet::BuildVacuumField ( )
protectedvirtual

Construct the field for the vacuum and attach it.

Definition at line 169 of file BDSMagnet.cc.

References beampipe, beamPipePlacementTransform, BDSGeometryComponent::GetContainerLogicalVolume(), BDSBeamPipe::GetVolumesForField(), BDSFieldBuilder::Instance(), isThin, BDSFieldBuilder::RegisterFieldForConstruction(), BDSFieldInfo::SetTransform(), BDSFieldInfo::Transform(), and vacuumFieldInfo.

Referenced by Build().

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

◆ DetermineScalingKey()

G4String BDSMagnet::DetermineScalingKey ( BDSMagnetType  typeIn)
static

Determine which is the appropriate key to query a BDSMagnetStrength with for a given type of magnet.

Definition at line 91 of file BDSMagnet.cc.

References BDSTypeSafeEnum< def, inner >::underlying().

Referenced by BuildOuterField().

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

◆ HasAField()

virtual G4bool BDSMagnet::HasAField ( ) const
inlinevirtual

Override for a magnet - test on either field definition.

Reimplemented from BDSAcceleratorComponent.

Definition at line 81 of file BDSMagnet.hh.

References outerFieldInfo, and vacuumFieldInfo.

◆ MagnetStrength()

const BDSMagnetStrength * BDSMagnet::MagnetStrength ( ) const
inline

Definition at line 61 of file BDSMagnet.hh.

◆ Material()

G4String BDSMagnet::Material ( ) const
virtual

Accessor to outer material if it exists.

Reimplemented from BDSAcceleratorComponent.

Definition at line 129 of file BDSMagnet.cc.

References magnetOuterInfo, and BDSAcceleratorComponent::Material().

Here is the call graph for this function:

◆ PlaceComponents()

void BDSMagnet::PlaceComponents ( )
protectedvirtual

Place the beam pipe and outer geometry in the overall container. If there's no outer geometry, then we don't need to place either as the beam pipe becomes the container.

Definition at line 303 of file BDSMagnet.cc.

References beampipe, BDSAcceleratorComponent::checkOverlaps, BDSGeometryComponent::GetContainerLogicalVolume(), BDSGeometryComponent::GetPlacementOffset(), BDSAcceleratorComponent::name, outer, placeBeamPipe, and BDSGeometryComponent::RegisterPhysicalVolume().

Referenced by Build().

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

◆ SetFieldUsePlacementWorldTransform()

void BDSMagnet::SetFieldUsePlacementWorldTransform ( )
virtual

Override function as we have different field recipe objects.

Reimplemented from BDSAcceleratorComponent.

Definition at line 359 of file BDSMagnet.cc.

References outerFieldInfo, BDSAcceleratorComponent::SetFieldUsePlacementWorldTransform(), and vacuumFieldInfo.

Here is the call graph for this function:

◆ SetInputFaceNormal()

void BDSMagnet::SetInputFaceNormal ( const G4ThreeVector &  input)
virtual

Update face normal and also to beam pipe and magnet outer.

Reimplemented from BDSAcceleratorComponent.

Definition at line 117 of file BDSMagnet.cc.

References outer, and BDSMagnetOuter::SetInputFaceNormal().

Referenced by BuildBeampipe(), and BuildOuter().

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

◆ SetOuterField()

void BDSMagnet::SetOuterField ( BDSFieldInfo outerFieldInfoIn)

@ { Delete existing field info and replace.

Definition at line 340 of file BDSMagnet.cc.

References outerFieldInfo.

◆ SetOutputFaceNormal()

void BDSMagnet::SetOutputFaceNormal ( const G4ThreeVector &  output)
virtual

Update face normal and also to beam pipe and magnet outer.

Reimplemented from BDSAcceleratorComponent.

Definition at line 123 of file BDSMagnet.cc.

References outer, and BDSMagnetOuter::SetOutputFaceNormal().

Referenced by BuildBeampipe(), and BuildOuter().

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

◆ SetVacuumField()

void BDSMagnet::SetVacuumField ( BDSFieldInfo vacuumFieldInfoIn)

Definition at line 346 of file BDSMagnet.cc.

Field Documentation

◆ beampipe

BDSBeamPipe* BDSMagnet::beampipe
protected

The constructed beampipe.

Definition at line 138 of file BDSMagnet.hh.

Referenced by BDSMagnet(), BuildBeampipe(), BuildContainerLogicalVolume(), BuildOuter(), BuildVacuumField(), and PlaceComponents().

◆ beamPipePlacementTransform

G4Transform3D BDSMagnet::beamPipePlacementTransform
protected

Used to pass the placement offset to the field so that it can be offset from the local coordinates of the solid appropriately.

Definition at line 162 of file BDSMagnet.hh.

Referenced by BuildBeampipe(), and BuildVacuumField().

◆ containerRadius

G4double BDSMagnet::containerRadius
protected

Separate variable for the container radius so it can be changed if required by specific magnet geometry.

Definition at line 150 of file BDSMagnet.hh.

Referenced by BDSMagnet().

◆ horizontalWidth

G4double BDSMagnet::horizontalWidth
protected

For outer volume construction.

Definition at line 146 of file BDSMagnet.hh.

Referenced by BDSMagnet().

◆ isThin

G4bool BDSMagnet::isThin
protected

Boolean to store if the element is thin - will have no geometry constructed.

Definition at line 165 of file BDSMagnet.hh.

Referenced by BDSMagnet(), and BuildVacuumField().

◆ magnetOuterInfo

BDSMagnetOuterInfo* BDSMagnet::magnetOuterInfo
protected

Model information for the outer volume construction.

Definition at line 129 of file BDSMagnet.hh.

Referenced by BDSMagnet(), BuildOuter(), BuildOuterField(), and Material().

◆ magnetOuterOffset

G4ThreeVector BDSMagnet::magnetOuterOffset
protected

Displacement (if required - default 0,0,0) for specific magnet geometry. Allows derived classes to specify different geometry without having to override placement which is provided in base class.

Definition at line 155 of file BDSMagnet.hh.

◆ magnetType

BDSMagnetType BDSMagnet::magnetType
protected

Magnet type.

Definition at line 126 of file BDSMagnet.hh.

Referenced by BuildOuter(), and BuildOuterField().

◆ outer

BDSMagnetOuter* BDSMagnet::outer
protected

The assembled outer magnet geometry.

Definition at line 158 of file BDSMagnet.hh.

Referenced by BDSMagnet(), BuildContainerLogicalVolume(), BuildOuter(), BuildOuterField(), PlaceComponents(), SetInputFaceNormal(), and SetOutputFaceNormal().

◆ outerFieldInfo

BDSFieldInfo* BDSMagnet::outerFieldInfo
protected

Field information for outer magnetic field (optional)

Definition at line 135 of file BDSMagnet.hh.

Referenced by BuildOuterField(), HasAField(), SetFieldUsePlacementWorldTransform(), and SetOuterField().

◆ placeBeamPipe

G4bool BDSMagnet::placeBeamPipe
protected

In the case where there's no magnet outer geometry, we just use the beam pipe and therefore we don't need to place it again. Use this boolean to record that and decide upon it. Default = true.

Definition at line 143 of file BDSMagnet.hh.

Referenced by BDSMagnet(), BuildContainerLogicalVolume(), and PlaceComponents().

◆ vacuumFieldInfo

BDSFieldInfo* BDSMagnet::vacuumFieldInfo
protected

Field information for vacuum field.

Definition at line 132 of file BDSMagnet.hh.

Referenced by BuildOuterField(), BuildVacuumField(), HasAField(), and SetFieldUsePlacementWorldTransform().


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