CMS 3D CMS Logo

MonopoleEquation.h
Go to the documentation of this file.
1 //
2 // =======================================================================
3 //
4 // class G4MonopoleEquation
5 //
6 // Created: 30 April 2010, S. Burdin, B. Bozsogi
7 // G4MonopoleEquation class for
8 // Geant4 extended example "monopole"
9 //
10 // Adopted for CMSSW by V.Ivanchenko 30 April 2018
11 // from Geant4 global tag geant4-10-04-ref-03
12 //
13 // =======================================================================
14 //
15 // Class description:
16 //
17 // This is the right-hand side of equation of motion in a
18 // magnetic field only for magnetic monopoles.
19 //
20 // -------------------------------------------------------------------
21 
22 #ifndef SimG4Core_MagneticField_MonopoleEquation_h
23 #define SimG4Core_MagneticField_MonopoleEquation_h 1
24 
25 #include "G4EquationOfMotion.hh"
26 #include "G4MagneticField.hh"
27 
28 class MonopoleEquation : public G4EquationOfMotion {
29 public: // with description
30  MonopoleEquation(G4MagneticField *emField);
31 
32  ~MonopoleEquation() override;
33 
34  void SetChargeMomentumMass(G4ChargeState particleChargeState, G4double momentum, G4double mass) override;
35  // magnetic charge in e+ units
36 
37  void EvaluateRhsGivenB(const G4double y[], const G4double Field[], G4double dydx[]) const override;
38  // Given the value of the electromagnetic field, this function
39  // calculates the value of the derivative dydx.
40 
41 private:
42  G4double fMagCharge;
43  G4double fElCharge;
44  G4double fMassCof;
45 };
46 
47 #endif
~MonopoleEquation() override
void EvaluateRhsGivenB(const G4double y[], const G4double Field[], G4double dydx[]) const override
MonopoleEquation(G4MagneticField *emField)
void SetChargeMomentumMass(G4ChargeState particleChargeState, G4double momentum, G4double mass) override