![]() |
Project
|
Opt-in magnetic-monopole ionisation physics for the O2 Geant4 engine. More...
#include "SimSetup/O2MonopolePhysics.h"#include "CommonUtils/ConfigurableParam.h"#include "SimulationDataFormat/MonopoleParticles.h"#include <boost/property_tree/ptree.hpp>#include <TGeoManager.h>#include <fairlogger/Logger.h>#include "TG4ComposedPhysicsList.h"#include "SimSetup/G4RunConfiguration.h"#include <G4VUserPhysicsList.hh>#include <G4ParticleTable.hh>#include <G4ParticleDefinition.hh>#include <G4PhysicsListHelper.hh>#include <G4ProcessManager.hh>#include <G4ProcessVector.hh>#include <G4mplIonisation.hh>#include <G4ChargeState.hh>#include <G4ChordFinder.hh>#include <G4ClassicalRK4.hh>#include <G4EquationOfMotion.hh>#include <G4FieldManager.hh>#include <G4MagneticField.hh>#include <G4PropagatorInField.hh>#include <G4Track.hh>#include <G4CoupledTransportation.hh>#include <G4Transportation.hh>#include <G4TransportationManager.hh>#include <CLHEP/Units/SystemOfUnits.h>#include <CLHEP/Units/PhysicalConstants.h>#include <array>#include <cmath>Go to the source code of this file.
Classes | |
| class | o2::g4config::O2MonopoleEquation |
| Equation of motion implementing the dual Lorentz force of a magnetic charge. More... | |
| struct | o2::g4config::MonopoleFieldSetup |
| The chord finder integrating O2MonopoleEquation, and that equation. More... | |
| class | o2::g4config::O2MonopoleTransportation |
| class | o2::g4config::O2MonopolePhysics |
| class | o2::g4config::O2G4RunConfiguration |
Namespaces | |
| namespace | o2 |
| a couple of static helper functions to create timestamp values for CCDB queries or override obsolete objects | |
| namespace | o2::g4config |
Functions | |
| MonopoleFieldSetup | o2::g4config::buildMonopoleFieldSetup (double magneticChargeEplusUnits, double tpcDriftFieldGeant4) |
| void | o2::g4config::installMonopoleTransport (G4ProcessManager *pmanager, const G4ParticleDefinition *particle, const MonopoleFieldSetup &fieldSetup) |
| TG4RunConfiguration * | o2::g4config::createMonopoleRunConfiguration (const TString &userGeometry, const TString &physicsList, const TString &specialProcess, bool specialStacking, bool mtApplication, double magneticChargeDirac) |
Opt-in magnetic-monopole ionisation physics for the O2 Geant4 engine.
O2 defines the BSM monopole particles (PDG +-4110000 / +-4120000) via O2MCApplication::AddParticles(), so they are transported by Geant4, but no energy-loss process is attached to them by any of the stock reference physics lists.
This file adds - the magnetic-monopole ionisation process G4mplIonisation (Ahlen stopping power, Rev. Mod. Phys. 52 (1980) 121) to those particles, when requested. The implementation takes Geant4 examples/extended/exoticphysics/monopole example (and the equivalent geant4_vmc "monopole" physics builder). The main difference is that here the process is attached to the pre-existing O2 monopole particles (with correct PDG ID() rather than to a freshly created G4Monopole
G4mplIonisation and G4mplIonisationWithDeltaModel are taken directly from the standard Geant4 libraries (libG4processes)
Definition in file O2MonopolePhysics.cxx.