BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
Public Member Functions | Static Public Attributes | Private Attributes | Static Private Attributes | Friends
BDSFieldInfo Class Reference

All info required to build complete field of any type. More...

#include <BDSFieldInfo.hh>

Collaboration diagram for BDSFieldInfo:
Collaboration graph

Public Member Functions

 BDSFieldInfo ()
 Default constructor for zero field effectively. More...
 
 BDSFieldInfo (BDSFieldType fieldTypeIn, G4double brhoIn, BDSIntegratorType integratorTypeIn, BDSMagnetStrength *magnetStrengthIn=nullptr, G4bool provideGlobalTransformIn=true, const G4Transform3D &transformIn=G4Transform3D(), const G4String &magneticFieldFilePathIn="", BDSFieldFormat magneticFieldFormatIn=BDSFieldFormat::bdsim1d, BDSInterpolatorType magneticInterpolatorTypeIn=BDSInterpolatorType::nearest3d, const G4String &electricFieldFilePathIn="", BDSFieldFormat electricFieldFormatIn=BDSFieldFormat::bdsim1d, BDSInterpolatorType electricInterpolatorTypeIn=BDSInterpolatorType::nearest3d, G4bool cacheTransformsIn=false, G4double eScalingIn=1.0, G4double bScalingIn=1.0, G4double timeOffsetIn=0, G4bool autoScaleIn=false, G4UserLimits *stepLimitIn=nullptr, G4double poleTipRadiusIn=1, G4double beamPipeRadiusIn=0, G4bool left=true, const G4String &magneticSubFieldNameIn="", const G4String &electricSubFieldNameIn="")
 
 BDSFieldInfo (const BDSFieldInfo &other)
 Copy constructor. More...
 
BDSFieldInfooperator= (const BDSFieldInfo &)=delete
 Assignment operator not used.
 
G4Transform3D Transform () const
 Transform for the field definition only. More...
 
G4Transform3D TransformBeamline () const
 Transform from the curvilinear coordinates to the beam line component. More...
 
G4Transform3D TransformComplete () const
 Compound transform of field + beam line transform. More...
 
void SetFieldType (BDSFieldType fieldTypeIn)
 Set Transform - could be done afterwards once instance of this class is passed around. More...
 
void SetIntegratorType (BDSIntegratorType typeIn)
 
void SetProvideGlobalTransform (G4bool provideGlobalTransformIn)
 
void SetMagneticInterpolatorType (BDSInterpolatorType typeIn)
 
void SetMagneticArrayReflectionType (const BDSArrayReflectionTypeSet &typeIn)
 
void SetElectricArrayReflectionType (const BDSArrayReflectionTypeSet &typeIn)
 
void SetBScaling (G4double bScalingIn)
 
void SetAutoScale (G4bool autoScaleIn)
 
void SetScalingRadius (G4double poleTipRadiusIn)
 
void SetBeamPipeRadius (G4double beamPipeRadiusIn)
 
void SetChordStepMinimum (G4double chordStepMinimumIn)
 
void SetSecondFieldOnLeft (G4bool leftIn)
 
void SetMagneticSubField (const G4String &mfnIn)
 
void SetElectricSubField (const G4String &efnIn)
 
void SetUsePlacementWorldTransform (G4bool use)
 
void CompoundBScaling (G4double extraBScalingIn)
 *= for BScaling. More...
 
void CompoundEScaling (G4double extraEScalingIn)
 *= for EScaling. More...
 
void SetTransform (const G4Transform3D &transformIn)
 Set the field definition transform. More...
 
void SetTransformBeamline (const G4Transform3D &transformIn)
 Set the beam line transform. More...
 
void SetUserLimits (G4UserLimits *userLimitsIn)
 Delete and replace the user limits which this class owns (only if not default ul). More...
 
void SetNameOfParserDefinition (const G4String &nameIn)
 
void UpdateUserLimitsLengthMaximumStepSize (G4double maximumStepSize, G4bool warn=false) const
 
void Translate (const G4ThreeVector &translationIn)
 
void CacheTransforms (G4bool cacheTransformsIn)
 Turn on or off transform caching. More...
 
BDSFieldType FieldType () const
 Accessor. More...
 
G4double BRho () const
 Accessor. More...
 
BDSIntegratorType IntegratorType () const
 Accessor. More...
 
BDSMagnetStrengthMagnetStrength () const
 Accessor. More...
 
G4bool ProvideGlobal () const
 Accessor. More...
 
G4String MagneticFile () const
 Accessor. More...
 
BDSFieldFormat MagneticFormat () const
 Accessor. More...
 
BDSInterpolatorType MagneticInterpolatorType () const
 Accessor. More...
 
G4String ElectricFile () const
 Accessor. More...
 
BDSFieldFormat ElectricFormat () const
 Accessor. More...
 
BDSInterpolatorType ElectricInterpolatorType () const
 Accessor. More...
 
G4bool CacheTransforms () const
 Accessor. More...
 
G4double EScaling () const
 Accessor. More...
 
G4double BScaling () const
 Accessor. More...
 
G4double TimeOffset () const
 Accessor. More...
 
G4bool AutoScale () const
 Accessor. More...
 
G4UserLimits * UserLimits () const
 Accessor. More...
 
G4double PoleTipRadius () const
 Accessor. More...
 
G4double BeamPipeRadius () const
 Accessor. More...
 
G4double ChordStepMinimum () const
 Accessor. More...
 
G4double Tilt () const
 Accessor. More...
 
G4bool SecondFieldOnLeft () const
 Accessor. More...
 
G4String MagneticSubFieldName () const
 Accessor. More...
 
G4String ElectricSubFieldName () const
 Accessor. More...
 
G4String NameOfParserDefinition () const
 Accessor. More...
 
G4bool UsePlacementWorldTransform () const
 Accessor. More...
 
const BDSArrayReflectionTypeSet & MagneticArrayReflectionType () const
 Accessor. More...
 
const BDSArrayReflectionTypeSet & ElectricArrayReflectionType () const
 Accessor. More...
 

Static Public Attributes

static G4UserLimits * defaultUL = nullptr
 Cache of default user limits. More...
 

Private Attributes

BDSFieldType fieldType
 
G4double brho
 
BDSIntegratorType integratorType
 
BDSMagnetStrengthmagnetStrength
 
G4bool provideGlobalTransform
 
G4Transform3D * transform
 Transform w.r.t. solid field will be attached to. More...
 
G4String magneticFieldFilePath
 
BDSFieldFormat magneticFieldFormat
 
BDSInterpolatorType magneticInterpolatorType
 
BDSArrayReflectionTypeSet magneticArrayReflectionTypeSet
 
G4String electricFieldFilePath
 
BDSFieldFormat electricFieldFormat
 
BDSInterpolatorType electricInterpolatorType
 
BDSArrayReflectionTypeSet electricArrayReflectionTypeSet
 
G4bool cacheTransforms
 
G4double eScaling
 
G4double bScaling
 
G4double timeOffset
 
G4bool autoScale
 
G4UserLimits * stepLimit
 
G4double poleTipRadius
 Radius at which point the field will be scaled to. More...
 
G4double beamPipeRadius
 Optional radius of beam pipe. More...
 
G4double chordStepMinimum
 
G4double tilt
 Cache of tilt of field. More...
 
G4bool secondFieldOnLeft
 Flag for case of two-beam field - if not left, it's right. More...
 
G4String magneticSubFieldName
 
G4String electricSubFieldName
 
G4bool usePlacementWorldTransform
 
G4Transform3D * transformBeamline
 Transform from curvilinear frame to this field - ie beam line bit only. More...
 
G4String nameOfParserDefinition
 

Static Private Attributes

static const G4ThreeVector defaultUnitDirection
 

Friends

std::ostream & operator<< (std::ostream &out, BDSFieldInfo const &info)
 output stream More...
 

Detailed Description

All info required to build complete field of any type.

With an instance of this class, the field factory should be able to create the desired fully functional field with all required associated Geant4 objects.

Owns the magnetic strength instance & cavity info instance.

Owns G4ThreeVector for unitDirection. It's a pointer to save memory on average.

Pole tip radius is used for normalisation purposes for outer yoke fields. Beam pipe radius is used to decide whether there's a gap between the pole and the beam pipe and therefore to use a normal inner field for that part.

Transforms are optional to save memory. The complete required transform is stored as 2 optional bits - the transform from the curvilinear reference frame to that of the specific component (tilt + offset), as well as the transform of the field definition itself (e.g. a field map maybe rotated 90 degrees). The full transform is the compound of these. They're kept separate in case we want to wrap multiple instances (with individual field transforms) in one holder instance (with the beam line transform).

Author
Laurie Nevay

Definition at line 64 of file BDSFieldInfo.hh.

Constructor & Destructor Documentation

◆ BDSFieldInfo() [1/3]

BDSFieldInfo::BDSFieldInfo ( )

Default constructor for zero field effectively.

Definition at line 39 of file BDSFieldInfo.cc.

◆ BDSFieldInfo() [2/3]

BDSFieldInfo::BDSFieldInfo ( BDSFieldType  fieldTypeIn,
G4double  brhoIn,
BDSIntegratorType  integratorTypeIn,
BDSMagnetStrength magnetStrengthIn = nullptr,
G4bool  provideGlobalTransformIn = true,
const G4Transform3D &  transformIn = G4Transform3D(),
const G4String &  magneticFieldFilePathIn = "",
BDSFieldFormat  magneticFieldFormatIn = BDSFieldFormat::bdsim1d,
BDSInterpolatorType  magneticInterpolatorTypeIn = BDSInterpolatorType::nearest3d,
const G4String &  electricFieldFilePathIn = "",
BDSFieldFormat  electricFieldFormatIn = BDSFieldFormat::bdsim1d,
BDSInterpolatorType  electricInterpolatorTypeIn = BDSInterpolatorType::nearest3d,
G4bool  cacheTransformsIn = false,
G4double  eScalingIn = 1.0,
G4double  bScalingIn = 1.0,
G4double  timeOffsetIn = 0,
G4bool  autoScaleIn = false,
G4UserLimits *  stepLimitIn = nullptr,
G4double  poleTipRadiusIn = 1,
G4double  beamPipeRadiusIn = 0,
G4bool  left = true,
const G4String &  magneticSubFieldNameIn = "",
const G4String &  electricSubFieldNameIn = "" 
)

Definition at line 72 of file BDSFieldInfo.cc.

◆ ~BDSFieldInfo()

BDSFieldInfo::~BDSFieldInfo ( )

Definition at line 134 of file BDSFieldInfo.cc.

◆ BDSFieldInfo() [3/3]

BDSFieldInfo::BDSFieldInfo ( const BDSFieldInfo other)

Copy constructor.

Definition at line 142 of file BDSFieldInfo.cc.

References transform, and transformBeamline.

Member Function Documentation

◆ AutoScale()

G4bool BDSFieldInfo::AutoScale ( ) const
inline

Accessor.

Definition at line 115 of file BDSFieldInfo.hh.

Referenced by BDSFieldLoader::LoadMagField().

Here is the caller graph for this function:

◆ BeamPipeRadius()

G4double BDSFieldInfo::BeamPipeRadius ( ) const
inline

Accessor.

Definition at line 118 of file BDSFieldInfo.hh.

References beamPipeRadius.

Referenced by BDSFieldFactory::CreateCavityFringe(), BDSFieldFactory::CreateFieldMagRaw(), BDSFieldFactory::CreateIntegratorMag(), and BDSFieldFactory::CreateRMatrix().

Here is the caller graph for this function:

◆ BRho()

G4double BDSFieldInfo::BRho ( ) const
inline

◆ BScaling()

G4double BDSFieldInfo::BScaling ( ) const
inline

Accessor.

Definition at line 113 of file BDSFieldInfo.hh.

Referenced by BDSFieldLoader::LoadEMField(), and BDSFieldLoader::LoadMagField().

Here is the caller graph for this function:

◆ CacheTransforms() [1/2]

G4bool BDSFieldInfo::CacheTransforms ( ) const
inline

Accessor.

Definition at line 111 of file BDSFieldInfo.hh.

◆ CacheTransforms() [2/2]

void BDSFieldInfo::CacheTransforms ( G4bool  cacheTransformsIn)
inline

Turn on or off transform caching.

Definition at line 174 of file BDSFieldInfo.hh.

◆ ChordStepMinimum()

G4double BDSFieldInfo::ChordStepMinimum ( ) const
inline

Accessor.

Definition at line 119 of file BDSFieldInfo.hh.

Referenced by BDSFieldObjects::BDSFieldObjects().

Here is the caller graph for this function:

◆ CompoundBScaling()

void BDSFieldInfo::CompoundBScaling ( G4double  extraBScalingIn)
inline

*= for BScaling.

Definition at line 152 of file BDSFieldInfo.hh.

Referenced by BDSComponentFactory::SetFieldDefinitions().

Here is the caller graph for this function:

◆ CompoundEScaling()

void BDSFieldInfo::CompoundEScaling ( G4double  extraEScalingIn)
inline

*= for EScaling.

Definition at line 154 of file BDSFieldInfo.hh.

◆ ElectricArrayReflectionType()

const BDSArrayReflectionTypeSet & BDSFieldInfo::ElectricArrayReflectionType ( ) const
inline

Accessor.

Definition at line 127 of file BDSFieldInfo.hh.

Referenced by BDSFieldLoader::LoadEField(), and BDSFieldLoader::LoadEMField().

Here is the caller graph for this function:

◆ ElectricFile()

G4String BDSFieldInfo::ElectricFile ( ) const
inline

Accessor.

Definition at line 108 of file BDSFieldInfo.hh.

Referenced by BDSFieldLoader::EFilePathOK(), BDSFieldLoader::LoadEField(), and BDSFieldLoader::LoadEMField().

Here is the caller graph for this function:

◆ ElectricFormat()

BDSFieldFormat BDSFieldInfo::ElectricFormat ( ) const
inline

Accessor.

Definition at line 109 of file BDSFieldInfo.hh.

Referenced by BDSFieldLoader::LoadEField(), and BDSFieldLoader::LoadEMField().

Here is the caller graph for this function:

◆ ElectricInterpolatorType()

BDSInterpolatorType BDSFieldInfo::ElectricInterpolatorType ( ) const
inline

Accessor.

Definition at line 110 of file BDSFieldInfo.hh.

Referenced by BDSFieldLoader::LoadEField(), and BDSFieldLoader::LoadEMField().

Here is the caller graph for this function:

◆ ElectricSubFieldName()

G4String BDSFieldInfo::ElectricSubFieldName ( ) const
inline

Accessor.

Definition at line 123 of file BDSFieldInfo.hh.

Referenced by BDSFieldFactory::CreateFieldERaw().

Here is the caller graph for this function:

◆ EScaling()

G4double BDSFieldInfo::EScaling ( ) const
inline

Accessor.

Definition at line 112 of file BDSFieldInfo.hh.

Referenced by BDSFieldLoader::LoadEField(), and BDSFieldLoader::LoadEMField().

Here is the caller graph for this function:

◆ FieldType()

BDSFieldType BDSFieldInfo::FieldType ( ) const
inline

◆ IntegratorType()

BDSIntegratorType BDSFieldInfo::IntegratorType ( ) const
inline

Accessor.

Definition at line 102 of file BDSFieldInfo.hh.

Referenced by BDSFieldFactory::CreateIntegratorEM(), and BDSFieldFactory::CreateIntegratorMag().

Here is the caller graph for this function:

◆ MagneticArrayReflectionType()

const BDSArrayReflectionTypeSet & BDSFieldInfo::MagneticArrayReflectionType ( ) const
inline

Accessor.

Definition at line 126 of file BDSFieldInfo.hh.

Referenced by BDSFieldLoader::LoadEMField(), and BDSFieldLoader::LoadMagField().

Here is the caller graph for this function:

◆ MagneticFile()

G4String BDSFieldInfo::MagneticFile ( ) const
inline

Accessor.

Definition at line 105 of file BDSFieldInfo.hh.

Referenced by BDSFieldLoader::BFilePathOK(), BDSFieldLoader::LoadEMField(), and BDSFieldLoader::LoadMagField().

Here is the caller graph for this function:

◆ MagneticFormat()

BDSFieldFormat BDSFieldInfo::MagneticFormat ( ) const
inline

Accessor.

Definition at line 106 of file BDSFieldInfo.hh.

Referenced by BDSFieldLoader::LoadEMField(), and BDSFieldLoader::LoadMagField().

Here is the caller graph for this function:

◆ MagneticInterpolatorType()

BDSInterpolatorType BDSFieldInfo::MagneticInterpolatorType ( ) const
inline

Accessor.

Definition at line 107 of file BDSFieldInfo.hh.

Referenced by BDSFieldLoader::LoadEMField(), and BDSFieldLoader::LoadMagField().

Here is the caller graph for this function:

◆ MagneticSubFieldName()

G4String BDSFieldInfo::MagneticSubFieldName ( ) const
inline

Accessor.

Definition at line 122 of file BDSFieldInfo.hh.

Referenced by BDSFieldFactory::CreateFieldMagRaw().

Here is the caller graph for this function:

◆ MagnetStrength()

BDSMagnetStrength * BDSFieldInfo::MagnetStrength ( ) const
inline

◆ NameOfParserDefinition()

G4String BDSFieldInfo::NameOfParserDefinition ( ) const
inline

◆ PoleTipRadius()

G4double BDSFieldInfo::PoleTipRadius ( ) const
inline

Accessor.

Definition at line 117 of file BDSFieldInfo.hh.

References poleTipRadius.

Referenced by BDSFieldFactory::CreateFieldMagRaw().

Here is the caller graph for this function:

◆ ProvideGlobal()

G4bool BDSFieldInfo::ProvideGlobal ( ) const
inline

Accessor.

Definition at line 104 of file BDSFieldInfo.hh.

Referenced by BDSFieldFactory::CreateFieldE(), BDSFieldFactory::CreateFieldEM(), BDSFieldFactory::CreateFieldMag(), and BDSComponentFactory::SetFieldDefinitions().

Here is the caller graph for this function:

◆ SecondFieldOnLeft()

G4bool BDSFieldInfo::SecondFieldOnLeft ( ) const
inline

Accessor.

Definition at line 121 of file BDSFieldInfo.hh.

References secondFieldOnLeft.

Referenced by BDSFieldFactory::CreateFieldMagRaw().

Here is the caller graph for this function:

◆ SetAutoScale()

void BDSFieldInfo::SetAutoScale ( G4bool  autoScaleIn)
inline

Definition at line 142 of file BDSFieldInfo.hh.

◆ SetBeamPipeRadius()

void BDSFieldInfo::SetBeamPipeRadius ( G4double  beamPipeRadiusIn)
inline

Definition at line 144 of file BDSFieldInfo.hh.

◆ SetBScaling()

void BDSFieldInfo::SetBScaling ( G4double  bScalingIn)
inline

Definition at line 141 of file BDSFieldInfo.hh.

◆ SetChordStepMinimum()

void BDSFieldInfo::SetChordStepMinimum ( G4double  chordStepMinimumIn)
inline

Definition at line 145 of file BDSFieldInfo.hh.

◆ SetElectricArrayReflectionType()

void BDSFieldInfo::SetElectricArrayReflectionType ( const BDSArrayReflectionTypeSet &  typeIn)
inline

Definition at line 140 of file BDSFieldInfo.hh.

◆ SetElectricSubField()

void BDSFieldInfo::SetElectricSubField ( const G4String &  efnIn)
inline

Definition at line 148 of file BDSFieldInfo.hh.

◆ SetFieldType()

void BDSFieldInfo::SetFieldType ( BDSFieldType  fieldTypeIn)
inline

Set Transform - could be done afterwards once instance of this class is passed around.

Definition at line 135 of file BDSFieldInfo.hh.

Referenced by BDSComponentFactory::PrepareMagnetOuterFieldInfo().

Here is the caller graph for this function:

◆ SetIntegratorType()

void BDSFieldInfo::SetIntegratorType ( BDSIntegratorType  typeIn)
inline

Definition at line 136 of file BDSFieldInfo.hh.

◆ SetMagneticArrayReflectionType()

void BDSFieldInfo::SetMagneticArrayReflectionType ( const BDSArrayReflectionTypeSet &  typeIn)
inline

Definition at line 139 of file BDSFieldInfo.hh.

◆ SetMagneticInterpolatorType()

void BDSFieldInfo::SetMagneticInterpolatorType ( BDSInterpolatorType  typeIn)
inline

Definition at line 138 of file BDSFieldInfo.hh.

◆ SetMagneticSubField()

void BDSFieldInfo::SetMagneticSubField ( const G4String &  mfnIn)
inline

Definition at line 147 of file BDSFieldInfo.hh.

◆ SetNameOfParserDefinition()

void BDSFieldInfo::SetNameOfParserDefinition ( const G4String &  nameIn)
inline

Definition at line 162 of file BDSFieldInfo.hh.

◆ SetProvideGlobalTransform()

void BDSFieldInfo::SetProvideGlobalTransform ( G4bool  provideGlobalTransformIn)
inline

Definition at line 137 of file BDSFieldInfo.hh.

◆ SetScalingRadius()

void BDSFieldInfo::SetScalingRadius ( G4double  poleTipRadiusIn)
inline

Definition at line 143 of file BDSFieldInfo.hh.

◆ SetSecondFieldOnLeft()

void BDSFieldInfo::SetSecondFieldOnLeft ( G4bool  leftIn)
inline

Definition at line 146 of file BDSFieldInfo.hh.

◆ SetTransform()

void BDSFieldInfo::SetTransform ( const G4Transform3D &  transformIn)

Set the field definition transform.

Definition at line 284 of file BDSFieldInfo.cc.

References transform.

Referenced by BDSMagnet::BuildVacuumField().

Here is the caller graph for this function:

◆ SetTransformBeamline()

void BDSFieldInfo::SetTransformBeamline ( const G4Transform3D &  transformIn)

Set the beam line transform.

Definition at line 290 of file BDSFieldInfo.cc.

References transformBeamline.

Referenced by BDSComponentFactory::SetFieldDefinitions().

Here is the caller graph for this function:

◆ SetUsePlacementWorldTransform()

void BDSFieldInfo::SetUsePlacementWorldTransform ( G4bool  use)
inline

Definition at line 149 of file BDSFieldInfo.hh.

◆ SetUserLimits()

void BDSFieldInfo::SetUserLimits ( G4UserLimits *  userLimitsIn)

Delete and replace the user limits which this class owns (only if not default ul).

Definition at line 189 of file BDSFieldInfo.cc.

References defaultUL.

◆ Tilt()

G4double BDSFieldInfo::Tilt ( ) const
inline

Accessor.

Definition at line 120 of file BDSFieldInfo.hh.

References tilt.

Referenced by BDSFieldFactory::CreateIntegratorMag().

Here is the caller graph for this function:

◆ TimeOffset()

G4double BDSFieldInfo::TimeOffset ( ) const
inline

Accessor.

Definition at line 114 of file BDSFieldInfo.hh.

◆ Transform()

G4Transform3D BDSFieldInfo::Transform ( ) const

Transform for the field definition only.

Definition at line 269 of file BDSFieldInfo.cc.

References transform.

Referenced by BDSMagnet::BuildVacuumField(), BDSFieldFactory::CreateFieldERaw(), BDSFieldFactory::CreateFieldMagRaw(), BDSFieldLoader::LoadEField(), BDSFieldLoader::LoadEMField(), BDSFieldLoader::LoadMagField(), and TransformComplete().

Here is the caller graph for this function:

◆ TransformBeamline()

G4Transform3D BDSFieldInfo::TransformBeamline ( ) const

Transform from the curvilinear coordinates to the beam line component.

Definition at line 274 of file BDSFieldInfo.cc.

References transformBeamline.

Referenced by BDSFieldFactory::CreateFieldERaw(), BDSFieldFactory::CreateFieldMagRaw(), and TransformComplete().

Here is the caller graph for this function:

◆ TransformComplete()

G4Transform3D BDSFieldInfo::TransformComplete ( ) const

Compound transform of field + beam line transform.

Definition at line 279 of file BDSFieldInfo.cc.

References Transform(), and TransformBeamline().

Referenced by BDSFieldFactory::CreateFieldEM(), BDSFieldFactory::CreateFieldERaw(), BDSFieldFactory::CreateFieldMagRaw(), and BDSFieldFactory::CreateTeleporter().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Translate()

void BDSFieldInfo::Translate ( const G4ThreeVector &  translationIn)

Translate - adds an additional translation to the transform member variable. May only be known at assembly time given parameterised geometry. Used by AWAKE Spectrometer only.

Definition at line 257 of file BDSFieldInfo.cc.

References transform.

Referenced by BDSMagnet::BuildOuterField().

Here is the caller graph for this function:

◆ UpdateUserLimitsLengthMaximumStepSize()

void BDSFieldInfo::UpdateUserLimitsLengthMaximumStepSize ( G4double  maximumStepSize,
G4bool  warn = false 
) const

Update the user limits object (stepLimit) to the minimum of the current and supplied maximum step size. Mutable, so can be called on const object.

Definition at line 196 of file BDSFieldInfo.cc.

References BDS::CreateUserLimits(), and defaultUL.

Referenced by BDSFieldFactory::CreateFieldEM(), BDSFieldFactory::CreateFieldERaw(), and BDSFieldFactory::CreateFieldMagRaw().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ UsePlacementWorldTransform()

G4bool BDSFieldInfo::UsePlacementWorldTransform ( ) const
inline

Accessor.

Definition at line 125 of file BDSFieldInfo.hh.

Referenced by BDSFieldFactory::CreateFieldE(), BDSFieldFactory::CreateFieldEM(), and BDSFieldFactory::CreateFieldMag().

Here is the caller graph for this function:

◆ UserLimits()

G4UserLimits * BDSFieldInfo::UserLimits ( ) const
inline

Accessor.

Definition at line 116 of file BDSFieldInfo.hh.

Referenced by BDSFieldObjects::AttachToVolume().

Here is the caller graph for this function:

Friends And Related Function Documentation

◆ operator<<

std::ostream & operator<< ( std::ostream &  out,
BDSFieldInfo const &  info 
)
friend

output stream

Definition at line 218 of file BDSFieldInfo.cc.

Field Documentation

◆ autoScale

G4bool BDSFieldInfo::autoScale
private

Definition at line 200 of file BDSFieldInfo.hh.

◆ beamPipeRadius

G4double BDSFieldInfo::beamPipeRadius
private

Optional radius of beam pipe.

Definition at line 203 of file BDSFieldInfo.hh.

Referenced by BeamPipeRadius().

◆ brho

G4double BDSFieldInfo::brho
private

Definition at line 183 of file BDSFieldInfo.hh.

◆ bScaling

G4double BDSFieldInfo::bScaling
private

Definition at line 198 of file BDSFieldInfo.hh.

◆ cacheTransforms

G4bool BDSFieldInfo::cacheTransforms
private

Definition at line 196 of file BDSFieldInfo.hh.

◆ chordStepMinimum

G4double BDSFieldInfo::chordStepMinimum
private

Definition at line 204 of file BDSFieldInfo.hh.

◆ defaultUL

G4UserLimits * BDSFieldInfo::defaultUL = nullptr
static

Cache of default user limits.

Definition at line 179 of file BDSFieldInfo.hh.

Referenced by SetUserLimits(), and UpdateUserLimitsLengthMaximumStepSize().

◆ defaultUnitDirection

const G4ThreeVector BDSFieldInfo::defaultUnitDirection
staticprivate

Definition at line 216 of file BDSFieldInfo.hh.

◆ electricArrayReflectionTypeSet

BDSArrayReflectionTypeSet BDSFieldInfo::electricArrayReflectionTypeSet
private

Definition at line 195 of file BDSFieldInfo.hh.

◆ electricFieldFilePath

G4String BDSFieldInfo::electricFieldFilePath
private

Definition at line 192 of file BDSFieldInfo.hh.

◆ electricFieldFormat

BDSFieldFormat BDSFieldInfo::electricFieldFormat
private

Definition at line 193 of file BDSFieldInfo.hh.

◆ electricInterpolatorType

BDSInterpolatorType BDSFieldInfo::electricInterpolatorType
private

Definition at line 194 of file BDSFieldInfo.hh.

◆ electricSubFieldName

G4String BDSFieldInfo::electricSubFieldName
private

Definition at line 208 of file BDSFieldInfo.hh.

◆ eScaling

G4double BDSFieldInfo::eScaling
private

Definition at line 197 of file BDSFieldInfo.hh.

◆ fieldType

BDSFieldType BDSFieldInfo::fieldType
private

Definition at line 182 of file BDSFieldInfo.hh.

◆ integratorType

BDSIntegratorType BDSFieldInfo::integratorType
private

Definition at line 184 of file BDSFieldInfo.hh.

◆ magneticArrayReflectionTypeSet

BDSArrayReflectionTypeSet BDSFieldInfo::magneticArrayReflectionTypeSet
private

Definition at line 191 of file BDSFieldInfo.hh.

◆ magneticFieldFilePath

G4String BDSFieldInfo::magneticFieldFilePath
private

Definition at line 188 of file BDSFieldInfo.hh.

◆ magneticFieldFormat

BDSFieldFormat BDSFieldInfo::magneticFieldFormat
private

Definition at line 189 of file BDSFieldInfo.hh.

◆ magneticInterpolatorType

BDSInterpolatorType BDSFieldInfo::magneticInterpolatorType
private

Definition at line 190 of file BDSFieldInfo.hh.

◆ magneticSubFieldName

G4String BDSFieldInfo::magneticSubFieldName
private

Definition at line 207 of file BDSFieldInfo.hh.

◆ magnetStrength

BDSMagnetStrength* BDSFieldInfo::magnetStrength
private

Definition at line 185 of file BDSFieldInfo.hh.

◆ nameOfParserDefinition

G4String BDSFieldInfo::nameOfParserDefinition
private

Definition at line 213 of file BDSFieldInfo.hh.

◆ poleTipRadius

G4double BDSFieldInfo::poleTipRadius
private

Radius at which point the field will be scaled to.

Definition at line 202 of file BDSFieldInfo.hh.

Referenced by PoleTipRadius().

◆ provideGlobalTransform

G4bool BDSFieldInfo::provideGlobalTransform
private

Definition at line 186 of file BDSFieldInfo.hh.

◆ secondFieldOnLeft

G4bool BDSFieldInfo::secondFieldOnLeft
private

Flag for case of two-beam field - if not left, it's right.

Definition at line 206 of file BDSFieldInfo.hh.

Referenced by SecondFieldOnLeft().

◆ stepLimit

G4UserLimits* BDSFieldInfo::stepLimit
mutableprivate

Definition at line 201 of file BDSFieldInfo.hh.

◆ tilt

G4double BDSFieldInfo::tilt
private

Cache of tilt of field.

Definition at line 205 of file BDSFieldInfo.hh.

Referenced by Tilt().

◆ timeOffset

G4double BDSFieldInfo::timeOffset
private

Definition at line 199 of file BDSFieldInfo.hh.

◆ transform

G4Transform3D* BDSFieldInfo::transform
private

Transform w.r.t. solid field will be attached to.

Definition at line 187 of file BDSFieldInfo.hh.

Referenced by BDSFieldInfo(), SetTransform(), Transform(), and Translate().

◆ transformBeamline

G4Transform3D* BDSFieldInfo::transformBeamline
private

Transform from curvilinear frame to this field - ie beam line bit only.

Definition at line 211 of file BDSFieldInfo.hh.

Referenced by BDSFieldInfo(), SetTransformBeamline(), and TransformBeamline().

◆ usePlacementWorldTransform

G4bool BDSFieldInfo::usePlacementWorldTransform
private

Definition at line 209 of file BDSFieldInfo.hh.


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