00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00032
00041
00042
00047
00048
00062
00063
00064 #ifndef _MJMATERIAL_HH
00065 #define _MJMATERIAL_HH
00066
00067
00068
00069 #include <vector>
00070
00071 #include "globals.hh"
00072 #include "G4Material.hh"
00073
00074 #include "database/MJDatabaseMaterial.hh"
00075 #include "materials/MJMaterialElement.hh"
00076
00077
00078 class MJMaterial
00079 {
00080 public:
00081
00082
00083 MJMaterial();
00084 MJMaterial(G4String name, G4bool registerG4 );
00085
00086
00087
00088
00089
00090 ~MJMaterial();
00091
00092
00093
00094 void CreateFromDatabase();
00095 G4String GetName() { return fMaterialName; }
00096 G4double GetDensity() { return fDensity; }
00097 G4double GetTemperature() { return fTemperature; }
00098 G4double GetPressure() { return fPressure; }
00099 G4int GetNumComponents() { return fNumComponents; }
00100 vector<string> GetComponents() { return fComponents; }
00101 vector<G4int> GetNumAtoms() { return fNumOfAtoms; }
00102 vector<G4double> GetMassFraction() { return fFracMass; }
00103 G4String GetDefaultBKG() { return fDefaultBKG; }
00104 G4String GetComment() { return fMaterialComment; }
00105
00106
00107 void RegisterWithG4();
00108
00109
00110 protected:
00111
00112
00113
00114 private:
00119 G4bool fExists;
00120 G4String fMaterialName;
00121 G4double fDensity;
00122 G4double fTemperature;
00123 G4double fPressure;
00124 G4int fNumComponents;
00125 vector<string> fComponents;
00126
00127 vector<G4int> fNumOfAtoms;
00128 vector<G4double> fFracMass;
00129 G4String fDefaultBKG;
00130 G4String fMaterialComment;
00131
00132 G4Material *fG4Material;
00133 vector<MJMaterialElement> fMJElements;
00134 };
00135 #endif