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

A vector sum of multiple displaced EM fields. More...

#include <BDSFieldEMVectorSum.hh>

Inheritance diagram for BDSFieldEMVectorSum:
Inheritance graph
Collaboration diagram for BDSFieldEMVectorSum:
Collaboration graph

Public Member Functions

 BDSFieldEMVectorSum (const std::vector< BDSFieldEM * > &fieldsIn, const std::vector< G4ThreeVector > &fieldOffsetsIn, const std::vector< double > &timeOffsetsIn, const std::vector< double > &zLengthsIn)
 
virtual void PushBackField (const G4ThreeVector &positionOffset, double timeOffset, double zLength, BDSFieldEM *emfield)
 
virtual std::pair< G4ThreeVector, G4ThreeVector > GetField (const G4ThreeVector &position, const G4double t=0) const
 Calculate the field value.
 
- Public Member Functions inherited from BDSFieldEM
 BDSFieldEM ()
 
 BDSFieldEM (G4Transform3D transformIn)
 
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 Attributes

std::vector< BDSFieldEM * > fields
 
std::vector< G4ThreeVector > fieldOffsets
 
std::vector< G4double > timeOffsets
 
std::vector< double > zLengthsOver2
 

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

A vector sum of multiple displaced EM fields.

Author
Laurie Nevay

Definition at line 36 of file BDSFieldEMVectorSum.hh.

Constructor & Destructor Documentation

◆ BDSFieldEMVectorSum()

BDSFieldEMVectorSum::BDSFieldEMVectorSum ( )

Definition at line 30 of file BDSFieldEMVectorSum.cc.

◆ ~BDSFieldEMVectorSum()

BDSFieldEMVectorSum::~BDSFieldEMVectorSum ( )
virtual

Definition at line 55 of file BDSFieldEMVectorSum.cc.

Member Function Documentation

◆ GetField()

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

Calculate the field value.

Implements BDSFieldEM.

Definition at line 71 of file BDSFieldEMVectorSum.cc.

◆ PushBackField()

void BDSFieldEMVectorSum::PushBackField ( const G4ThreeVector &  positionOffset,
double  timeOffset,
double  zLength,
BDSFieldEM emfield 
)
virtual

Definition at line 61 of file BDSFieldEMVectorSum.cc.

Field Documentation

◆ fieldOffsets

std::vector<G4ThreeVector> BDSFieldEMVectorSum::fieldOffsets
private

Definition at line 56 of file BDSFieldEMVectorSum.hh.

◆ fields

std::vector<BDSFieldEM*> BDSFieldEMVectorSum::fields
private

Definition at line 55 of file BDSFieldEMVectorSum.hh.

◆ timeOffsets

std::vector<G4double> BDSFieldEMVectorSum::timeOffsets
private

Definition at line 57 of file BDSFieldEMVectorSum.hh.

◆ zLengthsOver2

std::vector<double> BDSFieldEMVectorSum::zLengthsOver2
private

Definition at line 58 of file BDSFieldEMVectorSum.hh.


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