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

#include <G4UniformElectricField.hh>

Inheritance diagram for G4UniformElectricField:
G4ElectricField G4ElectroMagneticField G4Field

Public Member Functions

virtual G4FieldClone () const
 
G4bool DoesFieldChangeEnergy () const
 
 G4UniformElectricField (const G4ThreeVector &FieldVector)
 
 G4UniformElectricField (const G4UniformElectricField &p)
 
 G4UniformElectricField (G4double vField, G4double vTheta, G4double vPhi)
 
virtual void GetFieldValue (const G4double pos[4], G4double *field) const
 
G4bool IsGravityActive () const
 
G4UniformElectricFieldoperator= (const G4UniformElectricField &p)
 
void SetGravityActive (G4bool OnOffFlag)
 
virtual ~G4UniformElectricField ()
 

Static Public Attributes

static constexpr G4int MAX_NUMBER_OF_COMPONENTS = 24
 

Private Attributes

G4double fFieldComponents [6]
 
G4bool fGravityActive = false
 

Detailed Description

Definition at line 41 of file G4UniformElectricField.hh.

Constructor & Destructor Documentation

◆ G4UniformElectricField() [1/3]

G4UniformElectricField::G4UniformElectricField ( const G4ThreeVector FieldVector)

Definition at line 34 of file G4UniformElectricField.cc.

36{
37 fFieldComponents[0] = 0.0;
38 fFieldComponents[1] = 0.0;
39 fFieldComponents[2] = 0.0;
40 fFieldComponents[3] = FieldVector.x();
41 fFieldComponents[4] = FieldVector.y();
42 fFieldComponents[5] = FieldVector.z();
43}
double z() const
double x() const
double y() const

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

Referenced by Clone().

◆ G4UniformElectricField() [2/3]

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

Definition at line 45 of file G4UniformElectricField.cc.

48{
49 if ( (vField<0) || (vTheta<0) || (vTheta>pi) || (vPhi<0) || (vPhi>twopi) )
50 {
51 G4Exception("G4UniformElectricField::G4UniformElectricField()",
52 "GeomField0002", FatalException, "Invalid parameters.");
53 }
54
55 fFieldComponents[0] = 0.0;
56 fFieldComponents[1] = 0.0;
57 fFieldComponents[2] = 0.0;
58 fFieldComponents[3] = vField*std::sin(vTheta)*std::cos(vPhi) ;
59 fFieldComponents[4] = vField*std::sin(vTheta)*std::sin(vPhi) ;
60 fFieldComponents[5] = vField*std::cos(vTheta) ;
61}
@ 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.

◆ ~G4UniformElectricField()

G4UniformElectricField::~G4UniformElectricField ( )
virtual

Definition at line 63 of file G4UniformElectricField.cc.

64{
65}

◆ G4UniformElectricField() [3/3]

G4UniformElectricField::G4UniformElectricField ( const G4UniformElectricField p)

Definition at line 67 of file G4UniformElectricField.cc.

70{
71 for (auto i=0; i<6; ++i)
72 {
74 }
75}

References fFieldComponents.

Member Function Documentation

◆ Clone()

G4Field * G4UniformElectricField::Clone ( ) const
virtual

Reimplemented from G4Field.

Definition at line 89 of file G4UniformElectricField.cc.

90{
94}
CLHEP::Hep3Vector G4ThreeVector
G4UniformElectricField(const G4ThreeVector &FieldVector)

References fFieldComponents, and G4UniformElectricField().

◆ DoesFieldChangeEnergy()

G4bool G4ElectricField::DoesFieldChangeEnergy ( ) const
inlinevirtualinherited

Implements G4ElectroMagneticField.

Definition at line 52 of file G4ElectricField.hh.

52{ return true; }

◆ GetFieldValue()

void G4UniformElectricField::GetFieldValue ( const G4double  pos[4],
G4double field 
) const
virtual

Implements G4ElectricField.

Definition at line 98 of file G4UniformElectricField.cc.

100{
101 fieldBandE[0] = 0.0;
102 fieldBandE[1] = 0.0;
103 fieldBandE[2] = 0.0;
104 fieldBandE[3] = fFieldComponents[3];
105 fieldBandE[4] = fFieldComponents[4];
106 fieldBandE[5] = fFieldComponents[5];
107}

References 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=()

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

Definition at line 78 of file G4UniformElectricField.cc.

79{
80 if (&p == this) return *this;
82 for (auto i=0; i<6; ++i)
83 {
85 }
86 return *this;
87}
G4ElectricField & operator=(const G4ElectricField &p)

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

◆ 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 G4UniformElectricField::fFieldComponents[6]
private

Definition at line 64 of file G4UniformElectricField.hh.

Referenced by Clone(), G4UniformElectricField(), GetFieldValue(), and operator=().

◆ 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: