BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
|
Abstract base class that implements features common to all magnets. More...
#include <BDSMagnet.hh>
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 BDSMagnetStrength * | MagnetStrength () 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. | |
![]() | |
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 ®ionIn) |
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 () |
BDSBeamPipeInfo * | GetBeamPipeInfo () 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. | |
BDSSimpleComponent * | EndPieceBefore () const |
BDSSimpleComponent * | EndPieceAfter () 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. | |
![]() | |
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. | |
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 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 () |
BDSMagnet & | operator= (const BDSMagnet &)=delete |
Assignment and copy constructor not implemented nor used. | |
BDSMagnet (BDSMagnet &)=delete | |
Assignment and copy constructor not implemented nor used. | |
![]() | |
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. | |
BDSMagnetOuterInfo * | magnetOuterInfo |
Model information for the outer volume construction. | |
BDSFieldInfo * | vacuumFieldInfo |
Field information for vacuum field. | |
BDSFieldInfo * | outerFieldInfo |
Field information for outer magnetic field (optional) | |
BDSBeamPipe * | beampipe |
The constructed beampipe. | |
G4bool | placeBeamPipe |
G4double | horizontalWidth |
For outer volume construction. | |
G4double | containerRadius |
G4ThreeVector | magnetOuterOffset |
BDSMagnetOuter * | outer |
The assembled outer magnet geometry. | |
G4Transform3D | beamPipePlacementTransform |
G4bool | isThin |
Boolean to store if the element is thin - will have no geometry constructed. | |
![]() | |
BDSBeamPipeInfo * | beamPipeInfo |
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. | |
BDSSimpleComponent * | endPieceBefore |
BDSSimpleComponent * | endPieceAfter |
G4UserLimits * | userLimits |
Cache of user limits. | |
BDSFieldInfo * | fieldInfo |
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. | |
![]() | |
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(). | |
Additional Inherited Members | |
![]() | |
static G4double | lengthSafetyLarge = 0 |
![]() | |
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. | |
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.
Definition at line 44 of file BDSMagnet.hh.
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.
|
virtual |
Definition at line 352 of file BDSMagnet.cc.
|
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().
|
protectedvirtual |
Construct a general straight piece of beampipe. Virtual so it can be overloaded by derived classes as required - such as RBend.
Update record of normal vectors now beam pipe has been constructed.
Definition at line 151 of file BDSMagnet.cc.
References BDSAcceleratorComponent::angle, beampipe, BDSAcceleratorComponent::beamPipeInfo, beamPipePlacementTransform, BDSAcceleratorComponent::chordLength, BDSGeometryComponent::GetPlacementTransform(), BDSBeamPipe::GetVacuumLogicalVolume(), BDSGeometryComponent::InheritExtents(), BDSBeamPipe::InputFaceNormal(), BDSBeamPipeFactory::Instance(), BDSAcceleratorComponent::lengthSafety, BDSAcceleratorComponent::name, BDSBeamPipe::OutputFaceNormal(), BDSGeometryComponent::RegisterDaughter(), BDS::RotateToReferenceFrame(), BDSAcceleratorComponent::SetAcceleratorVacuumLogicalVolume(), SetInputFaceNormal(), and SetOutputFaceNormal().
Referenced by Build().
|
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().
|
protectedvirtual |
Construct the outer magnet geometry beit poled geometry or cylinders. This function switches on the member variable of BDSMagnetType type, so is contained in the base class.
Update record of normal vectors now beam pipe has been constructed.
Definition at line 194 of file BDSMagnet.cc.
References BDSAcceleratorComponent::angle, beampipe, BDSAcceleratorComponent::chordLength, BDSMagnetOuter::ClearMagnetContainer(), BDSMagnetOuterFactory::CreateMagnetOuter(), BDSMagnetOuter::EndPieceAfter(), BDSMagnetOuter::EndPieceBefore(), BDSGeometryComponent::GetContainerSolid(), BDSMagnetOuter::GetMagnetContainer(), BDSGeometryComponent::GetPlacementOffset(), BDSGeometryComponent::InheritExtents(), BDSMagnetOuter::InputFaceNormal(), BDSMagnetOuterFactory::Instance(), BDSAcceleratorComponent::lengthSafety, magnetOuterInfo, magnetType, outer, BDSMagnetOuter::OutputFaceNormal(), BDSGeometryComponent::RegisterDaughter(), BDS::RotateToReferenceFrame(), SetInputFaceNormal(), SetOutputFaceNormal(), and BDSGeometryComponent::SetPlacementOffset().
Referenced by Build().
|
protectedvirtual |
Construct the magnetic field for the outer magnet geometry.
Definition at line 231 of file BDSMagnet.cc.
References BDSMagnetOuterFactoryLHC::beamSeparation, DetermineScalingKey(), BDSGeometryComponent::GetAllDaughters(), BDSGeometryComponent::GetContainerLogicalVolume(), BDSFieldBuilder::Instance(), BDS::IsFinite(), magnetOuterInfo, BDSFieldInfo::MagnetStrength(), magnetType, outer, outerFieldInfo, BDSFieldBuilder::RegisterFieldForConstruction(), BDSFieldInfo::Translate(), and vacuumFieldInfo.
Referenced by Build().
|
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().
|
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().
|
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.
|
inline |
Definition at line 61 of file BDSMagnet.hh.
|
virtual |
Accessor to outer material if it exists.
Reimplemented from BDSAcceleratorComponent.
Definition at line 129 of file BDSMagnet.cc.
References magnetOuterInfo, and BDSAcceleratorComponent::Material().
|
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().
|
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.
|
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().
void BDSMagnet::SetOuterField | ( | BDSFieldInfo * | outerFieldInfoIn | ) |
@ { Delete existing field info and replace.
Definition at line 340 of file BDSMagnet.cc.
References outerFieldInfo.
|
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().
void BDSMagnet::SetVacuumField | ( | BDSFieldInfo * | vacuumFieldInfoIn | ) |
Definition at line 346 of file BDSMagnet.cc.
|
protected |
The constructed beampipe.
Definition at line 138 of file BDSMagnet.hh.
Referenced by BDSMagnet(), BuildBeampipe(), BuildContainerLogicalVolume(), BuildOuter(), BuildVacuumField(), and PlaceComponents().
|
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().
|
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().
|
protected |
For outer volume construction.
Definition at line 146 of file BDSMagnet.hh.
Referenced by BDSMagnet().
|
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().
|
protected |
Model information for the outer volume construction.
Definition at line 129 of file BDSMagnet.hh.
Referenced by BDSMagnet(), BuildOuter(), BuildOuterField(), and Material().
|
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.
|
protected |
Magnet type.
Definition at line 126 of file BDSMagnet.hh.
Referenced by BuildOuter(), and BuildOuterField().
|
protected |
The assembled outer magnet geometry.
Definition at line 158 of file BDSMagnet.hh.
Referenced by BDSMagnet(), BuildContainerLogicalVolume(), BuildOuter(), BuildOuterField(), PlaceComponents(), SetInputFaceNormal(), and SetOutputFaceNormal().
|
protected |
Field information for outer magnetic field (optional)
Definition at line 135 of file BDSMagnet.hh.
Referenced by BuildOuterField(), HasAField(), SetFieldUsePlacementWorldTransform(), and SetOuterField().
|
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().
|
protected |
Field information for vacuum field.
Definition at line 132 of file BDSMagnet.hh.
Referenced by BuildOuterField(), BuildVacuumField(), HasAField(), and SetFieldUsePlacementWorldTransform().