BDSMagnetOuterFactoryPolesBase Class Reference

Factory class for outer volume of magnets. Produces magnets with 2N-poles around the beampipe with a yoke of various shapes. More...

#include <BDSMagnetOuterFactoryPolesBase.hh>

Inheritance diagram for BDSMagnetOuterFactoryPolesBase:

Inheritance graph
[legend]
Collaboration diagram for BDSMagnetOuterFactoryPolesBase:

Collaboration graph
[legend]

Public Member Functions

 BDSMagnetOuterFactoryPolesBase ()
virtual BDSGeometryComponentCreateSectorBend (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4double angle, G4Material *outerMaterial=NULL)
 sector bend outer volume
virtual BDSGeometryComponentCreateRectangularBend (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4double angle, G4Material *outerMaterial=NULL)
 rectangular bend outer volume
virtual BDSGeometryComponentCreateQuadrupole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4Material *outerMaterial=NULL)
 quadrupole outer volume
virtual BDSGeometryComponentCreateSextupole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4Material *outerMaterial=NULL)
 sextupole outer volume
virtual BDSGeometryComponentCreateOctupole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4Material *outerMaterial=NULL)
 octupole outer volume
virtual BDSGeometryComponentCreateDecapole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4Material *outerMaterial=NULL)
 decapole outer volume
virtual BDSGeometryComponentCreateSolenoid (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4Material *outerMaterial=NULL)
 solenoid outer volume
virtual BDSGeometryComponentCreateMultipole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4Material *outerMaterial=NULL)
 general multipole outer volume - could be any 2N order multipole
virtual BDSGeometryComponentCreateRfCavity (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4Material *outerMaterial=NULL)
 RF cavity outer volume.
virtual BDSGeometryComponentCreateMuSpoiler (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4Material *outerMaterial=NULL)
 muon spoiler outer volume
virtual BDSGeometryComponentCreateKicker (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4bool vertical=true, G4Material *outerMaterial=NULL)
 horizontal and vertical kicker outer volume

Protected Member Functions

virtual void CleanUp ()
 Empty containers for next use - this class is never deleted so can't rely on scope.
virtual void CalculatePoleAndYoke (G4double outerDiameter, BDSBeamPipe *beamPipe, G4double order)
 Calculate the length of the pole and yoke radii based on the design.
virtual void CreatePoleSolid (G4String name, G4double length, G4int order)
 Create pole for magnet of order N where npoles = Nx2.
virtual void CreateYokeAndContainerSolid (G4String name, G4double length, G4int order)
 Create yoke that connects poles and container to put them in.
virtual void CreateLogicalVolumes (G4String name, G4double length, G4int order, G4Material *outerMaterial)
 Build the logical volumes from the solids assigning materials and colours and cuts.
virtual void PlaceComponents (G4String name, G4int order)
 Place the poles and yoke in the container volume.
virtual BDSGeometryComponentCommonConstructor (G4String name, G4double length, BDSBeamPipe *beamPipe, G4int order, G4double outerDiameter, G4Material *outerMaterial)
 Common construction tasks to all methods - assemble yoke and poles in container.
void TestInputParameters (BDSBeamPipe *beamPipe, G4double &boxSizeIn, G4Material *&outerMaterialIn)
 Test inputs for no null pointers or overlapping volumes due to poorly defined sizes.
virtual BDSGeometryComponentKickerConstructor (G4String name, G4double length, G4double angle, BDSBeamPipe *beamPipe, G4double outerDiameter, G4Material *outerMaterial, G4bool isVertical)

Protected Attributes

G4double poleFraction
G4double poleAngularFraction
 Fraction of 2pi/Npoles that the pole will occupy - always < 1.
G4double poleTipFraction
G4double poleStartRadius
G4double poleFinishRadius
G4double yokeStartRadius
G4double yokeFinishRadius

Detailed Description

Factory class for outer volume of magnets. Produces magnets with 2N-poles around the beampipe with a yoke of various shapes.

Most magnets are 2N poles, but sector and r-bends as well as muon spoilers, and h/v kickers are unique.

NOTE this is a base class in that there are derived classes with different outer shapes - all have poles, but the return yoke can for example, circular, square or faceted (with 4N facets)

Author:
Laurie Nevay <laurie.nevay@rhul.ac.uk>

Definition at line 28 of file BDSMagnetOuterFactoryPolesBase.hh.


Member Function Documentation

BDSGeometryComponent * BDSMagnetOuterFactoryPolesBase::KickerConstructor ( G4String  name,
G4double  length,
G4double  angle,
BDSBeamPipe beamPipe,
G4double  outerDiameter,
G4Material *  outerMaterial,
G4bool  isVertical 
) [protected, virtual]

Kicker constructor - only difference between h and vkick is the 90 degree rotation If it isn't vertical, then it's a horizontal kicker

Definition at line 515 of file BDSMagnetOuterFactoryPolesBase.cc.

References BDSMagnetOuterFactoryBase::checkOverlaps, BDSMagnetOuterFactoryBase::containerLV, BDSBeamPipe::GetContainerRadius(), BDSMagnetColours::GetMagnetColour(), BDSMaterials::GetMaterial(), BDSExecOptions::Instance(), BDSMagnetColours::Instance(), BDSGlobalConstants::Instance(), BDSMaterials::Instance(), BDSMagnetOuterFactoryBase::lengthSafety, BDSMagnetOuterFactoryBase::maxStepFactor, BDSMagnetOuterFactoryBase::poleLV, BDSGeometryComponent::RegisterLogicalVolume(), BDSGeometryComponent::RegisterSensitiveVolume(), and BDSMagnetOuterFactoryBase::yokeLV.

Here is the call graph for this function:


Field Documentation

G4double BDSMagnetOuterFactoryPolesBase::poleFraction [protected]

The fraction of the distance from the beam pipe to the outerDiameter/2 that each pole will take - always < 1

Definition at line 130 of file BDSMagnetOuterFactoryPolesBase.hh.

Referenced by BDSMagnetOuterFactoryPolesBase(), and CalculatePoleAndYoke().

G4double BDSMagnetOuterFactoryPolesBase::poleTipFraction [protected]

Fraction of length from pole tip to outerDiameter that pole tip ellisoid will take up

Definition at line 137 of file BDSMagnetOuterFactoryPolesBase.hh.

Referenced by BDSMagnetOuterFactoryPolesBase(), BDSMagnetOuterFactoryPolesSquare::CreatePoleSolid(), and CreatePoleSolid().


The documentation for this class was generated from the following files:
Generated on 28 Jun 2015 for BDSIM by  doxygen 1.4.7