BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
|
Wrapper class to convert to global coordinates using a navigator for placements. More...
#include <BDSFieldEGlobalPlacement.hh>
Public Member Functions | |
BDSFieldEGlobalPlacement (BDSFieldE *fieldIn) | |
virtual G4ThreeVector | GetFieldTransformed (const G4ThreeVector &position, const G4double t) const |
G4ThreeVector | GetField (const G4ThreeVector &position, const G4double t) const |
virtual G4bool | DoesFieldChangeEnergy () const |
Necessary overload for Geant4. More... | |
![]() | |
BDSFieldE () | |
BDSFieldE (G4Transform3D transformIn) | |
virtual G4ThreeVector | GetField (const G4ThreeVector &position, const G4double t=0) const =0 |
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. More... | |
virtual void | SetTransform (const G4Transform3D &transformIn) |
G4bool | FiniteStrength () const |
Accessor. More... | |
![]() | |
G4ThreeVector | ConvertToLocal (const G4ThreeVector &globalPosition, G4bool &foundAPlacementVolume) const |
G4ThreeVector | ConvertToLocalNoSetup (const G4ThreeVector &globalPosition) const |
Similar to above function but does NOT initialise the transforms. More... | |
G4ThreeVector | ConvertAxisToGlobal (const G4ThreeVector &localAxis) const |
std::pair< G4ThreeVector, G4ThreeVector > | ConvertAxisToGlobal (const std::pair< G4ThreeVector, G4ThreeVector > &localAxis) const |
Private Attributes | |
BDSFieldE * | field |
The field on which this is based. More... | |
Additional Inherited Members | |
![]() | |
static void | AttachWorldVolumeToNavigator (G4VPhysicalVolume *worldPVIn) |
Setup the navigator w.r.t. to a world volume - typically real world. More... | |
static void | ResetNavigatorStates () |
![]() | |
G4bool | finiteStrength |
Flag to cache whether finite nor not. More... | |
G4Transform3D | transform |
Transform to apply for the field relative to the local coordinates of the geometry. More... | |
![]() | |
G4AffineTransform | globalToLocal |
G4AffineTransform | localToGlobal |
![]() | |
static G4Navigator * | navigator = new G4Navigator() |
Wrapper class to convert to global coordinates using a navigator for placements.
This base class provides the aggregate inheritance and utility functions for magnetic fields in local coordinates to be used in global coordinates.
Constness is particularly important here as member functions are called from inside GetField function which is const.
This owns the field it wraps.
Definition at line 44 of file BDSFieldEGlobalPlacement.hh.
|
explicit |
Definition at line 25 of file BDSFieldEGlobalPlacement.cc.
|
virtual |
Definition at line 31 of file BDSFieldEGlobalPlacement.cc.
|
inlinevirtual |
Necessary overload for Geant4.
Definition at line 63 of file BDSFieldEGlobalPlacement.hh.
|
virtual |
Get the field - local coordinates. Apply the global to local transform, query the wrapped field object and transform this field to global coordinates before returning.
Implements BDSFieldE.
Definition at line 45 of file BDSFieldEGlobalPlacement.cc.
References BDSNavigatorPlacements::ConvertAxisToGlobal(), BDSNavigatorPlacements::ConvertToLocal(), field, and BDSFieldE::GetFieldTransformed().
Referenced by GetFieldTransformed().
|
virtual |
As we use a discrete member field object, we do not need to apply the transform. Override default method and just directly call GetField().
Reimplemented from BDSFieldE.
Definition at line 36 of file BDSFieldEGlobalPlacement.cc.
References BDSFieldE::finiteStrength, and GetField().
|
private |
The field on which this is based.
Definition at line 67 of file BDSFieldEGlobalPlacement.hh.
Referenced by GetField().