43 lines
894 B
C++
43 lines
894 B
C++
#ifndef G4EL_MAGEQRHS
|
|
#define G4EL_MAGEQRHS
|
|
|
|
#include "G4Types.hh"
|
|
#include "G4Mag_EqRhs.hh"
|
|
#include "G4El_UsualEqRhs.hh"
|
|
#include "G4ios.hh"
|
|
#include "G4EquationOfMotion.hh"
|
|
|
|
|
|
class G4MagneticField;
|
|
class G4ElectricField;
|
|
class G4Mag_EqRhs;
|
|
class G4El_UsualEqRhs;
|
|
|
|
class G4El_MagEqRhs : public G4EquationOfMotion
|
|
{
|
|
public: // with description
|
|
|
|
G4El_MagEqRhs( G4Mag_EqRhs* , G4El_EqRhs*,G4Field* field );
|
|
~G4El_MagEqRhs();
|
|
// Constructor and destructor. No actions.
|
|
|
|
void RightHandSide( const G4double y[], G4double dydx[] ) const;
|
|
|
|
virtual void SetChargeMomentumMass( G4double particleCharge, // in e+ units
|
|
G4double MomentumXc,
|
|
G4double mass);
|
|
|
|
void EvaluateRhsGivenB( const G4double y[],
|
|
const G4double E[3],
|
|
G4double dydx[] ) const;
|
|
|
|
private:
|
|
|
|
G4Mag_EqRhs *fMagEq;
|
|
G4El_EqRhs *fElEq;
|
|
|
|
|
|
};
|
|
|
|
#endif /* G4EL_MAGEQRHS */
|