#include <BDSMagnetOuterFactoryBase.hh>
Inheritance diagram for BDSMagnetOuterFactoryBase:
Public Member Functions | |
virtual BDSGeometryComponent * | CreateSectorBend (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4double angle, G4Material *outerMaterial=NULL)=0 |
sector bend outer volume | |
virtual BDSGeometryComponent * | CreateRectangularBend (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4double angle, G4Material *outerMaterial=NULL)=0 |
rectangular bend outer volume | |
virtual BDSGeometryComponent * | CreateQuadrupole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4Material *outerMaterial=NULL)=0 |
quadrupole outer volume | |
virtual BDSGeometryComponent * | CreateSextupole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4Material *outerMaterial=NULL)=0 |
sextupole outer volume | |
virtual BDSGeometryComponent * | CreateOctupole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4Material *outerMaterial=NULL)=0 |
octupole outer volume | |
virtual BDSGeometryComponent * | CreateDecapole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4Material *outerMaterial=NULL)=0 |
decapole outer volume | |
virtual BDSGeometryComponent * | CreateSolenoid (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4Material *outerMaterial=NULL)=0 |
solenoid outer volume | |
virtual BDSGeometryComponent * | CreateMultipole (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4Material *outerMaterial=NULL)=0 |
general multipole outer volume - could be any 2N order multipole | |
virtual BDSGeometryComponent * | CreateRfCavity (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4Material *outerMaterial=NULL)=0 |
RF cavity outer volume. | |
virtual BDSGeometryComponent * | CreateMuSpoiler (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4Material *outerMaterial=NULL)=0 |
muon spoiler outer volume | |
virtual BDSGeometryComponent * | CreateKicker (G4String name, G4double length, BDSBeamPipe *beamPipe, G4double boxSize, G4bool vertical=true, G4Material *outerMaterial=NULL)=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. | |
Protected Member Functions | |
BDSMagnetOuterFactoryBase () | |
Protected Attributes | |
G4double | lengthSafety |
G4bool | checkOverlaps |
G4double | nSegmentsPerCircle |
G4double | maxStepFactor |
G4VSolid * | poleSolid |
G4VSolid * | yokeSolid |
solid for an individual pole that will be placed multiple times | |
G4VSolid * | containerSolid |
solid for outer part that connects all poles | |
G4LogicalVolume * | poleLV |
G4LogicalVolume * | yokeLV |
G4LogicalVolume * | containerLV |
Abstract base class that defines the interface of each factory to build any type of outer logical volume required.
Uses Geant4 default units by default, ie mm, rad (not metres)
Strictly the naming should contain 'Outer' at the end to distinguish that the function doesn't create the whole magnet, however this is implied by the factory name and omitting it will reduce the name length.
Each factory should implement a method for every type of magnet - ie for each class that inherits BDSMagnet.
Definition at line 28 of file BDSMagnetOuterFactoryBase.hh.
virtual BDSGeometryComponent* BDSMagnetOuterFactoryBase::CreateSectorBend | ( | G4String | name, | |
G4double | length, | |||
BDSBeamPipe * | beamPipe, | |||
G4double | boxSize, | |||
G4double | angle, | |||
G4Material * | outerMaterial = NULL | |||
) | [pure virtual] |
sector bend outer volume
NOTE each derived class is expected to be a singleton but this can't be specified here as it'd refer to the abstract base class - must be implemented in each derived class. 'In' in argument variables is used to distinguish between that and possible internal member variables with the same name - avoiding 'itsVariable'.
Implemented in BDSMagnetOuterFactoryCylindrical, BDSMagnetOuterFactoryLHC, BDSMagnetOuterFactoryNone, and BDSMagnetOuterFactoryPolesBase.
Referenced by BDSMagnetOuterFactory::CreateSectorBend().
Here is the caller graph for this function: