Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4tgbMaterialMgr.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26//
27// $Id$
28//
29//
30// class G4tgbMaterialMgr
31//
32// Class description:
33//
34// Singleton class to manage the building of transient materials,
35// as well as the construction of the corresponding G4Material's.
36
37// History:
38// - Created. P.Arce, CIEMAT (November 2007)
39// -------------------------------------------------------------------------
40
41#ifndef G4tgbMaterialMgr_h
42#define G4tgbMaterialMgr_h
43
44#include "globals.hh"
45
46#include "G4tgbIsotope.hh"
47#include "G4tgbElement.hh"
48#include "G4tgbMaterial.hh"
49
50#include "G4tgrIsotope.hh"
51#include "G4tgrElement.hh"
52#include "G4tgrElement.hh"
53#include "G4tgrMaterial.hh"
54
55#include "G4Isotope.hh"
56#include "G4Element.hh"
57#include "G4Material.hh"
58
59typedef std::map< G4String, G4tgbIsotope* > G4mstgbisot;
60typedef std::map< G4String, G4tgbElement* > G4mstgbelem;
61typedef std::map< G4String, G4tgbMaterial* > G4mstgbmate;
62typedef std::map< G4String, G4Isotope* > G4msg4isot;
63typedef std::map< G4String, G4Element* > G4msg4elem;
64typedef std::map< G4String, G4Material* > G4msg4mate;
65
67{
68 public: // with description
69
71
73 // Get only instance (it it does not exists, create it)
74
75 void CopyIsotopes();
76 // Copy the G4tgrIsotopes into G4tgbIsotopes
77 void CopyElements();
78 // Copy the G4tgrElements into G4tgbElements
79 void CopyMaterials();
80 // Copy the G4tgrMaterials into G4tgbMaterials
81
83 // Look for a G4Isotope that has to exists
84 // (if not found create it from the corresponding G4tgbIsotope)
85 G4Isotope* FindBuiltG4Isotope(const G4String & name) const;
86 // Look for a G4Isotope and if not found return 0
88 G4bool bMustExist = 0) const;
89 // Look for a G4Isotope and if not found return 0
90
92 G4bool bMustExist = 1);
93 // Look for a G4Element that has to exists by default
94 // (if not found create it from the corresponding G4tgbElement)
95 G4Element* FindBuiltG4Element(const G4String& name) const;
96 // Look for a G4Element and if not found return 0
98 G4bool bMustExist = 0) const;
99 // Look for a G4Element and if not found return 0
100
102 G4bool bMustExist = 1);
103 // Look for a G4Material that has to exists by default
104 // (if not found create it from the corresponding G4tgbMaterial)
105 G4Material* FindBuiltG4Material(const G4String& name) const;
106 // Look for a G4Material and if not found return 0
108 G4bool bMustExist = 0) const;
109 // Look for a G4tgbMaterial and if not found return 0
110
111 const G4msg4isot GetG4IsotopeList() const { return theG4Isotopes; }
112 const G4msg4elem GetG4ElementList() const { return theG4Elements; }
113 const G4msg4mate GetG4MaterialList() const { return theG4Materials; }
114
115 private:
116
118 // Private Constructor
119
120 private:
121
122 static G4tgbMaterialMgr* theInstance;
123
124 G4mstgbisot theG4tgbIsotopes;
125 // List of all tgbIsotopes created
126 G4mstgbelem theG4tgbElements;
127 // List of all tgbElements created
128 G4mstgbmate theG4tgbMaterials;
129 // List of all G4tgbMaterials created
130 G4msg4isot theG4Isotopes;
131 // Container of all G4Isotopes created
132 G4msg4elem theG4Elements;
133 // Container of all G4Elements created
134 G4msg4mate theG4Materials;
135 // Container of all G4Materials created
136};
137
138#endif
bool G4bool
Definition: G4Types.hh:67
std::map< G4String, G4tgbIsotope * > G4mstgbisot
std::map< G4String, G4tgbElement * > G4mstgbelem
std::map< G4String, G4Material * > G4msg4mate
std::map< G4String, G4Isotope * > G4msg4isot
std::map< G4String, G4Element * > G4msg4elem
std::map< G4String, G4tgbMaterial * > G4mstgbmate
G4Material * FindBuiltG4Material(const G4String &name) const
G4tgbIsotope * FindG4tgbIsotope(const G4String &name, G4bool bMustExist=0) const
const G4msg4elem GetG4ElementList() const
G4tgbElement * FindG4tgbElement(const G4String &name, G4bool bMustExist=0) const
G4Isotope * FindOrBuildG4Isotope(const G4String &name)
G4Element * FindOrBuildG4Element(const G4String &name, G4bool bMustExist=1)
const G4msg4mate GetG4MaterialList() const
G4Material * FindOrBuildG4Material(const G4String &name, G4bool bMustExist=1)
G4Element * FindBuiltG4Element(const G4String &name) const
G4tgbMaterial * FindG4tgbMaterial(const G4String &name, G4bool bMustExist=0) const
G4Isotope * FindBuiltG4Isotope(const G4String &name) const
const G4msg4isot GetG4IsotopeList() const
static G4tgbMaterialMgr * GetInstance()