19#ifndef BDSINTEGRATORDIPOLERODRIGUES_H
20#define BDSINTEGRATORDIPOLERODRIGUES_H
22#include "BDSIntegratorMag.hh"
25#include "G4ThreeVector.hh"
48 G4Mag_EqRhs* eqOfMIn);
54 virtual void Stepper(
const G4double yIn[],
55 const G4double dydx[],
63 const G4double dydx[],
83 std::pair<G4ThreeVector,G4ThreeVector> UpdatePandR(G4double rho,
85 G4ThreeVector localPos,
86 G4ThreeVector localMomUnit);
Stepper that calculates trajectory through uniform magnetic field.
void AdvanceHelix(const G4double yIn[], const G4double dydx[], G4double h, G4double yOut[], G4double yErr[])
Calculate the new particle coordinates.
const G4double angle
Angle that the dipole induces in the reference trajectory.
virtual void Stepper(const G4double yIn[], const G4double dydx[], const G4double h, G4double yOut[], G4double yErr[])
const G4double minimumRadiusOfCurvature
Minimum tolerable radius of curvature - used to prevent spiraling particles.
G4double bField
Uniform magnetic field in global Y direction.
G4double cOverGeV
Scaling factor in brho calculation.
BDSMagnetStrength const * strength
Magnet strength object needed by curvilinear transforms.
G4ThreeVector yInitial
Data stored in order to find the chord.
const G4double length
Arc length of the magnetic field.
Common functionality to BDSIM integrators.
Efficient storage of magnet strengths.