BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes
BDSFieldMagSolenoidBlock Class Reference

Class that provides the magnetic field due to a square annulus of current. More...

#include <BDSFieldMagSolenoidBlock.hh>

Inheritance diagram for BDSFieldMagSolenoidBlock:
Inheritance graph
Collaboration diagram for BDSFieldMagSolenoidBlock:
Collaboration graph

Public Member Functions

 BDSFieldMagSolenoidBlock (G4double strength, G4bool strengthIsCurrent, G4double innerRadiusIn, G4double radialThicknessIn, G4double fullLengthZIn, G4double toleranceIn, G4int nSheetsIn)
 Explicit constructor.
 
 BDSFieldMagSolenoidBlock (const BDSMagnetStrength *st, G4double innerRadiusIn)
 
virtual G4ThreeVector GetField (const G4ThreeVector &position, const G4double t=0) const
 Calculate the field value.
 
G4double GetB0 () const
 Accessor.
 
G4double GetI () const
 Accessor.
 
- Public Member Functions inherited from BDSFieldMag
 BDSFieldMag ()
 
 BDSFieldMag (G4Transform3D transformIn)
 
virtual G4bool TimeVarying () const
 
virtual void GetFieldValue (const G4double point[4], G4double *field) const
 
virtual G4ThreeVector GetFieldTransformed (const G4ThreeVector &position, const G4double t) const
 Get the field value after applying transform for local offset.
 
virtual void SetTransform (const G4Transform3D &transformIn)
 
void SetModulator (BDSModulator *modulatorIn)
 Set the optional modulator.
 
G4bool FiniteStrength () const
 Accessor.
 

Private Attributes

G4double a
 
G4double radialThickness
 
G4double fullLengthZ
 
G4double B0
 
G4double I
 
G4double coilTolerance
 
G4int nSheetsBlock
 
G4double currentDensity
 

Additional Inherited Members

- Protected Attributes inherited from BDSFieldMag
G4bool finiteStrength
 Flag to cache whether finite nor not.
 
G4Transform3D transform
 Transform to apply for the field relative to the local coordinates of the geometry.
 
G4bool transformIsNotIdentity
 Cache of whether to use transform at all.
 
BDSModulatormodulator
 Optional modulator;.
 

Detailed Description

Class that provides the magnetic field due to a square annulus of current.

Looking in the z,r plane we would see two square blocks with an inner edge at +-r and centered at z = 0. In r, the square extends from innerRadiusIn to innerRadiusIn+radialThicknessIn. There is a +- this in r with the top one being the sign of the strength and the bottom one being the return of the annulus with current in the opposite direction. In phi, it is circular.

Author
Rohan Kamath, Paul Bogdan Jurj

Definition at line 40 of file BDSFieldMagSolenoidBlock.hh.

Constructor & Destructor Documentation

◆ BDSFieldMagSolenoidBlock() [1/2]

BDSFieldMagSolenoidBlock::BDSFieldMagSolenoidBlock ( G4double  strength,
G4bool  strengthIsCurrent,
G4double  innerRadiusIn,
G4double  radialThicknessIn,
G4double  fullLengthZIn,
G4double  toleranceIn,
G4int  nSheetsIn 
)

Explicit constructor.

Definition at line 42 of file BDSFieldMagSolenoidBlock.cc.

References BDSFieldMag::finiteStrength, and BDS::IsFinite().

Here is the call graph for this function:

◆ BDSFieldMagSolenoidBlock() [2/2]

BDSFieldMagSolenoidBlock::BDSFieldMagSolenoidBlock ( const BDSMagnetStrength st,
G4double  innerRadiusIn 
)

Alternative constructor for field factory that uses "field" (i.e. B) strength from the magnet strength instance, the argument innerRadiusIn, coilRadialThickness, and length from the strength instance.

Definition at line 36 of file BDSFieldMagSolenoidBlock.cc.

Member Function Documentation

◆ GetB0()

G4double BDSFieldMagSolenoidBlock::GetB0 ( ) const
inline

Accessor.

Definition at line 64 of file BDSFieldMagSolenoidBlock.hh.

◆ GetField()

G4ThreeVector BDSFieldMagSolenoidBlock::GetField ( const G4ThreeVector &  position,
const G4double  t = 0 
) const
virtual

Calculate the field value.

Implements BDSFieldMag.

Definition at line 73 of file BDSFieldMagSolenoidBlock.cc.

◆ GetI()

G4double BDSFieldMagSolenoidBlock::GetI ( ) const
inline

Accessor.

Definition at line 65 of file BDSFieldMagSolenoidBlock.hh.

Field Documentation

◆ a

G4double BDSFieldMagSolenoidBlock::a
private

Definition at line 69 of file BDSFieldMagSolenoidBlock.hh.

◆ B0

G4double BDSFieldMagSolenoidBlock::B0
private

Definition at line 72 of file BDSFieldMagSolenoidBlock.hh.

◆ coilTolerance

G4double BDSFieldMagSolenoidBlock::coilTolerance
private

Definition at line 74 of file BDSFieldMagSolenoidBlock.hh.

◆ currentDensity

G4double BDSFieldMagSolenoidBlock::currentDensity
private

Definition at line 76 of file BDSFieldMagSolenoidBlock.hh.

◆ fullLengthZ

G4double BDSFieldMagSolenoidBlock::fullLengthZ
private

Definition at line 71 of file BDSFieldMagSolenoidBlock.hh.

◆ I

G4double BDSFieldMagSolenoidBlock::I
private

Definition at line 73 of file BDSFieldMagSolenoidBlock.hh.

◆ nSheetsBlock

G4int BDSFieldMagSolenoidBlock::nSheetsBlock
private

Definition at line 75 of file BDSFieldMagSolenoidBlock.hh.

◆ radialThickness

G4double BDSFieldMagSolenoidBlock::radialThickness
private

Definition at line 70 of file BDSFieldMagSolenoidBlock.hh.


The documentation for this class was generated from the following files: