BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
|
Derived fringe field integrator that does normalise to momentum. More...
#include <BDSIntegratorDipoleFringeScaling.hh>
Public Member Functions | |
BDSIntegratorDipoleFringeScaling (BDSMagnetStrength const *strength, G4double brhoIn, G4Mag_EqRhs *eqOfMIn, G4double minimumRadiusOfCurvature, const G4double &tiltIn=0) | |
virtual void | Stepper (const G4double yIn[], const G4double dydx[], const G4double h, G4double yOut[], G4double yErr[]) |
![]() | |
BDSIntegratorDipoleFringe (BDSMagnetStrength const *strength, G4double brhoIn, G4Mag_EqRhs *eqOfMIn, G4double minimumRadiusOfCurvature, const G4double &tiltIn=0) | |
virtual void | Stepper (const G4double yIn[6], const G4double dydx[6], const G4double h, G4double yOut[6], G4double yErr[6]) |
The stepper for integration. Calls base class stepper. | |
void | BaseStepper (const G4double yIn[6], const G4double dydx[6], const G4double &h, G4double yOut[6], G4double yErr[6], const G4double &fcof, const G4double &momScaling) |
void | OneStep (const G4ThreeVector &posIn, const G4ThreeVector &momUIn, G4ThreeVector &posOut, G4ThreeVector &momOut, const G4double &bendingRadius) const |
void | MultipoleStep (const G4double yIn[6], G4double yMultipoleOut[6], const G4double &h) |
G4double | GetPolefaceAngle () |
G4double | GetFringeCorr () |
G4double | GetSecondFringeCorr () |
G4double | GetPolefaceCurv () |
BDSIntegratorDipoleFringe & | operator= (const BDSIntegratorDipoleFringe &)=delete |
Assignment and copy constructor not implemented nor used. | |
BDSIntegratorDipoleFringe (BDSIntegratorDipoleFringe &)=delete | |
Assignment and copy constructor not implemented nor used. | |
![]() | |
BDSIntegratorDipoleRodrigues2 (G4Mag_EqRhs *eqOfMIn, G4double minimumRadiusOfCurvature) | |
virtual void | DumbStepper (const G4double yIn[6], G4ThreeVector field, G4double stepLength, G4double yOut[6]) |
void | SingleStep (const G4double yIn[6], const G4double &h, G4double yOut[6]) |
virtual void | Stepper (const G4double yIn[6], const G4double dydx[], G4double h, G4double yOut[6], G4double yErr[6]) |
Output error array. | |
virtual G4int | IntegratorOrder () const |
void | AdvanceHelixForSpiralling (const G4double yIn[6], const G4ThreeVector &field, const G4double &h, G4double yOut[6], G4double yErr[6]) |
G4double | RadiusOfHelix () const |
Public accessor for protected variable in base class. | |
![]() | |
void | AdvanceDriftMag (const G4double yIn[], const G4double h, G4double yOut[], G4double yErr[]) const |
Error array [6] all 0. | |
void | AdvanceDriftMag (const G4double yIn[], const G4ThreeVector &unitMomentum, const G4double h, G4double yOut[], G4double yErr[]) const |
![]() | |
G4VPhysicalVolume * | LocateGlobalPointAndSetup (const G4ThreeVector &point, const G4ThreeVector *direction=nullptr, const G4bool pRelativeSearch=true, const G4bool ignoreDirection=true, G4bool useCurvilinear=true) const |
A wrapper for the underlying static navigator instance located within this class. | |
G4VPhysicalVolume * | LocateGlobalPointAndSetup (G4Step const *const step, G4bool useCurvilinear=true) const |
BDSStep | ConvertToLocal (G4Step const *const step, G4bool useCurvilinear=true) const |
BDSStep | ConvertToLocal (const G4ThreeVector &globalPosition, const G4ThreeVector &globalDirection, const G4double stepLength=0, const G4bool useCurvilinear=true, const G4double marginLength=1) const |
BDSStep | ConvertToGlobalStep (const G4ThreeVector &localPosition, const G4ThreeVector &localDirection, const G4bool useCurvilinear=true) const |
G4ThreeVector | ConvertToLocal (const G4double globalPoint[3], const G4bool useCurvilinear=true) const |
G4ThreeVector | ConvertToLocal (const G4ThreeVector &globalPosition, const G4bool useCurvilinear=true) const |
Vector version - see notes above. | |
G4ThreeVector | ConvertToLocalNoSetup (const G4ThreeVector &globalPosition, const G4bool useCurvilinear=true) const |
Similar to above function but does NOT initialise the transforms. | |
G4ThreeVector | ConvertAxisToLocal (const G4ThreeVector &globalAxis, const G4bool useCurvilinear=true) const |
G4ThreeVector | ConvertAxisToLocal (const G4double globalPoint[3], const G4double globalAxis[3], const G4bool useCurvilinear=true) const |
G4ThreeVector | ConvertAxisToLocal (const G4ThreeVector &globalPoint, const G4ThreeVector &globalAxis, const G4bool useCurvilinear=true) const |
Vector version. | |
G4ThreeVector | ConvertAxisToGlobal (const G4ThreeVector &localAxis, const G4bool useCurvilinear=true) const |
std::pair< G4ThreeVector, G4ThreeVector > | ConvertAxisToGlobal (const std::pair< G4ThreeVector, G4ThreeVector > &localAxis, const G4bool useCurvilinear=true) const |
G4ThreeVector | ConvertToGlobal (const G4ThreeVector &localPosition, const G4bool useCurvilinear=true) const |
G4ThreeVector | ConvertAxisToGlobal (const G4ThreeVector &globalPosition, const G4ThreeVector &localAxis, const G4bool useCurvilinear=true) const |
G4ThreeVector | ConvertToGlobal (const G4ThreeVector &globalPosition, const G4ThreeVector &localPosition, const G4bool useCurvilinear=true) const |
BDSStep | GlobalToCurvilinear (const G4double fieldArcLength, const G4ThreeVector &unitField, const G4double angle, const G4ThreeVector &position, const G4ThreeVector &unitMomentum, const G4double h, const G4bool useCurvilinearWorld, const G4double FCof, const G4double tilt=0) |
BDSStep | GlobalToCurvilinear (const G4ThreeVector &position, const G4ThreeVector &unitMomentum, const G4double h, const G4bool useCurvilinearWorld) |
BDSStep | CurvilinearToGlobal (const G4ThreeVector &localPosition, const G4ThreeVector &localMomentum, const G4bool useCurvilinearWorld) |
BDSStep | CurvilinearToGlobal (const G4double fieldArcLength, const G4ThreeVector &unitField, const G4double angle, const G4ThreeVector &CLPosition, const G4ThreeVector &CLMomentum, const G4bool useCurvilinearWorld, const G4double FCof, const G4double tilt=0) |
Private Member Functions | |
BDSIntegratorDipoleFringeScaling ()=delete | |
Private default constructor to enforce use of supplied constructor. | |
Private Attributes | |
const G4double | bRho |
Nominal magnetic rigidity. | |
Additional Inherited Members | |
![]() | |
static void | AttachWorldVolumeToNavigator (G4VPhysicalVolume *worldPVIn) |
Setup the navigator w.r.t. to a world volume - typically real world. | |
static void | AttachWorldVolumeToNavigatorCL (G4VPhysicalVolume *curvilinearWorldPVIn) |
static void | RegisterCurvilinearBridgeWorld (G4VPhysicalVolume *curvilinearBridgeWorldPVIn) |
static void | ResetNavigatorStates () |
![]() | |
void | FudgeDistChordToZero () |
![]() | |
G4double | polefaceAngle |
Poleface rotation angle. | |
G4double | fringeCorr |
Fringe field correction term. | |
G4double | secondFringeCorr |
Second fringe field correction term. | |
G4double | polefaceCurvature |
Poleface curvature. | |
G4double | rho |
Nominal magnet bending radius. | |
G4ThreeVector | unitField |
Cache of the unit field direction. | |
const G4double | fieldArcLength |
Cache of the field arc length. | |
const G4double | fieldAngle |
Cache of the field angle. | |
const G4double | tilt |
const G4bool | finiteTilt |
G4double | bx |
G4double | by |
G4bool | zeroStrength |
BDSIntegratorMultipoleThin * | multipoleIntegrator |
G4bool | isEntrance |
store if fringe is entrance or exit | |
G4double | backupStepperMomLimit |
![]() | |
G4Mag_EqRhs * | eqOfM |
Cache of equation of motion. This class does not own it. | |
![]() | |
G4AffineTransform | globalToLocal |
G4AffineTransform | localToGlobal |
G4AffineTransform | globalToLocalCL |
G4AffineTransform | localToGlobalCL |
G4bool | bridgeVolumeWasUsed |
![]() | |
static G4double | thinElementLength = -1 |
![]() | |
static G4Navigator * | auxNavigator = new G4Navigator() |
static G4Navigator * | auxNavigatorCL = new G4Navigator() |
static G4Navigator * | auxNavigatorCLB = new G4Navigator() |
Derived fringe field integrator that does normalise to momentum.
Definition at line 35 of file BDSIntegratorDipoleFringeScaling.hh.
BDSIntegratorDipoleFringeScaling::BDSIntegratorDipoleFringeScaling | ( | BDSMagnetStrength const * | strength, |
G4double | brhoIn, | ||
G4Mag_EqRhs * | eqOfMIn, | ||
G4double | minimumRadiusOfCurvature, | ||
const G4double & | tiltIn = 0 |
||
) |
Definition at line 24 of file BDSIntegratorDipoleFringeScaling.cc.
|
inlinevirtual |
Definition at line 44 of file BDSIntegratorDipoleFringeScaling.hh.
|
virtual |
The stepper for integration. Calculates momentum scaling factor then calls base class stepper.
Definition at line 33 of file BDSIntegratorDipoleFringeScaling.cc.
References BDSIntegratorDipoleFringe::BaseStepper(), bRho, and BDSIntegratorDipoleRodrigues2::eqOfM.
|
private |
Nominal magnetic rigidity.
Definition at line 59 of file BDSIntegratorDipoleFringeScaling.hh.
Referenced by Stepper().