Geant4  10.02.p03
G4QuadrupoleMagField Class Reference

#include <G4QuadrupoleMagField.hh>

Inheritance diagram for G4QuadrupoleMagField:
Collaboration diagram for G4QuadrupoleMagField:

Public Member Functions

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

Private Attributes

G4double fGradient
 
G4ThreeVector fOrigin
 
G4RotationMatrixfpMatrix
 

Detailed Description

Definition at line 54 of file G4QuadrupoleMagField.hh.

Constructor & Destructor Documentation

◆ G4QuadrupoleMagField() [1/2]

G4QuadrupoleMagField::G4QuadrupoleMagField ( G4double  pGradient)

Definition at line 36 of file G4QuadrupoleMagField.cc.

37 {
38  fGradient = pGradient ;
39  fOrigin = G4ThreeVector( 0.0, 0.0, 0.0) ;
41 }
G4RotationMatrix * fpMatrix
CLHEP::Hep3Vector G4ThreeVector
static G4RotationMatrix IdentityMatrix
Here is the caller graph for this function:

◆ G4QuadrupoleMagField() [2/2]

G4QuadrupoleMagField::G4QuadrupoleMagField ( G4double  pGradient,
G4ThreeVector  pOrigin,
G4RotationMatrix pMatrix 
)

Definition at line 46 of file G4QuadrupoleMagField.cc.

49 {
50  fGradient = pGradient ;
51  fOrigin = pOrigin ;
52  fpMatrix = pMatrix ;
53 }
G4RotationMatrix * fpMatrix

◆ ~G4QuadrupoleMagField()

G4QuadrupoleMagField::~G4QuadrupoleMagField ( )

Definition at line 62 of file G4QuadrupoleMagField.cc.

63 {
64 }

Member Function Documentation

◆ Clone()

G4Field * G4QuadrupoleMagField::Clone ( ) const
virtual

Reimplemented from G4Field.

Definition at line 55 of file G4QuadrupoleMagField.cc.

56 {
58 }
G4RotationMatrix * fpMatrix
G4QuadrupoleMagField(G4double pGradient)
Here is the call graph for this function:

◆ GetFieldValue()

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

Definition at line 70 of file G4QuadrupoleMagField.cc.

72 {
73  G4ThreeVector r_global = G4ThreeVector(
74  y[0] - fOrigin.x(),
75  y[1] - fOrigin.y(),
76  y[2] - fOrigin.z());
77 
78  G4ThreeVector r_local = G4ThreeVector(
79  fpMatrix->colX() * r_global,
80  fpMatrix->colY() * r_global,
81  fpMatrix->colZ() * r_global);
82 
83  G4ThreeVector B_local = G4ThreeVector(
84  fGradient * r_local.y(),
85  fGradient * r_local.x(),
86  0);
87 
88  G4ThreeVector B_global = G4ThreeVector(
89  fpMatrix->inverse().rowX() * B_local,
90  fpMatrix->inverse().rowY() * B_local,
91  fpMatrix->inverse().rowZ() * B_local);
92 
93  B[0] = B_global.x() ;
94  B[1] = B_global.y() ;
95  B[2] = B_global.z() ;
96 }
Hep3Vector rowY() const
G4RotationMatrix * fpMatrix
CLHEP::Hep3Vector G4ThreeVector
Hep3Vector rowX() const
Hep3Vector rowZ() const
Hep3Vector colZ() const
Double_t y
Hep3Vector colY() const
double x() const
double y() const
Hep3Vector colX() const
double z() const
HepRotation inverse() const
Here is the call graph for this function:

Member Data Documentation

◆ fGradient

G4double G4QuadrupoleMagField::fGradient
private

Definition at line 70 of file G4QuadrupoleMagField.hh.

◆ fOrigin

G4ThreeVector G4QuadrupoleMagField::fOrigin
private

Definition at line 71 of file G4QuadrupoleMagField.hh.

◆ fpMatrix

G4RotationMatrix* G4QuadrupoleMagField::fpMatrix
private

Definition at line 72 of file G4QuadrupoleMagField.hh.


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