19#ifndef BDSFIELDOBJECTS_H
20#define BDSFIELDOBJECTS_H
23#include "G4Version.hh"
30class G4ElectroMagneticField;
31class G4EquationOfMotion;
37class G4MagIntegratorStepper;
64 G4EquationOfMotion* equationOfMotionIn,
65 G4MagIntegratorStepper* magIntegratorStepperIn,
66 G4ChordFinder* chordFinderIn,
67 G4FieldManager* fieldManagerIn);
74 G4ElectroMagneticField* fieldIn,
75 G4EquationOfMotion* equationOfMotionIn,
76 G4MagIntegratorStepper* magIntegratorStepperIn);
78#if G4VERSION_NUMBER > 1049
82 G4MagneticField* fieldIn,
83 G4EquationOfMotion* equationOfMotionIn,
84 G4MagIntegratorStepper* magIntegratorStepperIn);
102 G4bool penetrateToDaughterVolumes =
true)
const;
106 G4bool penetrateToDaughterVolumes =
true)
const;
113 G4UserLimits* userLimits,
114 G4bool penetrateToDaughterVolumes =
true)
const;
All info required to build complete field of any type.
A holder for all the Geant4 field related objects.
G4FieldManager * GetFieldManager() const
Accessor.
G4ChordFinder * GetChordFinder() const
Accessor.
void AttachToVolume(G4LogicalVolume *volume, G4bool penetrateToDaughterVolumes=true) const
Interface to easily attach to logical volume.
G4MagInt_Driver * GetMagIntDriver() const
Accessor.
G4MagIntegratorStepper * GetIntegrator() const
Accessor.
~BDSFieldObjects()
Destructor deletes all objects apart from the magnetic field.
G4FieldManager * fieldManager
Field manager.
BDSFieldObjects(const BDSFieldObjects &other)=delete
G4Field * field
Reference to field this instance is based on.
const BDSFieldInfo * info
The complete information required to build this field.
G4MagIntegratorStepper * magIntegratorStepper
Stepper, selectable depending on smoothness of the field etc.
G4Field * GetField() const
Accessor.
G4ChordFinder * chordFinder
Chord manager.
G4EquationOfMotion * GetEquationOfMotion() const
Accessor.
const BDSFieldInfo * GetInfo() const
Accessor.
G4EquationOfMotion * equationOfMotion
Equation of motion, typically G4Mag_UsualEqRhs instance.
void AttachUserLimitsToVolume(G4LogicalVolume *volume, G4UserLimits *userLimits, G4bool penetrateToDaughterVolumes=true) const
G4MagInt_Driver * magIntDriver
EM field integrator driver (optional) - only for EM fields.