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 |
BDSBeamPipeInfo * | beamPipeInfo |
Protected member variable that can be modified by derived classes. | |
BDSBeamPipe * | beampipe |
G4double | outerDiameter |
BDSGeometryComponent * | outer |
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. |
Definition at line 32 of file BDSMagnet.hh.
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.
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: