#include <BDSMagnetOuterFactoryPolesBase.hh>
Inheritance diagram for BDSMagnetOuterFactoryPolesBase:
Public Member Functions | |
BDSMagnetOuterFactoryPolesBase () | |
virtual BDSGeometryComponent * | CreateSectorBend (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4double angle, G4Material *outerMaterial=NULL) |
sector bend outer volume | |
virtual BDSGeometryComponent * | CreateRectangularBend (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4double angle, G4Material *outerMaterial=NULL) |
rectangular bend outer volume | |
virtual BDSGeometryComponent * | CreateQuadrupole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4Material *outerMaterial=NULL) |
quadrupole outer volume | |
virtual BDSGeometryComponent * | CreateSextupole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4Material *outerMaterial=NULL) |
sextupole outer volume | |
virtual BDSGeometryComponent * | CreateOctupole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4Material *outerMaterial=NULL) |
octupole outer volume | |
virtual BDSGeometryComponent * | CreateDecapole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4Material *outerMaterial=NULL) |
decapole outer volume | |
virtual BDSGeometryComponent * | CreateSolenoid (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4Material *outerMaterial=NULL) |
solenoid outer volume | |
virtual BDSGeometryComponent * | CreateMultipole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4Material *outerMaterial=NULL) |
general multipole outer volume - could be any 2N order multipole | |
virtual BDSGeometryComponent * | CreateRfCavity (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4Material *outerMaterial=NULL) |
RF cavity outer volume. | |
virtual BDSGeometryComponent * | CreateMuSpoiler (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4Material *outerMaterial=NULL) |
muon spoiler outer volume | |
virtual BDSGeometryComponent * | CreateKicker (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 BDSGeometryComponent * | CommonConstructor (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 BDSGeometryComponent * | KickerConstructor (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 |
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)
Definition at line 28 of file BDSMagnetOuterFactoryPolesBase.hh.
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:
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().