Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Class Members | File Members

MJMaterial.hh

Go to the documentation of this file.
00001 //---------------------------------------------------------------------------//
00002 //bb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nu//
00003 //                                                                           //
00004 //                         MAJORANA Simulation                               //
00005 //                                                                           //
00006 //      This code implementation is the intellectual property of the         //
00007 //      MAJORANA Collaboration. It is based on Geant4, an intellectual       //
00008 //      property of the RD44 GEANT4 collaboration.                           //
00009 //                                                                           //
00010 //                        *********************                              //
00011 //                                                                           //
00012 //    Neither the authors of this software system, nor their employing       //
00013 //    institutes, nor the agencies providing financial support for this      //
00014 //    work  make  any representation or  warranty, express or implied,       //
00015 //    regarding this software system or assume any liability for its use.    //
00016 //    By copying, distributing or modifying the Program (or any work based   //
00017 //    on on the Program) you indicate your acceptance of this statement,     //
00018 //    and all its terms.                                                     //
00019 //                                                                           //
00020 //bb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nubb0nu//
00021 //---------------------------------------------------------------------------//
00032 // Begin description of class here
00041 // End class description
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   //default constructor
00083   MJMaterial();
00084   MJMaterial(G4String name, G4bool registerG4 );
00085 
00086   //copy constructor
00087 //  MJMaterial(const MJMaterial &);
00088 
00089   //destructor
00090   ~MJMaterial();
00091 
00092   //public interface
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   //protected members
00110 protected:
00111 
00112 
00113   //private  members
00114 private:
00119   G4bool fExists;
00120   G4String fMaterialName;
00121   G4double fDensity;
00122   G4double fTemperature;
00123   G4double fPressure;
00124   G4int    fNumComponents;
00125   vector<string> fComponents; // Cannot create a vector of G4String.
00126                               // Required operator '>' not overloaded.
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

Generated on Mon Nov 29 16:58:53 2004 for Majorana Simulation by  doxygen 1.3.9.1