|
BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
|
Integrator for thin h or v kick. More...
#include <BDSIntegratorKickerThin.hh>


Public Member Functions | |
| BDSIntegratorKickerThin (BDSMagnetStrength const *strength, G4double brhoIn, G4Mag_EqRhs *eqOfMIn, G4double minimumRadiusOfCurvatureIn) | |
| virtual void | Stepper (const G4double yIn[], const G4double dydx[], const G4double h, G4double yOut[], G4double yErr[]) |
| The stepper for integration. | |
| virtual void | OneStep (const G4ThreeVector &localPos, const G4ThreeVector &localMomUnit, const G4ThreeVector &localMom, const G4double &h, const G4double &fcof, G4ThreeVector &localPosOut, G4ThreeVector &localMomOut) const |
| BDSIntegratorKickerThin & | operator= (const BDSIntegratorKickerThin &)=delete |
| Assignment and copy constructor not implemented nor used. | |
| BDSIntegratorKickerThin (BDSIntegratorKickerThin &)=delete | |
| Assignment and copy constructor not implemented nor used. | |
Public Member Functions inherited from BDSIntegratorMag | |
| BDSIntegratorMag (G4Mag_EqRhs *eqOfMIn, G4int nVariablesIn) | |
| virtual G4double | DistChord () const |
| Estimate maximum distance of curved solution and chord. | |
| virtual G4int | IntegratorOrder () const |
| Geant4 requires that the integrator order must be supplied by the derived class. | |
| BDSIntegratorMag & | operator= (const BDSIntegratorMag &)=delete |
| Assignment and copy constructor not implemented nor used. | |
| BDSIntegratorMag (BDSIntegratorMag &)=delete | |
| Assignment and copy constructor not implemented nor used. | |
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) |
Data Fields | |
| BDSIntegratorDipoleFringe * | fringeIntEntr |
| Separate fringe field integrators for entrance and exit fringes. | |
| BDSIntegratorDipoleFringe * | fringeIntExit |
Private Member Functions | |
| BDSIntegratorKickerThin ()=delete | |
| Private default constructor to enforce use of supplied constructor. | |
Private Attributes | |
| G4bool | hasEntranceFringe |
| Cache if the fringe or pole face effects are to be applied. | |
| G4bool | hasExitFringe |
| const G4double | hkick |
| Cache of variable. | |
| const G4double | vkick |
| Cache of variable. | |
| const G4double | brho |
| Cache of variable. | |
| G4double | rho |
| Cache of variable. | |
| G4double | tiltAngle |
| Cache of variable. | |
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 () |
Static Public Attributes inherited from BDSIntegratorMag | |
| static G4double | thinElementLength = -1 |
| static G4double | nominalMatrixRelativeMomCut = -1 |
| static G4bool | currentTrackIsPrimary = false |
Protected Member Functions inherited from BDSIntegratorMag | |
| void | ConvertToGlobal (const G4ThreeVector &localPos, const G4ThreeVector &localMom, G4double yOut[], G4double yErr[], const G4double momScaling=1.0) |
| scaling of momentum in case localMom is a unit vector | |
| void | SetDistChord (G4double distChordIn) |
| Setter for distChord to private member. | |
Protected Attributes inherited from BDSIntegratorMag | |
| G4Mag_EqRhs * | eqOfM |
| const G4int | nVariables |
| Cache of the number of variables. | |
| G4MagIntegratorStepper * | backupStepper |
| G4bool | zeroStrength |
| G4double | backupStepperMomLimit |
Protected Attributes inherited from BDSAuxiliaryNavigator | |
| G4AffineTransform | globalToLocal |
| G4AffineTransform | localToGlobal |
| G4AffineTransform | globalToLocalCL |
| G4AffineTransform | localToGlobalCL |
| G4bool | bridgeVolumeWasUsed |
Static Protected Attributes inherited from BDSAuxiliaryNavigator | |
| static G4Navigator * | auxNavigator = new G4Navigator() |
| static G4Navigator * | auxNavigatorCL = new G4Navigator() |
| static G4Navigator * | auxNavigatorCLB = new G4Navigator() |
Integrator for thin h or v kick.
This adds a fraction of the total momentum to the horizontal or vertical (in curvilinear coordinates) as defined by hkick and vkick respectively. The delta is subtracted from the z component to conserve momentum.
Definition at line 41 of file BDSIntegratorKickerThin.hh.
| BDSIntegratorKickerThin::BDSIntegratorKickerThin | ( | BDSMagnetStrength const * | strength, |
| G4double | brhoIn, | ||
| G4Mag_EqRhs * | eqOfMIn, | ||
| G4double | minimumRadiusOfCurvatureIn | ||
| ) |
Definition at line 30 of file BDSIntegratorKickerThin.cc.
|
inlinevirtual |
Definition at line 49 of file BDSIntegratorKickerThin.hh.
|
virtual |
Definition at line 186 of file BDSIntegratorKickerThin.cc.
|
virtual |
The stepper for integration.
Definition at line 91 of file BDSIntegratorKickerThin.cc.
References BDSIntegratorDrift::AdvanceDriftMag(), BDSIntegratorMag::backupStepperMomLimit, BDSIntegratorMag::ConvertToGlobal(), BDSAuxiliaryNavigator::ConvertToLocal(), BDSIntegratorMag::eqOfM, fringeIntEntr, hasEntranceFringe, BDS::IsFinite(), BDS::IsFiniteStrength(), BDSIntegratorDipoleFringe::OneStep(), BDSStep::PostStepPoint(), BDSStep::PreStepPoint(), rho, BDSIntegratorMag::SetDistChord(), BDSIntegratorMag::thinElementLength, tiltAngle, and BDSIntegratorMag::zeroStrength.

|
private |
Cache of variable.
Definition at line 81 of file BDSIntegratorKickerThin.hh.
| BDSIntegratorDipoleFringe* BDSIntegratorKickerThin::fringeIntEntr |
Separate fringe field integrators for entrance and exit fringes.
Definition at line 71 of file BDSIntegratorKickerThin.hh.
Referenced by Stepper().
| BDSIntegratorDipoleFringe* BDSIntegratorKickerThin::fringeIntExit |
Definition at line 72 of file BDSIntegratorKickerThin.hh.
|
private |
Cache if the fringe or pole face effects are to be applied.
Definition at line 87 of file BDSIntegratorKickerThin.hh.
Referenced by Stepper().
|
private |
Definition at line 88 of file BDSIntegratorKickerThin.hh.
|
private |
Cache of variable.
Definition at line 79 of file BDSIntegratorKickerThin.hh.
|
private |
Cache of variable.
Definition at line 82 of file BDSIntegratorKickerThin.hh.
Referenced by Stepper().
|
private |
Cache of variable.
Definition at line 83 of file BDSIntegratorKickerThin.hh.
Referenced by Stepper().
|
private |
Cache of variable.
Definition at line 80 of file BDSIntegratorKickerThin.hh.