/scratch0/jsnuveri/BDSIM/BDSIMgit/bdsim/include/BDSAcceleratorModel.hh

00001 #ifndef BDSACCELERATORMODEL_H
00002 #define BDSACCELERATORMODEL_H
00003 
00004 #include "globals.hh"         // geant4 globals / types
00005 #include "G4LogicalVolume.hh"
00006 #include "G4VPhysicalVolume.hh"
00007 
00008 #include "BDSBeamline.hh"
00009 
00025 class BDSAcceleratorModel {
00026 public:
00027   static BDSAcceleratorModel* Instance();
00028   ~BDSAcceleratorModel();
00029 
00031   inline void               RegisterWorldPV(G4VPhysicalVolume* worldIn);
00032 
00034   inline G4VPhysicalVolume* GetWorldPV();
00035 
00037   inline void               RegisterReadOutWorldPV(G4VPhysicalVolume* readOutWorldIn);
00038 
00040   inline G4VPhysicalVolume* GetReadOutWorldPV();
00041 
00044   inline void               RegisterReadOutWorldLV(G4LogicalVolume* readOutWorldIn);
00045 
00047   inline G4LogicalVolume*   GetReadOutWorldLV();
00048 
00051   inline void               RegisterFlatBeamline(BDSBeamline* beamlineIn);
00052 
00054   inline BDSBeamline*       GetFlatBeamline();
00055   
00056 
00057 private:
00058   BDSAcceleratorModel(); 
00059 
00060   static BDSAcceleratorModel* _instance;
00061 
00062   G4VPhysicalVolume* worldPV;        
00063   G4VPhysicalVolume* readOutWorldPV; 
00064   G4LogicalVolume*   readOutWorldLV; 
00065 
00066   BDSBeamline*       flatBeamline;   
00067   
00068 };
00069 
00070 inline void BDSAcceleratorModel::RegisterWorldPV(G4VPhysicalVolume* worldIn)
00071 {worldPV = worldIn;}
00072 
00073 inline G4VPhysicalVolume* BDSAcceleratorModel::GetWorldPV()
00074 {return worldPV;}
00075 
00076 inline void BDSAcceleratorModel::RegisterReadOutWorldPV(G4VPhysicalVolume* readOutWorldIn)
00077 {readOutWorldPV = readOutWorldIn;}
00078 
00079 inline G4VPhysicalVolume* BDSAcceleratorModel::GetReadOutWorldPV()
00080 {return readOutWorldPV;}
00081 
00082 inline void BDSAcceleratorModel::RegisterReadOutWorldLV(G4LogicalVolume* readOutWorldIn)
00083 {readOutWorldLV = readOutWorldIn;}
00084 
00085 inline G4LogicalVolume* BDSAcceleratorModel::GetReadOutWorldLV()
00086 {return readOutWorldLV;}
00087 
00088 inline void BDSAcceleratorModel::RegisterFlatBeamline(BDSBeamline* beamlineIn)
00089 {flatBeamline = beamlineIn;}
00090 
00091 inline BDSBeamline* BDSAcceleratorModel::GetFlatBeamline()
00092 {return flatBeamline;}
00093 
00094 #endif

Generated on 28 Jun 2015 for BDSIM by  doxygen 1.4.7