![]() |
Project
|
Classes | |
| class | G4LocalFieldConstruction |
| class | G4RunConfiguration |
| The Geant4 VMC run configuration of O2: adds the fast simulation and the local magnetic fields. More... | |
| struct | MonopoleFieldSetup |
| The chord finder integrating O2MonopoleEquation, and that equation. More... | |
| class | O2G4RunConfiguration |
| class | O2MonopoleEquation |
| Equation of motion implementing the dual Lorentz force of a magnetic charge. More... | |
| class | O2MonopolePhysics |
| class | O2MonopoleTransportation |
Functions | |
| TG4RunConfiguration * | createMonopoleRunConfiguration (const TString &userGeometry, const TString &physicsList, const TString &specialProcess, bool specialStacking, bool mtApplication, double magneticChargeDirac) |
| void | G4Config () |
| void | G4Terminate () |
| MonopoleFieldSetup | buildMonopoleFieldSetup (double magneticChargeEplusUnits, double tpcDriftFieldGeant4) |
| void | installMonopoleTransport (G4ProcessManager *pmanager, const G4ParticleDefinition *particle, const MonopoleFieldSetup &fieldSetup) |
|
inline |
Build a chord finder that integrates O2MonopoleEquation instead of the default electric-charge-only equation, in the field of the run.
It is deliberately NOT installed on a field manager here. The default chord finder is what Geant4-VMC configured for the field (NystromRK4 unless the macro says otherwise) and every ordinary particle keeps it. O2MonopoleTransportation installs it only for the duration of a monopole step, on the field manager of the current volume: the global one, or one of the local ones created for the volumes with their own field parameters (G4LocalFieldConstruction). The local field managers carry the same field as the global one, so one chord finder serves them all.
SetUserEquationOfMotion() in Geant4-VMC is not usable here: it registers the object with TG4GeometryManager, and the field integrator is built before that registration is consulted, so the equation is never actually called.
| magneticChargeEplusUnits | monopole magnetic charge in eplus units |
| tpcDriftFieldGeant4 | TPC drift field in Geant4 units (0 = disabled) |
Definition at line 245 of file O2MonopolePhysics.cxx.
| TG4RunConfiguration * o2::g4config::createMonopoleRunConfiguration | ( | const TString & | userGeometry, |
| const TString & | physicsList, | ||
| const TString & | specialProcess, | ||
| bool | specialStacking, | ||
| bool | mtApplication, | ||
| double | magneticChargeDirac | ||
| ) |
Build a Geant4-VMC run configuration which, on top of the requested reference physics list, attaches the magnetic-monopole ionisation process (G4mplIonisation) and transport to the monopole particles already defined by O2 (PDG +-4110000 / +-4120000).
Only used when G4Params.monopole == true; Otherwise o2::g4config::G4RunConfiguration is used (see g4Config.C)
| userGeometry | VMC geometry-navigation string (as for TG4RunConfiguration) |
| physicsList | the reference physics-list selection string |
| specialProcess | the VMC special-process selection string |
| specialStacking | VMC special-stacking flag |
| mtApplication | multithreading flag |
| magneticChargeDirac | magnetic charge of the monopole in units of the Dirac charge g_D = eplus/(2*alpha) (~68.5 eplus); 1.0 (default) reproduces the classic single Dirac monopole |
Definition at line 539 of file O2MonopolePhysics.cxx.
| void o2::g4config::G4Config | ( | ) |
Definition at line 38 of file G4Config.cxx.
| void o2::g4config::G4Terminate | ( | ) |
Definition at line 44 of file G4Config.cxx.
|
inline |
Replace the transport of one monopole species with O2MonopoleTransportation, keeping it first in the DoIt vectors exactly as G4VUserPhysicsList::AddTransportation() left it.
Definition at line 376 of file O2MonopolePhysics.cxx.