19#ifndef BDSINTEGRATORDIPOLEQUADRUPOLE_H
20#define BDSINTEGRATORDIPOLEQUADRUPOLE_H
22#include "BDSIntegratorMag.hh"
23#include "BDSMagUsualEqRhs.hh"
45 G4double minimumRadiusOfCurvatureIn,
47 const G4double& tiltIn);
59 virtual void Stepper(
const G4double y[6],
60 const G4double dydx[6],
70 void OneStep(
const G4ThreeVector& posIn,
71 const G4ThreeVector& momIn,
72 const G4ThreeVector& momUIn,
75 G4ThreeVector& posOut,
76 G4ThreeVector& momOut,
79 const G4double deltaEnergy)
const;
Integrator for combined dipole and quadrupolar field.
G4double nominalRho
Cached magnet property, nominal bending radius.
BDSIntegratorDipoleQuadrupole(BDSIntegratorDipoleQuadrupole &)=delete
Assignment and copy constructor not implemented nor used.
G4double fieldRatio
Ratio of supplied field to nominal field. Needed for over/underpowered magnets.
virtual void Stepper(const G4double y[6], const G4double dydx[6], const G4double h, G4double yOut[6], G4double yErr[6])
const G4double fieldArcLength
Cache of the field arc length.
BDSIntegratorDipoleQuadrupole()=delete
Private default constructor to enforce use of supplied constructor.
void OneStep(const G4ThreeVector &posIn, const G4ThreeVector &momIn, const G4ThreeVector &momUIn, const G4double &h, const G4double &fcof, G4ThreeVector &posOut, G4ThreeVector &momOut, const G4double rho, const G4double beta, const G4double deltaEnergy) const
const G4double nominalField
Cached magnet property, nominal field strength.
BDSIntegratorDipoleQuadrupole & operator=(const BDSIntegratorDipoleQuadrupole &)=delete
Assignment and copy constructor not implemented nor used.
const G4double nominalCharge
Nominal beam charge.
const G4double bPrime
Cached magnet property, B field gradient for calculating K1.
const G4double nominalAngle
Cache of the field angle.
G4double angleForCL
Angle used for curvilinear transforms.
G4ThreeVector unitField
Cache of the unit field direction.
G4double tilt
Tilt offset transform for field.
const G4double nominalMass
Primary particle mass. Needed for recalculating nominal energy with scaling.
const G4double nominalBeta
Cached nominal relativistic beta of the nominal beam particle.
const G4double scaling
Cache field scaling factor.
G4bool isScaled
Cache if field is scaled.
BDSMagUsualEqRhs * eq
BDSIM's eqRhs class to give access to particle properties.
const G4double nominalBRho
Cached magnet property, nominal magnetic rigidity.
const G4double nominalEnergy
Nominal beam energy.
BDSIntegratorDipoleRodrigues2 * dipole
Backup integrator.
Exact helix through pure dipole field.
Common functionality to BDSIM integrators.
Override G4Mag_UsualEqRhs, provides BDSIM integrators access to particle attributes.
Efficient storage of magnet strengths.
Wrapper for particle definition.
A simple class to represent the positions of a step.