00001 //---------------------------------------------------------------------------// 00002 //Description: 1. Setup SimpleGeometry geometry and manage associated sensitive detectors 00003 // 2. Communicate with associated sensitive detectors 00004 //Author: Wu Chen(wuchen@mail.ihep.ac.cn) 00005 //Created: 17 Oct, 2012 00006 //Modified: 11, Jan, 2013 00007 // Support G4Hype, G4TwistedTube 00008 //Comment: about fVerboseLevel: 00009 // You can change it by calling SetVerbose(int) somewhere 00010 // or modifying input card before starting a run. 00011 // Either way would set verbose of selected sensitive detectors to the same level 00012 // 0: Only Warnings and Errors 00013 // 1: Important information 00014 // >= 5: All information 00015 //---------------------------------------------------------------------------// 00016 00017 #ifndef SimpleGeometrySvc_h 00018 #define SimpleGeometrySvc_h 1 00019 00020 #include "myglobals.hh" 00021 00022 #include "MyVGeometrySvc.hh" 00023 00024 class G4VPhysicalVolume; 00025 class SimpleGeometryParameter; 00026 00027 class SimpleGeometrySvc : public MyVGeometrySvc 00028 { 00029 public: 00030 SimpleGeometrySvc(G4String name, G4String opt = ""); 00031 virtual ~SimpleGeometrySvc(); 00032 00033 virtual G4VPhysicalVolume* SetGeometry();//Setup geometry. Should be called before the begin of a run 00034 00035 //Special functions 00036 void ConstructVolumes(); 00037 00038 G4VPhysicalVolume* PlaceVolumes(); 00039 00040 //=>Access 00041 SimpleGeometryParameter* get_GeometryParameter(){ return m_GeometryParameter; } 00042 00043 //=>Modify 00044 void set_GeometryParameter( SimpleGeometryParameter* val ); 00045 00046 private: 00047 00048 SimpleGeometryParameter* m_GeometryParameter; 00049 00050 }; 00051 00052 #endif 00053