BDSMagnet Class Reference

Inheritance diagram for BDSMagnet:

Inheritance graph
[legend]
Collaboration diagram for BDSMagnet:

Collaboration graph
[legend]

Public Member Functions

 BDSMagnet (BDSMagnetType type, G4String name, G4double length, BDSBeamPipeInfo *beamPipeInfo, BDSMagnetOuterInfo magnetOuterInfo, BDSTiltOffset tiltOffset=BDSTiltOffset())
virtual ~BDSMagnet ()
G4double GetK1 ()
 Magnet strengh parameter accessor - to be moved into its own class soon.
G4double GetK2 ()
 Magnet strengh parameter accessor - to be moved into its own class soon.
G4double GetK3 ()
 Magnet strengh parameter accessor - to be moved into its own class soon.

Protected Member Functions

virtual void Build ()
virtual void BuildContainerLogicalVolume ()
virtual void BuildOuterVolume ()
 method to create outer volume
virtual void BuildBeampipe ()
 general straight beampipe - can be overloaded by derived classes
void BeamPipeCommonTasks ()
void BuildOuterFieldManager (G4int nPoles, G4double poleField, G4double phiOffset)

Protected Attributes

BDSMagnetType itsType
G4MagIntegratorStepper * itsStepper
G4MagneticField * itsMagField
G4Mag_UsualEqRhs * itsEqRhs
G4LogicalVolume * itsBeampipeLogicalVolume
G4LogicalVolume * itsInnerBPLogicalVolume
G4UserLimits * itsBeampipeUserLimits
G4VPhysicalVolume * itsPhysiComp
G4VPhysicalVolume * itsPhysiInner
G4FieldManager * itsBPFieldMgr
G4FieldManager * itsOuterFieldMgr
G4double itsInnerIronRadius
G4ChordFinder * itsChordFinder
G4MagneticField * itsOuterMagField
BDSBeamPipeInfobeamPipeInfo
 Protected member variable that can be modified by derived classes.
BDSBeamPipebeampipe
G4double outerDiameter
BDSGeometryComponentouter
BDSMagnetOuterInfo itsMagnetOuterInfo
G4double itsK1
G4double itsK2
G4double itsK3
G4ThreeVector inputface
 normal vector for faces when preparing solids
G4ThreeVector outputface
 normal vector for faces when preparing solids

Private Member Functions

void BuildBPFieldMgr (G4MagIntegratorStepper *aStepper, G4MagneticField *aField)
 build and set field manager and chord finder
virtual void BuildBPFieldAndStepper ()=0
 define field and stepper
void FinaliseBeampipe (G4String materialName="", G4RotationMatrix *RotY=NULL)
 Method for common parts of both Buildbeampipe methods.

Detailed Description

Definition at line 32 of file BDSMagnet.hh.


Constructor & Destructor Documentation

BDSMagnet::BDSMagnet ( BDSMagnetType  type,
G4String  name,
G4double  length,
BDSBeamPipeInfo beamPipeInfo,
BDSMagnetOuterInfo  magnetOuterInfo,
BDSTiltOffset  tiltOffset = BDSTiltOffset() 
)

Magnet base class constructor that is for basic geometric information rather magnetic field details, which are handled in the derived classes

Definition at line 47 of file BDSMagnet.cc.

References beampipe, inputface, itsBeampipeLogicalVolume, itsBeampipeUserLimits, itsBPFieldMgr, itsChordFinder, itsEqRhs, itsInnerBPLogicalVolume, itsK1, itsK2, itsK3, itsMagField, itsOuterFieldMgr, itsOuterMagField, itsPhysiComp, itsPhysiInner, itsStepper, outer, and outputface.


Member Function Documentation

void BDSMagnet::BeamPipeCommonTasks (  )  [protected]

common tasks after the beampipe solids have been defined. derived classes that override BuildBeampipe implement this manually in the contents of their BuildBeampipe

Definition at line 107 of file BDSMagnet.cc.

References beampipe, BDSGeometryComponent::containerLogicalVolume, BDSGeometryComponent::GetAllLogicalVolumes(), BDSGeometryComponent::GetAllSensitiveVolumes(), BDSGlobalConstants::GetCheckOverlaps(), BDSGeometryComponent::GetContainerLogicalVolume(), BDSBeamPipe::GetVacuumLogicalVolume(), BDSGlobalConstants::Instance(), itsBPFieldMgr, itsPhysiComp, BDSAcceleratorComponent::name, BDSGeometryComponent::RegisterLogicalVolumes(), and BDSGeometryComponent::RegisterSensitiveVolumes().

Referenced by BDSSectorBend::BuildBeampipe(), and BuildBeampipe().

Here is the call graph for this function:

Here is the caller graph for this function:

void BDSMagnet::Build (  )  [protected, virtual]

Build the container only. Should be overridden by derived class to add more geometry apart from the container volume. The overridden Build() function can however, call make use of this function to call BuildContainerLogicalVolume() by calling BDSAcceleratorComponent::Build() at the beginning.

Reimplemented from BDSAcceleratorComponent.

Reimplemented in BDSDecapole, BDSKicker, BDSOctupole, BDSQuadrupole, BDSRBend, BDSSectorBend, BDSSextupole, and BDSSolenoid.

Definition at line 82 of file BDSMagnet.cc.

References BDSAcceleratorComponent::Build(), BuildBeampipe(), BuildBPFieldAndStepper(), BuildBPFieldMgr(), BuildOuterVolume(), itsMagField, and itsStepper.

Referenced by BDSSolenoid::Build(), BDSSextupole::Build(), BDSSectorBend::Build(), BDSRBend::Build(), BDSQuadrupole::Build(), BDSOctupole::Build(), BDSKicker::Build(), and BDSDecapole::Build().

Here is the call graph for this function:

Here is the caller graph for this function:

void BDSMagnet::BuildContainerLogicalVolume (  )  [protected, virtual]

Build the container solid and logical volume that all parts of the component will contained within - must be provided by derived class.

Implements BDSAcceleratorComponent.

Definition at line 256 of file BDSMagnet.cc.

References BDSAcceleratorComponent::angle, BDSAcceleratorComponent::chordLength, BDSGeometryComponent::containerLogicalVolume, BDSGeometryComponent::containerSolid, BDSAcceleratorComponent::emptyMaterial, inputface, BDSExecOptions::Instance(), BDSGlobalConstants::Instance(), BDS::IsFinite(), BDSAcceleratorComponent::lengthSafety, BDSAcceleratorComponent::name, outerDiameter, outputface, BDSGeometryComponent::SetExtentX(), BDSGeometryComponent::SetExtentY(), and BDSGeometryComponent::SetExtentZ().

Here is the call graph for this function:


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