OMSim
Geant4 for IceCube optical module studies
Loading...
Searching...
No Matches
OMSimDecaysGPS.hh
Go to the documentation of this file.
1
7#pragma once
8#include "OMSimOpticalModule.hh"
9#include <globals.hh>
16{
17public:
18
19 static OMSimDecaysGPS &getInstance()
20 {
21 static OMSimDecaysGPS instance;
22 return instance;
23 }
24
25 void simulateDecaysInPMTs(G4double pTimeWindow);
26 void simulateDecaysInPressureVessel(G4double pTimeWindow);
27
32 void setOpticalModule(OMSimOpticalModule *p_opticalModule) { m_opticalModule = p_opticalModule; };
33 void setProductionRadius(G4double pProductionRadius);
34 G4String getDecayTerminationNuclide();
35
36private:
37 // Define a map that maps isotopes to their GPS commands
38 std::map<G4String, G4String> m_isotopeCommands = {
39 {"U238", "/gps/ion 92 238 0"},
40 {"U235", "/gps/ion 92 235 0"},
41 {"Ra226", "/gps/ion 88 226 0"},
42 {"Ra224", "/gps/ion 88 224 0"},
43 {"Th232", "/gps/ion 90 232 0"},
44 {"K40", "/gps/ion 19 40 0"}};
45
46 // Define a map that maps isotopes to their termination isotope (Ra is gas state and chains are often not in secular equilibrium)
47 // Ra224 with a lifetime of ~4d breaks equilibrium far less than Ra226, with half life ~1600y, so activity of Th232 and Ra224 will probably be very similar
48 std::map<G4String, G4String> m_terminationIsotopes = {
49 {"U238", "Ra226"},
50 {"Th232", "Ra224"},
51 {"Ra226", "none"},
52 {"Ra224", "none"},
53 {"U235", "none"},
54 {"K40", "none"}};
55
56 void generalGPS();
57 void configureIsotopeGPS(G4String Isotope, G4String location);
58 std::map<G4String, G4int> calculateNumberOfDecays(G4MaterialPropertiesTable *pMPT, G4double pTimeWindow, G4double pMass);
59 OMSimOpticalModule *m_opticalModule;
60 G4double m_productionRadius;
61 G4String m_nuclideStopName;
62
63 OMSimDecaysGPS() = default;
64 ~OMSimDecaysGPS() = default;
65 OMSimDecaysGPS(const OMSimDecaysGPS &) = delete;
66 OMSimDecaysGPS &operator=(const OMSimDecaysGPS &) = delete;
67};
A class for simulating isotope decays inside the pressure vessel and PMT glass.
Definition OMSimDecaysGPS.hh:16
void simulateDecaysInPMTs(G4double pTimeWindow)
Simulates the decays in the PMTs of the optical module.
Definition OMSimDecaysGPS.cc:131
void setOpticalModule(OMSimOpticalModule *p_opticalModule)
Set the optical module to be used.
Definition OMSimDecaysGPS.hh:32
std::map< G4String, G4int > calculateNumberOfDecays(G4MaterialPropertiesTable *pMPT, G4double pTimeWindow, G4double pMass)
Calculates the number of decays for isotopes.
Definition OMSimDecaysGPS.cc:83
void generalGPS()
Configures common GPS commands for the radioactive decays.
Definition OMSimDecaysGPS.cc:19
void configureIsotopeGPS(G4String Isotope, G4String location)
Configures GPS for the production and decay of an isotope within a specified location.
Definition OMSimDecaysGPS.cc:62
void simulateDecaysInPressureVessel(G4double pTimeWindow)
Simulates the decays in the pressure vessel of the optical module.
Definition OMSimDecaysGPS.cc:101
Base class for OMs works as interface.
Definition OMSimOpticalModule.hh:23