BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
Loading...
Searching...
No Matches
Public Member Functions | Static Public 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)
 
 BDSFieldEMRFCavity (G4double eFieldAmplitude, G4double frequency, G4double phaseOffset, G4double cavityRadius, G4double synchronousTIn)
 
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 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.
 

Static Public Member Functions

static G4double TransitTimeFactor (G4double frequency, G4double phase, G4double zLength, G4double beta)
 General function put here as it represents the equations in this class.
 

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 synchronousT
 
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)
explicit

Definition at line 39 of file BDSFieldEMRFCavity.cc.

◆ BDSFieldEMRFCavity() [2/2]

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

Definition at line 47 of file BDSFieldEMRFCavity.cc.

◆ ~BDSFieldEMRFCavity()

virtual BDSFieldEMRFCavity::~BDSFieldEMRFCavity ( )
inlinevirtual

Definition at line 50 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 64 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 56 of file BDSFieldEMRFCavity.hh.

◆ TransitTimeFactor()

G4double BDSFieldEMRFCavity::TransitTimeFactor ( G4double  frequency,
G4double  phase,
G4double  zLength,
G4double  beta 
)
static

General function put here as it represents the equations in this class.

Definition at line 103 of file BDSFieldEMRFCavity.cc.

References phase.

Referenced by BDSComponentFactory::EFieldFromElement(), and BDSBeamlineIntegral::Integrate().

Here is the caller graph for this function:

Field Documentation

◆ angularFrequency

const G4double BDSFieldEMRFCavity::angularFrequency
private

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

Definition at line 73 of file BDSFieldEMRFCavity.hh.

Referenced by GetField().

◆ cavityRadius

G4double BDSFieldEMRFCavity::cavityRadius
private

Radius at maximum extent of cavity.

Definition at line 67 of file BDSFieldEMRFCavity.hh.

◆ eFieldMax

G4double BDSFieldEMRFCavity::eFieldMax
private

Maximum field in V/m.

Definition at line 65 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 70 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 72 of file BDSFieldEMRFCavity.hh.

Referenced by GetField().

◆ phase

G4double BDSFieldEMRFCavity::phase
private

Phase offset of the oscillator.

Definition at line 66 of file BDSFieldEMRFCavity.hh.

Referenced by GetField(), and TransitTimeFactor().

◆ synchronousT

G4double BDSFieldEMRFCavity::synchronousT
private

Definition at line 68 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: