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

MJDatabase.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
00039 // End class description
00040 //
00045 // 
00046 // --------------------------------------------------------------------------//
00056 // --------------------------------------------------------------------------//
00057 
00058 #ifndef _MJGEOM_HH
00059 #define _MJGEOM_HH
00060 
00061 //---------------------------------------------------------------------------//
00062 
00063 #include <string>               //Language level Headers
00064 #include <vector>
00065 
00066 using namespace std;
00067 //---------------------------------------------------------------------------//
00068 #include "database/MJDatabaseMaterial.hh"
00069 
00070 class MJDatabaseMEGACrystal;
00071 class MJDatabaseSEGACrystal;
00072 class MJDatabaseElement;
00073 class MJDatabaseIsotope;
00074 class MJDatabaseCloverCrystal;
00075 class MJDatabaseCloverDetector;
00076 class MJDatabaseSimple800g;
00077 class MJDatabaseClover4x50x80DetCalib;
00078 
00079 class MJDatabase 
00080 {
00081   //public members
00082 public:
00083   //default constructor
00084   MJDatabase();
00085 
00086   //copy constructor
00087   MJDatabase(const MJDatabase &);
00088 
00089   //destructor
00090 virtual ~MJDatabase();
00091 
00092   static MJDatabaseMEGACrystal* GetMegaCrystal(string );
00093   static MJDatabaseMEGACrystal* GetMegaCrystal(int);
00094   static MJDatabaseSEGACrystal* GetSegaCrystal(string );
00095   static MJDatabaseSEGACrystal* GetSegaCrystal(int);
00096   static MJDatabaseElement * GetElement(string);
00097   static MJDatabaseIsotope * GetIsotope(string);
00098   static MJDatabaseMaterial * GetMaterial(string);
00099   static MJDatabaseCloverCrystal* GetCloverCrystal(string );
00100   static MJDatabaseCloverCrystal* GetCloverCrystal(int );
00101   static MJDatabaseCloverDetector* GetCloverDetector(string);
00102   static MJDatabaseCloverDetector* GetCloverDetector(int);
00103 
00104   //get a vector of material names
00105   static vector<string> GetMaterialNames();
00106 
00107   //get a vector of materials
00108   static vector<MJDatabaseMaterial> GetAllMaterials();
00109 
00110   //simplest 800g crystal
00111   static MJDatabaseSimple800g* GetSimple800g(string);
00112 
00113   //calibration parameters for canbera 4x50x80
00114   static MJDatabaseClover4x50x80DetCalib* 
00115   GetClover4x50x80Calib(string, string bt="-infinity", string et="infinity");
00116   
00117 //protected members
00118 protected:
00119   virtual MJDatabaseMEGACrystal* MJDatabaseMegaPsqlImpl(string)=0;
00120   virtual MJDatabaseMEGACrystal* MJDatabaseMegaPsqlImpl(int)=0;
00121   virtual MJDatabaseSEGACrystal* MJDatabaseSegaPsqlImpl(string)=0;
00122   virtual MJDatabaseSEGACrystal* MJDatabaseSegaPsqlImpl(int)=0;
00123   virtual MJDatabaseElement*   MJDatabaseElementPsqlImpl(string)=0;
00124   virtual MJDatabaseIsotope*   MJDatabaseIsotopePsqlImpl(string)=0;
00125   virtual MJDatabaseMaterial*   MJDatabaseMaterialPsqlImpl(string)=0;
00126   virtual MJDatabaseCloverCrystal* MJDatabaseCloverPsqlImpl(string)=0;
00127   virtual MJDatabaseCloverCrystal* MJDatabaseCloverPsqlImpl(int)=0;
00128   virtual MJDatabaseCloverDetector* MJDatabaseCloverDetectorPsqlImpl(string)=0;
00129   virtual MJDatabaseCloverDetector* MJDatabaseCloverDetectorPsqlImpl(int)=0;
00130 
00131   virtual MJDatabaseSimple800g* MJDatabaseSimple800gPsqlImpl(string)=0;
00132   virtual MJDatabaseClover4x50x80DetCalib* 
00133   MJDatabaseClover4x50x80CalibPsqlImpl(string, string, string)=0;
00134   virtual vector<MJDatabaseMaterial> MJDatabaseAllMaterialsPsqlImpl()=0;
00135   virtual vector<string> MJDatabaseMaterialNamesPsqlImpl()=0;
00136 
00137   //private  members
00138 private:
00139 };
00140 //
00141 #endif

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