Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4QuadrupoleMagField Class Reference

G4QuadrupoleMagField allows for the creation of quadrupole magnetic field, given the gradient value for quadrupole magnetic lense. More...

#include <G4QuadrupoleMagField.hh>

Inheritance diagram for G4QuadrupoleMagField:

Public Member Functions

 G4QuadrupoleMagField (G4double pGradient)
 G4QuadrupoleMagField (G4double pGradient, const G4ThreeVector &pOrigin, G4RotationMatrix *pMatrix)
 ~G4QuadrupoleMagField () override=default
void GetFieldValue (const G4double yTrack[], G4double B[]) const override
G4FieldClone () const override
Public Member Functions inherited from G4MagneticField
 G4MagneticField ()
 ~G4MagneticField () override=default
 G4MagneticField (const G4MagneticField &r)
G4MagneticFieldoperator= (const G4MagneticField &p)
G4bool DoesFieldChangeEnergy () const override
void GetFieldValue (const G4double Point[4], G4double *Bfield) const override=0
G4FieldType GetFieldType () const override
Public Member Functions inherited from G4Field
 G4Field (G4bool gravityOn=false)
virtual ~G4Field ()=default
 G4Field (const G4Field &p)=default
G4Fieldoperator= (const G4Field &p)
G4bool IsGravityActive () const
void SetGravityActive (G4bool OnOffFlag)

Additional Inherited Members

Static Public Attributes inherited from G4Field
static constexpr G4int MAX_NUMBER_OF_COMPONENTS = 24

Detailed Description

G4QuadrupoleMagField allows for the creation of quadrupole magnetic field, given the gradient value for quadrupole magnetic lense.

Definition at line 52 of file G4QuadrupoleMagField.hh.

Constructor & Destructor Documentation

◆ G4QuadrupoleMagField() [1/2]

G4QuadrupoleMagField::G4QuadrupoleMagField ( G4double pGradient)

Constructor for G4QuadrupoleMagField.

Parameters
[in]pGradientField gradient value.

Definition at line 39 of file G4QuadrupoleMagField.cc.

40{
41 fGradient = pGradient;
42 fpMatrix = &IdentityMatrix;
43}

Referenced by Clone().

◆ G4QuadrupoleMagField() [2/2]

G4QuadrupoleMagField::G4QuadrupoleMagField ( G4double pGradient,
const G4ThreeVector & pOrigin,
G4RotationMatrix * pMatrix )

Constructor for G4QuadrupoleMagField.

Parameters
[in]pGradientField gradient value.
[in]pOriginOrigin position.
[in]pMatrixRotation matrix.

Definition at line 47 of file G4QuadrupoleMagField.cc.

50{
51 fGradient = pGradient ;
52 fOrigin = pOrigin ;
53 fpMatrix = pMatrix ;
54}

◆ ~G4QuadrupoleMagField()

G4QuadrupoleMagField::~G4QuadrupoleMagField ( )
overridedefault

Default Destructor.

Member Function Documentation

◆ Clone()

G4Field * G4QuadrupoleMagField::Clone ( ) const
overridevirtual

Returns a pointer to a new allocated clone of this object.

Reimplemented from G4Field.

Definition at line 58 of file G4QuadrupoleMagField.cc.

59{
60 return new G4QuadrupoleMagField(fGradient, fOrigin, fpMatrix);
61}
G4QuadrupoleMagField(G4double pGradient)

◆ GetFieldValue()

void G4QuadrupoleMagField::GetFieldValue ( const G4double yTrack[],
G4double B[] ) const
override

Returns the field value on the given position 'yTrack'.

Parameters
[in]yTrackTime position array.
[out]BThe returned field array.

Definition at line 65 of file G4QuadrupoleMagField.cc.

67{
68 // with displaced origin and rotation
69
70 G4ThreeVector r_global = G4ThreeVector(y[0] - fOrigin.x(),
71 y[1] - fOrigin.y(),
72 y[2] - fOrigin.z());
73
74 const G4ThreeVector r_local = (*fpMatrix) * r_global;
75 const G4ThreeVector B_local( fGradient * r_local.y(),
76 fGradient * r_local.x(), 0);
77 const G4ThreeVector B_global = fpMatrix->inverse() * B_local;
78
79 B[0] = B_global.x();
80 B[1] = B_global.y();
81 B[2] = B_global.z();
82}
G4double B(G4double temperature)
CLHEP::Hep3Vector G4ThreeVector
double z() const
double x() const
double y() const

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