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 BDSMagnetOuter * CreateSectorBend (G4String name, G4double length, const BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
 sector bend outer volume
 
virtual BDSMagnetOuter * CreateRectangularBend (G4String name, G4double length, const BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
 rectangular bend outer volume
 
virtual BDSMagnetOuter * CreateQuadrupole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
 quadrupole outer volume
 
virtual BDSMagnetOuter * CreateSextupole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
 sextupole outer volume
 
virtual BDSMagnetOuter * CreateOctupole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
 octupole outer volume
 
virtual BDSMagnetOuter * CreateDecapole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
 decapole outer volume
 
virtual BDSMagnetOuter * CreateSolenoid (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
 solenoid outer volume
 
virtual BDSMagnetOuter * CreateMultipole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
 general multipole outer volume - could be any 2N order multipole
 
virtual BDSMagnetOuter * CreateRfCavity (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
 RF cavity outer volume.
 
virtual BDSMagnetOuter * CreateMuonSpoiler (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
 muon spoiler outer volume
 
virtual BDSMagnetOuter * CreateKicker (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
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)
 
BDSMagnetOuter * CommonFinalConstructor (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
 
BDSGeometryComponent * magnetContainer
 
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 36 of file BDSMagnetOuterFactoryCylindrical.hh.

Constructor & Destructor Documentation

◆ BDSMagnetOuterFactoryCylindrical()

BDSMagnetOuterFactoryCylindrical::BDSMagnetOuterFactoryCylindrical ( )

Definition at line 48 of file BDSMagnetOuterFactoryCylindrical.cc.

◆ ~BDSMagnetOuterFactoryCylindrical()

virtual BDSMagnetOuterFactoryCylindrical::~BDSMagnetOuterFactoryCylindrical ( )
inlinevirtual

Definition at line 40 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 52 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 337 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 164 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 261 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 225 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 249 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 152 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 128 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 237 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 140 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 402 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 147 of file BDSMagnetOuterFactoryCylindrical.hh.


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