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

Pill box cavity electromagnetic field. More...

#include <BDSFieldEMRFCavity.hh>

Inheritance diagram for BDSFieldEMRFCavity:
Inheritance graph
Collaboration diagram for BDSFieldEMRFCavity:
Collaboration graph

Public Member Functions

 BDSFieldEMRFCavity (BDSMagnetStrength const *strength, G4double brho)
 
 BDSFieldEMRFCavity (G4double eFieldAmplitude, G4double frequency, G4double phaseOffset, G4double cavityRadius)
 
virtual std::pair< G4ThreeVector, G4ThreeVector > GetField (const G4ThreeVector &position, const G4double t) const
 Accessor to get B and E field.
 
virtual G4bool TimeVarying () const
 
- Public Member Functions inherited from BDSFieldEM
 BDSFieldEM ()
 
 BDSFieldEM (G4Transform3D transformIn)
 
virtual std::pair< G4ThreeVector, G4ThreeVector > GetField (const G4ThreeVector &position, const G4double t=0) const =0
 
virtual G4bool TimeVarying () const
 
virtual void GetFieldValue (const G4double point[4], G4double *field) const
 
virtual std::pair< G4ThreeVector, 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)
 
virtual G4bool DoesFieldChangeEnergy () const
 Required overload by Geant4.
 
void SetModulator (BDSModulator *modulatorIn)
 Set the optional modulator.
 
G4bool FiniteStrength () const
 Accessor.
 

Private Member Functions

 BDSFieldEMRFCavity ()
 Private constructor to force use of provided one.
 

Private Attributes

G4double eFieldMax
 Maximum field in V/m.
 
G4double phase
 Phase offset of the oscillator.
 
G4double cavityRadius
 Radius at maximum extent of cavity.
 
G4double wavelength
 
const G4double normalisedCavityRadius
 Pre-calculated normalised calculated radius w.r.t. bessel first 0.
 
const G4double angularFrequency
 Angular frequency calculated from frequency - cached to avoid repeated calculation.
 

Static Private Attributes

static const G4double j0FirstZero = 2.404825557695772768622
 X coordinate of first 0 point for bessel J0.
 
static const G4double Z0 = CLHEP::mu0 * CLHEP::c_light
 Impedance of free space.
 

Additional Inherited Members

- Protected Attributes inherited from BDSFieldEM
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

Pill box cavity electromagnetic field.

Author
Stuart Walker

Definition at line 38 of file BDSFieldEMRFCavity.hh.

Constructor & Destructor Documentation

◆ BDSFieldEMRFCavity() [1/2]

BDSFieldEMRFCavity::BDSFieldEMRFCavity ( BDSMagnetStrength const *  strength,
G4double  brho 
)

Definition at line 39 of file BDSFieldEMRFCavity.cc.

◆ BDSFieldEMRFCavity() [2/2]

BDSFieldEMRFCavity::BDSFieldEMRFCavity ( G4double  eFieldAmplitude,
G4double  frequency,
G4double  phaseOffset,
G4double  cavityRadius 
)

Definition at line 49 of file BDSFieldEMRFCavity.cc.

◆ ~BDSFieldEMRFCavity()

virtual BDSFieldEMRFCavity::~BDSFieldEMRFCavity ( )
inlinevirtual

Definition at line 49 of file BDSFieldEMRFCavity.hh.

Member Function Documentation

◆ GetField()

std::pair< G4ThreeVector, G4ThreeVector > BDSFieldEMRFCavity::GetField ( const G4ThreeVector &  position,
const G4double  t 
) const
virtual

Accessor to get B and E field.

Implements BDSFieldEM.

Definition at line 65 of file BDSFieldEMRFCavity.cc.

References angularFrequency, eFieldMax, j0FirstZero, normalisedCavityRadius, phase, and Z0.

◆ TimeVarying()

virtual G4bool BDSFieldEMRFCavity::TimeVarying ( ) const
inlinevirtual

Each derived class should override this if needs be. Used to warn about time modulation with a time-varying field.

Reimplemented from BDSFieldEM.

Definition at line 55 of file BDSFieldEMRFCavity.hh.

Field Documentation

◆ angularFrequency

const G4double BDSFieldEMRFCavity::angularFrequency
private

Angular frequency calculated from frequency - cached to avoid repeated calculation.

Definition at line 77 of file BDSFieldEMRFCavity.hh.

Referenced by GetField().

◆ cavityRadius

G4double BDSFieldEMRFCavity::cavityRadius
private

Radius at maximum extent of cavity.

Definition at line 64 of file BDSFieldEMRFCavity.hh.

◆ eFieldMax

G4double BDSFieldEMRFCavity::eFieldMax
private

Maximum field in V/m.

Definition at line 62 of file BDSFieldEMRFCavity.hh.

Referenced by GetField().

◆ j0FirstZero

const G4double BDSFieldEMRFCavity::j0FirstZero = 2.404825557695772768622
staticprivate

X coordinate of first 0 point for bessel J0.

Definition at line 68 of file BDSFieldEMRFCavity.hh.

Referenced by GetField().

◆ normalisedCavityRadius

const G4double BDSFieldEMRFCavity::normalisedCavityRadius
private

Pre-calculated normalised calculated radius w.r.t. bessel first 0.

Definition at line 74 of file BDSFieldEMRFCavity.hh.

Referenced by GetField().

◆ phase

G4double BDSFieldEMRFCavity::phase
private

Phase offset of the oscillator.

Definition at line 63 of file BDSFieldEMRFCavity.hh.

Referenced by GetField().

◆ wavelength

G4double BDSFieldEMRFCavity::wavelength
private

Definition at line 65 of file BDSFieldEMRFCavity.hh.

◆ Z0

const G4double BDSFieldEMRFCavity::Z0 = CLHEP::mu0 * CLHEP::c_light
staticprivate

Impedance of free space.

Definition at line 71 of file BDSFieldEMRFCavity.hh.

Referenced by GetField().


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