|
BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
|
Factory class for outer volume of magnets. More...
#include <BDSMagnetOuterFactoryPolesFacet.hh>


Additional Inherited Members | |
Public Member Functions inherited from BDSMagnetOuterFactoryPolesFacetCommon | |
| BDSMagnetOuterFactoryPolesFacetCommon (G4double factor) | |
Public Member Functions inherited from BDSMagnetOuterFactoryPolesBase | |
| BDSMagnetOuterFactoryPolesBase (G4double poleStopFactorIn) | |
| 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. | |
Protected Member Functions inherited from BDSMagnetOuterFactoryPolesFacetCommon | |
| virtual void | CalculateStartAngles () |
| Calculate start angle of polyhedra based on order and segment angle. | |
Protected Member Functions inherited from BDSMagnetOuterFactoryPolesBase | |
| virtual void | CleanUp () |
| Empty containers for next use - this class is never deleted so can't rely on scope. | |
| void | CleanUpPolesBase () |
| Non-virtual clean up to be used in constructor. | |
| virtual BDSMagnetOuter * | CommonConstructor (const G4String &name, G4double length, BDSBeamPipe *beamPipe, G4int order, G4double magnetContainerLength, const BDSMagnetOuterInfo *recipe) |
| Common construction tasks to all methods - assemble yoke and poles in container. | |
| virtual void | CalculatePoleAndYoke (G4double horizontalWidth, BDSBeamPipe *beamPipe, G4int order) |
| virtual void | CreatePoleSolid (const G4String &name, G4double length, G4int order) |
| virtual void | CreateCoilSolids (const G4String &name, G4double length) |
| Create the coil solids corresponding to the pole solid. | |
| virtual void | CreateCoilPoints () |
| Create all the points that make up the extruded solid of the pole. | |
| virtual void | IntersectPoleWithYoke (const G4String &name, G4double length, G4int order) |
| Chop off the top of the pole to match the appropriate yoke geometry. | |
| virtual void | CreateLogicalVolumes (const G4String &name, G4Colour *colour, G4Material *outerMaterial) |
| virtual void | CreateLogicalVolumesCoil (const G4String &name) |
| virtual void | CreateEndPiece (const G4String &name) |
| virtual void | PlaceComponents (const G4String &name, G4int order) |
| Place the poles and yoke in the container volume. | |
| virtual void | PlaceComponentsCoils (const G4String &name, G4int order) |
| If we're building coils, place two coils for each pole. | |
| void | TestCoilFractions (G4double &coilWidthFraction, G4double &coilHeightFraction) |
| void | DipoleCommonPreConstruction (const G4String &name, G4double angleIn, G4double angleOut, G4double length, G4double &horizontalWidth, G4Material *&material, G4double &vhRatio) |
| void | DipoleCalculations (G4bool hStyle, G4bool buildVertically, const BDSBeamPipe *beamPipe, G4double length, G4double horizontalWidth, G4double angleIn, G4double angleOut, G4double yokeThicknessFraction, G4double vhRatio, G4double coilWidthFraction, G4double coilHeightFraction, G4double &cShapeOuterEdge, G4double &poleHalfGap, G4double &poleWidth, G4double &poleHeight, G4double &yokeWidth, G4double &yokeHalfHeight, G4double &yokeThickness, G4double &yokeOverHang, G4double &coilWidth, G4double &coilHeightIn, G4double &coilToYokeGap, G4double &coilToPoleGap, G4double &sLength, G4double &containerSLength, G4double &intersectionRadius) |
| std::vector< G4ThreeVector > | CalculateCoilDisplacements (G4double poleHalfWidthIn, G4double poleHalfGapIn, G4double coilWidthIn, G4double coilHeightIn, G4double cDY, G4double &coilDY) |
| BDSMagnetOuter * | CreateDipoleC (const G4String &name, G4double length, const BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe, G4bool buildVertically) |
| BDSMagnetOuter * | CreateDipoleH (const G4String &name, G4double length, const BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe, G4bool buildVertically) |
| Routine to construct an H shaped dipole magnet and can optionally be built vertically. | |
| BDSMagnetOuter * | DipoleCommonConstruction (const G4String &name, G4double horizontalWidth, G4bool buildEndPiece, G4double coilWidth, G4double length, G4double containerLength, G4double sLength, G4double angleIn, G4double angleOut, G4Colour *colour, G4Material *material, std::vector< G4ThreeVector > &coilDisps, G4bool buildVertically, BDSExtent &ext, G4double poleHalfWidth, G4double poleHalfGap, G4double cDY, G4double coilDY, G4double intersectionRadius) |
Protected Member Functions inherited from BDSMagnetOuterFactoryBase | |
| 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 BDSMagnetOuterFactoryPolesFacetCommon | |
| G4double | polyStartAngle |
| Start angle for polyhedra. | |
| G4double | poleIntersectionStartAngle |
| Start angle for pole intersection. | |
Protected Attributes inherited from BDSMagnetOuterFactoryPolesBase | |
| const G4double | poleFraction |
| const G4double | poleAngularFraction |
| Fraction of 2pi/Npoles that the pole will occupy - always < 1. | |
| const G4double | poleTipFraction |
| const G4double | poleAnnulusFraction |
| const G4double | bendHeightFraction |
| const G4double | poleStopFactor |
| G4double | yokeStartRadius |
| Start radius of yoke geometry from magnet cetnre. | |
| G4double | yokeFinishRadius |
| Finish radius of yoke geometry from magnet centre - less than horizontalWidth. | |
| G4double | magnetContainerRadius |
| Radius of the container solid for the outer geometry. | |
| G4bool | buildPole |
| Whether or not to build poles (and therefore coils). | |
| G4double | poleStartRadius |
| Start radius of the pole from magnet centre. | |
| G4double | poleFinishRadius |
| Finish radius of the pole from magnet centre. | |
| G4double | poleSquareWidth |
| Full width of pole in constant width section. | |
| G4double | poleSquareStartRadius |
| Radius from magnet centre that constant width section starts. | |
| G4double | segmentAngle |
| 2PI / # of poles - angle per segment allocated for each pole. | |
| G4double | poleAngle |
| The angle allowed for the pole to occupy - less than segmentAngle. | |
| G4ThreeVector | poleTranslation |
| Offste of pole for placement from magnet centre. | |
| G4double | coilHeight |
| Height along y for coil for coil beside 1 upgright pole aligned with y axis. | |
| G4double | coilCentreRadius |
| Radius from magnet centre that the centre of the coils exist at. | |
| G4double | endPieceLength |
| Length of the coil end piece along what will be curvilinear S. | |
| G4double | endPieceInnerR |
| Inner radius for end piece container. | |
| G4double | endPieceOuterR |
| Outer radius for end piece container. | |
| G4VSolid * | poleIntersectionSolid |
| Solid used to chop off pole. | |
| G4VSolid * | coilLeftSolid |
| Left coil solid for one pole built upright along y axis. | |
| G4VSolid * | coilRightSolid |
| Right coil solid. | |
| G4VSolid * | endPieceContainerSolid |
| End piece container solid. | |
| G4LogicalVolume * | coilLeftLV |
| Logical volume for left coil. | |
| G4LogicalVolume * | coilRightLV |
| Logical volume for right coil. | |
| G4LogicalVolume * | endPieceCoilLV |
| Logical volume for end piece single coil piece. | |
| G4LogicalVolume * | endPieceContainerLV |
| Logical volume for end piece container. | |
| BDSSimpleComponent * | endPiece |
| Fully constructed end piece. | |
| std::vector< G4TwoVector > | leftPoints |
| Vector of 2D points for left coil. | |
| std::vector< G4TwoVector > | rightPoints |
| Vector of 2D points for right coil. | |
| std::vector< G4TwoVector > | endPiecePoints |
| Vector of 2D points for end piece looking from above down z. | |
| BDSMagnetOuterFactoryBase * | cylindrical |
| Default factory to fall back to. | |
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. | |
Factory class for outer volume of magnets.
Produces magnets with 2N-poles around the beampipe with a faceted yoke - the yoke is perpendiular to the pole direction where the pole joins the yoke.
Most magnets are 2N poles, but sector- and r-bends as well as muon spoilers, and h/v kickers are unique.
Definition at line 40 of file BDSMagnetOuterFactoryPolesFacet.hh.
| BDSMagnetOuterFactoryPolesFacet::BDSMagnetOuterFactoryPolesFacet | ( | ) |
Definition at line 21 of file BDSMagnetOuterFactoryPolesFacet.cc.
|
inlinevirtual |
Definition at line 44 of file BDSMagnetOuterFactoryPolesFacet.hh.