00001 //---------------------------------------------------------------------------// 00002 //Description: In charge of MyVGeometryParameter 00003 //Author: Wu Chen(wuchen@mail.ihep.ac.cn) 00004 //Created: 17 Oct, 2012 00005 //Modified: 00006 //Comment: The units are "mm"(default) and "rad". 00007 //Comment: fVerboseLevel: 0: Just Warning Messages and Error Messages 00008 // 1: + Dump() 00009 // >= 5: All informations 00010 //---------------------------------------------------------------------------// 00011 00012 #ifndef MyVGeometryParameter_H 00013 #define MyVGeometryParameter_H 00014 00015 #include "myglobals.hh" 00016 00017 #include <string> 00018 #include <iostream> 00019 00020 #include "MyConfigure.hh" 00021 00022 class MyVGeometryParameterMessenger; 00023 00024 class MyVGeometryParameter : public MyConfigure 00025 { 00026 00027 public: 00028 MyVGeometryParameter(G4String name, G4String opt = ""); 00029 virtual ~MyVGeometryParameter(void); 00030 00031 virtual void InitFromFile(G4String){};//Get necessary parameters from given file 00032 00033 virtual void Calculate(){}; 00034 00035 virtual void Dump(){}; 00036 00037 //=>Special functions 00038 int GetValue(G4String); 00039 00040 void Preset(); 00041 00042 bool CheckInfo(); 00043 00044 void DumpInfo(); 00045 00046 //=> functions for common use 00047 //"29" means replica number count from 0 to 28 00048 //"2,29" means replica number count from 2 to 30 00049 //"1-29" or "1~29" means replica number count from 1 to 29 00050 void get_RepCont(G4String RepCont, G4int& SRepNo, G4int& RepNo); 00051 00052 bool ISEMPTY(G4String); 00053 00054 void DEBUG(G4String content, int level = 1){ 00055 if (level >= 1){ 00056 G4Exception("MyVGeometryParameter","Run0031", 00057 FatalException, content); 00058 } 00059 else if (level == 0){ 00060 std::cout<<"In MyVGeometryParameter, "<<content<<std::endl; 00061 } 00062 } 00063 00064 //=>Access 00065 //general info 00066 bool get_checkoverlap(){return checkoverlap;} 00067 int get_VerboseLevel(){return fVerboseLevel;} 00068 G4String get_Name(){ return m_Name; } 00069 G4String get_filename(){ return m_filename; } 00070 00071 //=>Modify 00072 //general info 00073 void set_checkoverlap(bool val) { checkoverlap = val;} 00074 void set_VerboseLevel(int val) { fVerboseLevel = val;} 00075 void set_GeometryParameterMessenger(MyVGeometryParameterMessenger* val) {m_GeometryParameterMessenger = val;}; 00076 void set_Name(G4String val){ m_Name = val; } 00077 void set_filename(G4String val){ m_filename = val; } 00078 00079 private: 00080 //general info 00081 bool checkoverlap; 00082 int fVerboseLevel; 00083 00084 G4String m_filename; 00085 G4String m_Name; 00086 MyVGeometryParameterMessenger* m_GeometryParameterMessenger; //pointer to the Messenger 00087 00088 }; 00089 00090 #endif