Belle II Software  release-08-01-10
G4MonopolePhysics Class Reference

Monopole physics class to register on the physics list. More...

#include <G4MonopolePhysics.h>

Inheritance diagram for G4MonopolePhysics:
Collaboration diagram for G4MonopolePhysics:

Public Member Functions

 G4MonopolePhysics (double magneticCharge=1.0)
 Constructor. More...
 
 ~G4MonopolePhysics ()
 Destructor.
 
virtual void ConstructParticle ()
 Adds monopole and anti-monopole to GEANT4 with a pdg of +/-99666 and parameters taken from current class.
 
virtual void ConstructProcess ()
 This method will be invoked in the Construct() method. More...
 

Private Member Functions

G4MonopolePhysicsoperator= (const G4MonopolePhysics &right)
 Assignment operator should be hidden. More...
 
 G4MonopolePhysics (const G4MonopolePhysics &copy)
 Copy constructor should be hidden. More...
 

Private Attributes

G4double fMagCharge
 Magnetic charge of the monopole, in e+ units.
 
G4double fElCharge
 Electric charge in case of dyon.
 
G4double fMonopoleMass
 Mass of the monopole.
 
G4MonopolefMpl
 Pointer to the monopole definition in GEANT4.
 
G4MonopolefApl
 Pointer to the anti-monopole definition in GEANT4.
 

Detailed Description

Monopole physics class to register on the physics list.

Entry point from FullSim to the monopole package. Consists of monopole definition, transportation and ionisation processes.

Definition at line 33 of file G4MonopolePhysics.h.

Constructor & Destructor Documentation

◆ G4MonopolePhysics() [1/2]

G4MonopolePhysics ( double  magneticCharge = 1.0)
explicit

Constructor.

Parameters
magneticChargeMagnetic charge of the monopole, in e+ units.

Definition at line 32 of file G4MonopolePhysics.cc.

33  : G4VPhysicsConstructor("Monopole physics"),
34  fMagCharge(magneticCharge), //in units of the positron charge
35  fMpl(0), fApl(0)
36 {
37  //No way to store magnetic charge in TDatabasePDG,
38  //so part of the information (e, m, code, etc.) should be stored before generation
39  //and other part (g) passed to the simulation setup
40  const auto monopoleInPDG = TDatabasePDG::Instance()->GetParticle(c_monopolePDGCode);
41  const auto antiMonopoleInPDG = TDatabasePDG::Instance()->GetParticle(-c_monopolePDGCode);
42  if (!monopoleInPDG || !antiMonopoleInPDG) {
43  B2FATAL("Monopole physics was requested, but the monopole parameters"
44  "were not registered in local PDG database under PID code " << c_monopolePDGCode);
45  }
46  fElCharge = monopoleInPDG->Charge() / 3.0; //TParticlePDG returns in units of |e|/3
47  fMonopoleMass = antiMonopoleInPDG->Mass() * GeV;
48  SetPhysicsType(bUnknown);
49 }
G4Monopole * fMpl
Pointer to the monopole definition in GEANT4.
G4double fElCharge
Electric charge in case of dyon.
G4double fMagCharge
Magnetic charge of the monopole, in e+ units.
G4double fMonopoleMass
Mass of the monopole.
G4Monopole * fApl
Pointer to the anti-monopole definition in GEANT4.

◆ G4MonopolePhysics() [2/2]

G4MonopolePhysics ( const G4MonopolePhysics copy)
private

Copy constructor should be hidden.

Parameters
copyCopy reference.

Member Function Documentation

◆ ConstructProcess()

void ConstructProcess ( )
virtual

This method will be invoked in the Construct() method.

each physics process will be instantiated and registered to the process manager of each particle type.

Definition at line 63 of file G4MonopolePhysics.cc.

◆ operator=()

G4MonopolePhysics& operator= ( const G4MonopolePhysics right)
private

Assignment operator should be hidden.

Parameters
rightAssign reference.

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