|
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[]) |
Public Member Functions inherited from BDSIntegratorDipoleFringe | |
| 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. | |
Public Member Functions inherited from BDSIntegratorDipoleRodrigues2 | |
| 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. | |
Public Member Functions inherited from BDSIntegratorDrift | |
| 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 |
Public Member Functions inherited from BDSAuxiliaryNavigator | |
| 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 Public Member Functions inherited from BDSAuxiliaryNavigator | |
| 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 () |
Protected Member Functions inherited from BDSIntegratorDipoleRodrigues2 | |
| void | FudgeDistChordToZero () |
Protected Attributes inherited from BDSIntegratorDipoleFringe | |
| 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 |
Protected Attributes inherited from BDSIntegratorDipoleRodrigues2 | |
| G4Mag_EqRhs * | eqOfM |
| Cache of equation of motion. This class does not own it. | |
Protected Attributes inherited from BDSAuxiliaryNavigator | |
| G4AffineTransform | globalToLocal |
| G4AffineTransform | localToGlobal |
| G4AffineTransform | globalToLocalCL |
| G4AffineTransform | localToGlobalCL |
| G4bool | bridgeVolumeWasUsed |
Static Protected Attributes inherited from BDSIntegratorDipoleFringe | |
| static G4double | thinElementLength = -1 |
Static Protected Attributes inherited from BDSAuxiliaryNavigator | |
| 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().