/home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/geo/include/RAT/Materials.hh Source File

Ratpac-two: /home/docs/checkouts/readthedocs.org/user_builds/ratpac/checkouts/latest/src/geo/include/RAT/Materials.hh Source File
Ratpac-two
Materials.hh
1 #ifndef __RAT_Materials__
2 #define __RAT_Materials__
3 
4 #include <G4Element.hh>
5 #include <G4Isotope.hh>
6 #include <G4Material.hh>
7 #include <G4NistManager.hh>
8 #include <G4OpticalSurface.hh>
9 #include <G4PhysicalVolumeStore.hh>
10 #include <G4ios.hh>
11 #include <RAT/DB.hh>
12 #include <RAT/Log.hh>
13 #include <Randomize.hh>
14 #include <map>
15 #include <string>
16 
17 namespace RAT {
18 
19 class Materials {
20  public:
21  // Load all materials into memory
22  static void LoadMaterials();
23 
24  // GEANT4 has no global store of optical surface information,
25  // so we need to keep it here
26  static void LoadOpticalSurfaces();
27 
28  static void ConstructMaterials();
29  static void ReadPropertyTable();
30 
31  static std::map<std::string, G4OpticalSurface *> optical_surface;
32 
33  private:
34  inline static bool BuildMaterial(std::string name, DBLinkPtr ptr);
35 
36  // Load all entries from OPTICS
37  static void LoadOptics();
38 
39  // Create a MaterialPropertiesTable from an OPTICS index
40  static void BuildMaterialPropertiesTable(G4Material *material, DBLinkPtr table);
41 
42  // Computes a total abslength/rslength for materials using the SNO+
43  // multicomponent GLG4Scint model
44  static void RescaleProperty(DBLinkPtr, G4MaterialPropertiesTable *, const std::string &);
45  // Load a single material property vector from an OPTICS index by name
46  // This handles energy vs. wavelength basis, etc.
47  static G4MaterialPropertyVector *LoadProperty(DBLinkPtr table, std::string name);
48 };
49 
50 } // namespace RAT
51 
52 #endif // __RAT_Materials__
Definition: Materials.hh:19
static void ConstructMaterials()
Definition: Materials.cc:159
Definition: CCCrossSecMessenger.hh:29