Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4TMagFieldEquation< T_Field > Class Template Reference

G4TMagFieldEquation is a templated version of G4MagFieldEquation. More...

#include <G4TMagFieldEquation.hh>

Inheritance diagram for G4TMagFieldEquation< T_Field >:

Public Member Functions

 G4TMagFieldEquation (T_Field *f)
virtual ~G4TMagFieldEquation ()=default
void GetFieldValue (const G4double Point[4], G4double Field[]) const
void TEvaluateRhsGivenB (const G4double y[], const G4double B[3], G4double dydx[]) const
 __attribute__ ((always_inline)) void RightHandSide(const G4double y[]
 GetFieldValue (PositionAndTime, Field)
 TEvaluateRhsGivenB (y, Field, dydx)
Public Member Functions inherited from G4Mag_UsualEqRhs
 G4Mag_UsualEqRhs (G4MagneticField *MagField)
 ~G4Mag_UsualEqRhs () override=default
void EvaluateRhsGivenB (const G4double y[], const G4double B[3], G4double dydx[]) const override
void SetChargeMomentumMass (G4ChargeState particleCharge, G4double MomentumXc, G4double mass) override
G4EquationType GetEquationType () const override
Public Member Functions inherited from G4Mag_EqRhs
 G4Mag_EqRhs (G4MagneticField *magField)
 ~G4Mag_EqRhs () override=default
G4double FCof () const
Public Member Functions inherited from G4EquationOfMotion
 G4EquationOfMotion (G4Field *Field)
virtual ~G4EquationOfMotion ()=default
void RightHandSide (const G4double y[], G4double dydx[]) const
void EvaluateRhsReturnB (const G4double y[], G4double dydx[], G4double Field[]) const
void GetFieldValue (const G4double Point[4], G4double Field[]) const
const G4FieldGetFieldObj () const
G4FieldGetFieldObj ()
void SetFieldObj (G4Field *pField)

Public Attributes

G4double dydx []
G4double PositionAndTime [4]
 PositionAndTime [0] = y[0]

Detailed Description

template<class T_Field>
class G4TMagFieldEquation< T_Field >

G4TMagFieldEquation is a templated version of G4MagFieldEquation.

Definition at line 50 of file G4TMagFieldEquation.hh.

Constructor & Destructor Documentation

◆ G4TMagFieldEquation()

template<class T_Field>
G4TMagFieldEquation< T_Field >::G4TMagFieldEquation ( T_Field * f)
inline

Definition at line 54 of file G4TMagFieldEquation.hh.

55 {
56 itsField = f;
57 }
G4Mag_UsualEqRhs(G4MagneticField *MagField)
G4TMagFieldEquation is a templated version of G4MagFieldEquation.

◆ ~G4TMagFieldEquation()

template<class T_Field>
virtual G4TMagFieldEquation< T_Field >::~G4TMagFieldEquation ( )
virtualdefault

Member Function Documentation

◆ __attribute__()

template<class T_Field>
G4TMagFieldEquation< T_Field >::__attribute__ ( (always_inline) ) const

◆ GetFieldValue() [1/2]

template<class T_Field>
void G4TMagFieldEquation< T_Field >::GetFieldValue ( const G4double Point[4],
G4double Field[] ) const
inline

Definition at line 61 of file G4TMagFieldEquation.hh.

63 {
64 itsField->T_Field::GetFieldValue(Point, Field);
65 }

◆ GetFieldValue() [2/2]

template<class T_Field>
G4TMagFieldEquation< T_Field >::GetFieldValue ( PositionAndTime ,
Field  )

◆ TEvaluateRhsGivenB() [1/2]

template<class T_Field>
void G4TMagFieldEquation< T_Field >::TEvaluateRhsGivenB ( const G4double y[],
const G4double B[3],
G4double dydx[] ) const
inline

Definition at line 67 of file G4TMagFieldEquation.hh.

70 {
71 G4double momentum_mag_square = y[3]*y[3] + y[4]*y[4] + y[5]*y[5];
74
75 dydx[0] = y[3]*inv_momentum_magnitude; // (d/ds)x = Vx/V
76 dydx[1] = y[4]*inv_momentum_magnitude; // (d/ds)y = Vy/V
77 dydx[2] = y[5]*inv_momentum_magnitude; // (d/ds)z = Vz/V
78
79 dydx[3] = cof*(y[4]*B[2] - y[5]*B[1]) ; // Ax = a*(Vy*Bz - Vz*By)
80 dydx[4] = cof*(y[5]*B[0] - y[3]*B[2]) ; // Ay = a*(Vz*Bx - Vx*Bz)
81 dydx[5] = cof*(y[3]*B[1] - y[4]*B[0]) ; // Az = a*(Vx*By - Vy*Bx)
82
83 return ;
84 }
G4double FCof() const

◆ TEvaluateRhsGivenB() [2/2]

template<class T_Field>
G4TMagFieldEquation< T_Field >::TEvaluateRhsGivenB ( y ,
Field ,
dydx  )

Member Data Documentation

◆ dydx

template<class T_Field>
G4double G4TMagFieldEquation< T_Field >::dydx[]
Initial value:
{
G4double Field[G4maximum_number_of_field_components]
double G4double
Definition G4Types.hh:83

Definition at line 87 of file G4TMagFieldEquation.hh.

Referenced by TEvaluateRhsGivenB(), and TEvaluateRhsGivenB().

◆ PositionAndTime [1/2]

template<class T_Field>
G4TMagFieldEquation< T_Field >::PositionAndTime[3] = y[0]

Definition at line 92 of file G4TMagFieldEquation.hh.

◆ PositionAndTime [2/2]

template<class T_Field>
G4double G4TMagFieldEquation< T_Field >::PositionAndTime[4]

Definition at line 91 of file G4TMagFieldEquation.hh.

Referenced by GetFieldValue().


The documentation for this class was generated from the following file: