BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes
BDSMagnetOuterFactoryCylindrical Class Reference

Factory that produces cylindrical magnet geometry. More...

#include <BDSMagnetOuterFactoryCylindrical.hh>

Inheritance diagram for BDSMagnetOuterFactoryCylindrical:
Inheritance graph
Collaboration diagram for BDSMagnetOuterFactoryCylindrical:
Collaboration graph

Public Member Functions

virtual void CleanUp ()
 Empty containers for next use - factories are never deleted so can't rely on scope.
 
virtual BDSMagnetOuterCreateSectorBend (G4String name, G4double length, const BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
 sector bend outer volume
 
virtual BDSMagnetOuterCreateRectangularBend (G4String name, G4double length, const BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
 rectangular bend outer volume
 
virtual BDSMagnetOuterCreateQuadrupole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
 quadrupole outer volume
 
virtual BDSMagnetOuterCreateSextupole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
 sextupole outer volume
 
virtual BDSMagnetOuterCreateOctupole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
 octupole outer volume
 
virtual BDSMagnetOuterCreateDecapole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
 decapole outer volume
 
virtual BDSMagnetOuterCreateSolenoid (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
 solenoid outer volume
 
virtual BDSMagnetOuterCreateMultipole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
 general multipole outer volume - could be any 2N order multipole
 
virtual BDSMagnetOuterCreateRfCavity (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
 RF cavity outer volume.
 
virtual BDSMagnetOuterCreateMuonSpoiler (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
 muon spoiler outer volume
 
virtual BDSMagnetOuterCreateKicker (G4String name, G4double length, const BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe, G4bool vertical)
 horizontal and vertical kicker outer volume
 
- Public Member Functions inherited from BDSMagnetOuterFactoryBase
virtual BDSMagnetOuterCreateSectorBend (G4String name, G4double length, const BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)=0
 sector bend outer volume
 
virtual BDSMagnetOuterCreateRectangularBend (G4String name, G4double length, const BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)=0
 rectangular bend outer volume
 
virtual BDSMagnetOuterCreateQuadrupole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)=0
 quadrupole outer volume
 
virtual BDSMagnetOuterCreateSextupole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)=0
 sextupole outer volume
 
virtual BDSMagnetOuterCreateOctupole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)=0
 octupole outer volume
 
virtual BDSMagnetOuterCreateDecapole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)=0
 decapole outer volume
 
virtual BDSMagnetOuterCreateSolenoid (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)=0
 solenoid outer volume
 
virtual BDSMagnetOuterCreateMultipole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)=0
 general multipole outer volume - could be any 2N order multipole
 
virtual BDSMagnetOuterCreateRfCavity (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)=0
 RF cavity outer volume.
 
virtual BDSMagnetOuterCreateMuonSpoiler (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)=0
 muon spoiler outer volume
 
virtual BDSMagnetOuterCreateKicker (G4String name, G4double length, const BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe, G4bool vertical)=0
 horizontal and vertical kicker outer volume
 
virtual void CleanUp ()
 Empty containers for next use - factories are never deleted so can't rely on scope.
 
void CleanUpBase ()
 Non-virtual clean up that can be used in the constructor.
 
virtual ~BDSMagnetOuterFactoryBase ()
 Virtual base destructor.
 
- Public Member Functions inherited from BDSFactoryBase
virtual void FactoryBaseCleanUp ()
 Empty containers for next use - factories are never deleted so can't rely on scope.
 

Private Member Functions

void CreateCylindricalSolids (G4String name, G4double length, const BDSBeamPipe *beamPipe, G4double magnetContainerLength, G4double boxSize)
 Only really one function needed for this factory private to this factory only.
 
void CreateCylindricalSolidsAngled (G4String name, G4double length, const BDSBeamPipe *beamPipe, G4double magnetContainerLength, G4double boxSize)
 
BDSMagnetOuterCommonFinalConstructor (G4String name, G4double length, const BDSMagnetOuterInfo *recipe)
 
void TestInputParameters (const BDSBeamPipe *beamPipe, G4double &horizontalWidthIn)
 test inputs for no null pointers or overlapping volumes due to poorly defined sizes
 

Private Attributes

G4double magnetContainerRadius
 

Additional Inherited Members

- Protected Member Functions inherited from BDSMagnetOuterFactoryBase
virtual void CreateLogicalVolumes (const G4String &name, G4Colour *colour, G4Material *outerMaterial)
 
virtual void SetUserLimits ()
 Attach default user limits to all logical volumes.
 
void BuildMagnetContainerSolidAngled (const G4String &name, G4double magnetContainerLength, G4double magnetContainerRadius, G4bool flatFaces=false)
 
void BuildMagnetContainerSolidStraight (const G4String &name, G4double magnetContainerLength, G4double magnetContainerRadius)
 
void CreateMagnetContainerComponent ()
 
void SetFaceNormals (BDSMagnetOuter *outer)
 Copy face normals from members to an instance of outer.
 
- Protected Attributes inherited from BDSMagnetOuterFactoryBase
G4VSolid * poleSolid
 Solid for an individual pole that will be placed multiple times.
 
G4VSolid * yokeSolid
 Solid for outer part that connects all poles.
 
G4VSolid * containerSolid
 
G4VSolid * magnetContainerSolid
 
G4LogicalVolume * poleLV
 
G4LogicalVolume * yokeLV
 
G4LogicalVolume * containerLV
 
G4LogicalVolume * magnetContainerLV
 
G4VPhysicalVolume * yokePV
 
G4VisAttributes * outerVisAttributes
 
BDSExtent magContExtent
 
BDSGeometryComponentmagnetContainer
 
G4ThreeVector inputFaceNormal
 
G4ThreeVector outputFaceNormal
 
G4bool sensitiveOuter
 Cache of global constants variable.
 
- Protected Attributes inherited from BDSFactoryBase
std::set< G4LogicalVolume * > allLogicalVolumes
 
std::set< G4VPhysicalVolume * > allPhysicalVolumes
 
std::set< G4RotationMatrix * > allRotationMatrices
 
std::set< G4UserLimits * > allUserLimits
 
std::set< G4VSolid * > allSolids
 
std::set< G4VisAttributes * > allVisAttributes
 
G4double lengthSafety
 Cache of global constants variable.
 
G4double lengthSafetyLarge
 Cache of global constants variable.
 
G4bool checkOverlaps
 Cache of global constants variable.
 
G4bool visDebug
 Cache of global constants variable.
 
G4int nSegmentsPerCircle
 Cache of global constants variable.
 
G4VisAttributes * containerVisAttr
 Cache of global constants variable.
 
G4UserLimits * defaultUserLimits
 Cache of global constants variable.
 

Detailed Description

Factory that produces cylindrical magnet geometry.

Author
Laurie Nevay

Definition at line 37 of file BDSMagnetOuterFactoryCylindrical.hh.

Constructor & Destructor Documentation

◆ BDSMagnetOuterFactoryCylindrical()

BDSMagnetOuterFactoryCylindrical::BDSMagnetOuterFactoryCylindrical ( )

Definition at line 49 of file BDSMagnetOuterFactoryCylindrical.cc.

◆ ~BDSMagnetOuterFactoryCylindrical()

virtual BDSMagnetOuterFactoryCylindrical::~BDSMagnetOuterFactoryCylindrical ( )
inlinevirtual

Definition at line 41 of file BDSMagnetOuterFactoryCylindrical.hh.

Member Function Documentation

◆ CleanUp()

void BDSMagnetOuterFactoryCylindrical::CleanUp ( )
virtual

Empty containers for next use - factories are never deleted so can't rely on scope.

Reimplemented from BDSMagnetOuterFactoryBase.

Definition at line 53 of file BDSMagnetOuterFactoryCylindrical.cc.

References BDSMagnetOuterFactoryBase::CleanUp().

Referenced by CreateDecapole(), CreateKicker(), CreateMultipole(), CreateMuonSpoiler(), CreateOctupole(), CreateQuadrupole(), CreateRectangularBend(), CreateRfCavity(), CreateSectorBend(), CreateSextupole(), and CreateSolenoid().

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

◆ CommonFinalConstructor()

BDSMagnetOuter * BDSMagnetOuterFactoryCylindrical::CommonFinalConstructor ( G4String  name,
G4double  length,
const BDSMagnetOuterInfo recipe 
)
private

◆ CreateCylindricalSolids()

void BDSMagnetOuterFactoryCylindrical::CreateCylindricalSolids ( G4String  name,
G4double  length,
const BDSBeamPipe beamPipe,
G4double  magnetContainerLength,
G4double  boxSize 
)
private

◆ CreateCylindricalSolidsAngled()

void BDSMagnetOuterFactoryCylindrical::CreateCylindricalSolidsAngled ( G4String  name,
G4double  length,
const BDSBeamPipe beamPipe,
G4double  magnetContainerLength,
G4double  boxSize 
)
private

Definition at line 338 of file BDSMagnetOuterFactoryCylindrical.cc.

◆ CreateDecapole()

BDSMagnetOuter * BDSMagnetOuterFactoryCylindrical::CreateDecapole ( G4String  name,
G4double  length,
BDSBeamPipe beamPipe,
G4double  containerLength,
const BDSMagnetOuterInfo recipe 
)
virtual

decapole outer volume

Implements BDSMagnetOuterFactoryBase.

Definition at line 165 of file BDSMagnetOuterFactoryCylindrical.cc.

References CleanUp(), CommonFinalConstructor(), and CreateCylindricalSolids().

Here is the call graph for this function:

◆ CreateKicker()

BDSMagnetOuter * BDSMagnetOuterFactoryCylindrical::CreateKicker ( G4String  name,
G4double  length,
const BDSBeamPipe beamPipe,
G4double  containerLength,
const BDSMagnetOuterInfo recipe,
G4bool  vertical 
)
virtual

horizontal and vertical kicker outer volume

Implements BDSMagnetOuterFactoryBase.

Definition at line 262 of file BDSMagnetOuterFactoryCylindrical.cc.

References CleanUp(), CommonFinalConstructor(), and CreateCylindricalSolids().

Here is the call graph for this function:

◆ CreateMultipole()

BDSMagnetOuter * BDSMagnetOuterFactoryCylindrical::CreateMultipole ( G4String  name,
G4double  length,
BDSBeamPipe beamPipe,
G4double  containerLength,
const BDSMagnetOuterInfo recipe 
)
virtual

general multipole outer volume - could be any 2N order multipole

Implements BDSMagnetOuterFactoryBase.

Definition at line 226 of file BDSMagnetOuterFactoryCylindrical.cc.

References CleanUp(), CommonFinalConstructor(), and CreateCylindricalSolids().

Here is the call graph for this function:

◆ CreateMuonSpoiler()

BDSMagnetOuter * BDSMagnetOuterFactoryCylindrical::CreateMuonSpoiler ( G4String  name,
G4double  length,
BDSBeamPipe beamPipe,
G4double  containerLength,
const BDSMagnetOuterInfo recipe 
)
virtual

muon spoiler outer volume

Implements BDSMagnetOuterFactoryBase.

Definition at line 250 of file BDSMagnetOuterFactoryCylindrical.cc.

References CleanUp(), CommonFinalConstructor(), and CreateCylindricalSolids().

Here is the call graph for this function:

◆ CreateOctupole()

BDSMagnetOuter * BDSMagnetOuterFactoryCylindrical::CreateOctupole ( G4String  name,
G4double  length,
BDSBeamPipe beamPipe,
G4double  containerLength,
const BDSMagnetOuterInfo recipe 
)
virtual

octupole outer volume

Implements BDSMagnetOuterFactoryBase.

Definition at line 153 of file BDSMagnetOuterFactoryCylindrical.cc.

References CleanUp(), CommonFinalConstructor(), and CreateCylindricalSolids().

Here is the call graph for this function:

◆ CreateQuadrupole()

BDSMagnetOuter * BDSMagnetOuterFactoryCylindrical::CreateQuadrupole ( G4String  name,
G4double  length,
BDSBeamPipe beamPipe,
G4double  containerLength,
const BDSMagnetOuterInfo recipe 
)
virtual

quadrupole outer volume

Implements BDSMagnetOuterFactoryBase.

Definition at line 129 of file BDSMagnetOuterFactoryCylindrical.cc.

References CleanUp(), CommonFinalConstructor(), and CreateCylindricalSolids().

Here is the call graph for this function:

◆ CreateRectangularBend()

BDSMagnetOuter * BDSMagnetOuterFactoryCylindrical::CreateRectangularBend ( G4String  name,
G4double  length,
const BDSBeamPipe beamPipe,
G4double  containerLength,
const BDSMagnetOuterInfo recipe 
)
virtual

◆ CreateRfCavity()

BDSMagnetOuter * BDSMagnetOuterFactoryCylindrical::CreateRfCavity ( G4String  name,
G4double  length,
BDSBeamPipe beamPipe,
G4double  containerLength,
const BDSMagnetOuterInfo recipe 
)
virtual

RF cavity outer volume.

Implements BDSMagnetOuterFactoryBase.

Definition at line 238 of file BDSMagnetOuterFactoryCylindrical.cc.

References CleanUp(), CommonFinalConstructor(), and CreateCylindricalSolids().

Here is the call graph for this function:

◆ CreateSectorBend()

BDSMagnetOuter * BDSMagnetOuterFactoryCylindrical::CreateSectorBend ( G4String  name,
G4double  length,
const BDSBeamPipe beamPipe,
G4double  containerLength,
const BDSMagnetOuterInfo recipe 
)
virtual

◆ CreateSextupole()

BDSMagnetOuter * BDSMagnetOuterFactoryCylindrical::CreateSextupole ( G4String  name,
G4double  length,
BDSBeamPipe beamPipe,
G4double  containerLength,
const BDSMagnetOuterInfo recipe 
)
virtual

sextupole outer volume

Implements BDSMagnetOuterFactoryBase.

Definition at line 141 of file BDSMagnetOuterFactoryCylindrical.cc.

References CleanUp(), CommonFinalConstructor(), and CreateCylindricalSolids().

Here is the call graph for this function:

◆ CreateSolenoid()

BDSMagnetOuter * BDSMagnetOuterFactoryCylindrical::CreateSolenoid ( G4String  name,
G4double  length,
BDSBeamPipe beamPipe,
G4double  containerLength,
const BDSMagnetOuterInfo recipe 
)
virtual

◆ TestInputParameters()

void BDSMagnetOuterFactoryCylindrical::TestInputParameters ( const BDSBeamPipe beamPipe,
G4double &  horizontalWidthIn 
)
private

test inputs for no null pointers or overlapping volumes due to poorly defined sizes

Definition at line 403 of file BDSMagnetOuterFactoryCylindrical.cc.

References BDSBeamPipe::ContainerIsCircular(), BDSExtent::DX(), BDSExtent::DY(), BDSBeamPipe::GetContainerRadius(), and BDSGeometryComponent::GetExtent().

Referenced by CreateRectangularBend(), and CreateSectorBend().

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

Field Documentation

◆ magnetContainerRadius

G4double BDSMagnetOuterFactoryCylindrical::magnetContainerRadius
private

Definition at line 148 of file BDSMagnetOuterFactoryCylindrical.hh.


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