Geant4-11
Public Member Functions | Static Public Attributes | Private Attributes
G4UniformMagField Class Reference

#include <G4UniformMagField.hh>

Inheritance diagram for G4UniformMagField:
G4MagneticField G4Field

Public Member Functions

virtual G4FieldClone () const override
 
G4bool DoesFieldChangeEnergy () const
 
 G4UniformMagField (const G4ThreeVector &FieldVector)
 
 G4UniformMagField (const G4UniformMagField &p)
 
 G4UniformMagField (G4double vField, G4double vTheta, G4double vPhi)
 
G4ThreeVector GetConstantFieldValue () const
 
virtual void GetFieldValue (const G4double yTrack[4], G4double *MagField) const override final
 
G4bool IsGravityActive () const
 
G4UniformMagFieldoperator= (const G4UniformMagField &p)
 
void SetFieldValue (const G4ThreeVector &newFieldValue)
 
void SetGravityActive (G4bool OnOffFlag)
 
virtual ~G4UniformMagField () override
 

Static Public Attributes

static constexpr G4int MAX_NUMBER_OF_COMPONENTS = 24
 

Private Attributes

G4double fFieldComponents [3]
 
G4bool fGravityActive = false
 

Detailed Description

Definition at line 41 of file G4UniformMagField.hh.

Constructor & Destructor Documentation

◆ G4UniformMagField() [1/3]

G4UniformMagField::G4UniformMagField ( const G4ThreeVector FieldVector)

Definition at line 34 of file G4UniformMagField.cc.

35{
36 fFieldComponents[0] = FieldVector.x();
37 fFieldComponents[1] = FieldVector.y();
38 fFieldComponents[2] = FieldVector.z();
39}
double z() const
double x() const
double y() const
G4double fFieldComponents[3]

References fFieldComponents, CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by Clone().

◆ G4UniformMagField() [2/3]

G4UniformMagField::G4UniformMagField ( G4double  vField,
G4double  vTheta,
G4double  vPhi 
)

Definition at line 80 of file G4UniformMagField.cc.

83{
84 if ( (vField<0) || (vTheta<0) || (vTheta>pi) || (vPhi<0) || (vPhi>twopi) )
85 {
86 std::ostringstream msg;
87 msg << "ERROR in G4UniformMagField::G4UniformMagField() : "
88 << "Invalid parameter(s). " << std::endl;
89 msg << " Expected " << std::endl;
90
91 msg << " - Magnitude vField: Value = " << vField
92 << " Expected vField > 0 " ;
93 if ( vField<0) { msg << " <------ Erroneous "; }
94 msg << std::endl;
95
96 msg << " - Theta angle: Value = " << vTheta
97 << " Expected between 0 <= theta <= pi = " << pi << " ";
98 if ( (vTheta<0) || (vTheta>pi) ) { msg << " <------ Erroneous "; }
99
100 msg << std::endl;
101 msg << " - Phi angle: Value = " << vPhi
102 << " Expected between 0 <= phi <= 2*pi = " << twopi << std::endl;
103 if ( (vPhi<0) || (vPhi>twopi) ) { msg << " <------ Erroneous "; }
104
105 G4Exception("G4UniformMagField::G4UniformMagField()",
106 "GeomField0002", FatalException, msg );
107 }
108 fFieldComponents[0] = vField*std::sin(vTheta)*std::cos(vPhi) ;
109 fFieldComponents[1] = vField*std::sin(vTheta)*std::sin(vPhi) ;
110 fFieldComponents[2] = vField*std::cos(vTheta) ;
111}
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
static constexpr double twopi
Definition: G4SIunits.hh:56
static constexpr double pi
Definition: G4SIunits.hh:55

References FatalException, fFieldComponents, G4Exception(), pi, and twopi.

◆ ~G4UniformMagField()

G4UniformMagField::~G4UniformMagField ( )
overridevirtual

Definition at line 41 of file G4UniformMagField.cc.

42{
43}

◆ G4UniformMagField() [3/3]

G4UniformMagField::G4UniformMagField ( const G4UniformMagField p)

Definition at line 45 of file G4UniformMagField.cc.

47{
48 for (auto i=0; i<3; ++i)
49 {
51 }
52}

References fFieldComponents.

Member Function Documentation

◆ Clone()

G4Field * G4UniformMagField::Clone ( ) const
overridevirtual

Reimplemented from G4Field.

Definition at line 65 of file G4UniformMagField.cc.

66{
69 fFieldComponents[2]) );
70}
CLHEP::Hep3Vector G4ThreeVector
G4UniformMagField(const G4ThreeVector &FieldVector)

References fFieldComponents, and G4UniformMagField().

◆ DoesFieldChangeEnergy()

G4bool G4MagneticField::DoesFieldChangeEnergy ( ) const
inlinevirtualinherited

Implements G4Field.

Definition at line 52 of file G4MagneticField.hh.

52{ return false; }

Referenced by export_G4MagneticField().

◆ GetConstantFieldValue()

G4ThreeVector G4UniformMagField::GetConstantFieldValue ( ) const

Definition at line 123 of file G4UniformMagField.cc.

124{
128 return B;
129}
G4double B(G4double temperature)

References B(), and fFieldComponents.

Referenced by export_G4UniformMagField(), and G4GlobalMagFieldMessenger::GetFieldValue().

◆ GetFieldValue()

void G4UniformMagField::GetFieldValue ( const G4double  yTrack[4],
G4double MagField 
) const
finaloverridevirtual

Implements G4MagneticField.

Definition at line 115 of file G4UniformMagField.cc.

117{
118 B[0]= fFieldComponents[0];
119 B[1]= fFieldComponents[1];
120 B[2]= fFieldComponents[2];
121}

References B(), and fFieldComponents.

◆ IsGravityActive()

G4bool G4Field::IsGravityActive ( ) const
inlineinherited

Definition at line 101 of file G4Field.hh.

102{
103 return fGravityActive;
104}
G4bool fGravityActive
Definition: G4Field.hh:96

References G4Field::fGravityActive.

Referenced by G4CoupledTransportation::AlongStepGetPhysicalInteractionLength(), and G4RepleteEofM::G4RepleteEofM().

◆ operator=()

G4UniformMagField & G4UniformMagField::operator= ( const G4UniformMagField p)

Definition at line 54 of file G4UniformMagField.cc.

55{
56 if (&p == this) return *this;
58 for (auto i=0; i<3; ++i)
59 {
61 }
62 return *this;
63}
G4MagneticField & operator=(const G4MagneticField &p)

References fFieldComponents, and G4MagneticField::operator=().

◆ SetFieldValue()

void G4UniformMagField::SetFieldValue ( const G4ThreeVector newFieldValue)

Definition at line 73 of file G4UniformMagField.cc.

74{
75 fFieldComponents[0] = newFieldVector.x();
76 fFieldComponents[1] = newFieldVector.y();
77 fFieldComponents[2] = newFieldVector.z();
78}

References fFieldComponents, CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by export_G4UniformMagField(), and G4GlobalMagFieldMessenger::SetField().

◆ SetGravityActive()

void G4Field::SetGravityActive ( G4bool  OnOffFlag)
inlineinherited

Definition at line 106 of file G4Field.hh.

107{
108 fGravityActive = OnOffFlag;
109}

References G4Field::fGravityActive.

Field Documentation

◆ fFieldComponents

G4double G4UniformMagField::fFieldComponents[3]
private

◆ fGravityActive

G4bool G4Field::fGravityActive = false
privateinherited

◆ MAX_NUMBER_OF_COMPONENTS

constexpr G4int G4Field::MAX_NUMBER_OF_COMPONENTS = 24
staticconstexprinherited

Definition at line 92 of file G4Field.hh.

Referenced by G4BFieldIntegrationDriver::CurvatureRadius().


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