BDSMagnetOuterFactoryPolesSquare Class Reference

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

#include <BDSMagnetOuterFactoryPolesSquare.hh>

Inheritance diagram for BDSMagnetOuterFactoryPolesSquare:

Inheritance graph
[legend]
Collaboration diagram for BDSMagnetOuterFactoryPolesSquare:

Collaboration graph
[legend]

Public Member Functions

 ~BDSMagnetOuterFactoryPolesSquare ()
 singleton pattern

Static Public Member Functions

static BDSMagnetOuterFactoryPolesSquareInstance ()

Private Member Functions

 BDSMagnetOuterFactoryPolesSquare ()
 Private constructor as singleton - nothing special here - all in parent class.
virtual void CleanUp ()
 Empty containers for next use - this class is never deleted so can't rely on scope.
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)

Private Attributes

std::vector< G4RotationMatrix * > poleRotations
std::vector< G4VSolid * > poleSolids
std::vector< G4LogicalVolume * > poleLVs

Static Private Attributes

static BDSMagnetOuterFactoryPolesSquare_instance = 0

Detailed Description

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

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

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

Definition at line 25 of file BDSMagnetOuterFactoryPolesSquare.hh.


Member Function Documentation

BDSGeometryComponent * BDSMagnetOuterFactoryPolesSquare::CommonConstructor ( G4String  name,
G4double  length,
BDSBeamPipe beamPipe,
G4int  order,
G4double  outerDiameter,
G4Material *  outerMaterial 
) [private, virtual]

Common construction tasks to all methods - assemble yoke and poles in container have to override this as we have multiple pole logical volumes and they need to be registered

Reimplemented from BDSMagnetOuterFactoryPolesBase.

Definition at line 266 of file BDSMagnetOuterFactoryPolesSquare.cc.

References BDSMagnetOuterFactoryPolesBase::CommonConstructor(), poleLVs, BDSGeometryComponent::RegisterLogicalVolume(), BDSGeometryComponent::RegisterLogicalVolumes(), BDSGeometryComponent::RegisterSensitiveVolume(), BDSGeometryComponent::RegisterSensitiveVolumes(), and BDSMagnetOuterFactoryBase::yokeLV.

Here is the call graph for this function:


Field Documentation

std::vector<G4RotationMatrix*> BDSMagnetOuterFactoryPolesSquare::poleRotations [private]

Poles have to be different lengths to fit in a square - have to be unique therefore keep a vector of them

Definition at line 70 of file BDSMagnetOuterFactoryPolesSquare.hh.

Referenced by CleanUp(), 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