00001 // 00002 // $Id: DetectorConstruction.hh 135 2008-07-03 14:48:12Z jacquem $ 00003 // 00004 // 00005 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 00006 00007 #ifndef DetectorConstruction_h 00008 #define DetectorConstruction_h 1 00009 00010 #include "G4VUserDetectorConstruction.hh" 00011 #include "globals.hh" 00012 00013 class G4VPhysicalVolume; 00014 class G4Material; 00015 00016 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 00017 00018 class DetectorConstruction : public G4VUserDetectorConstruction 00019 { 00020 public: 00021 00022 DetectorConstruction(); 00023 ~DetectorConstruction(); 00024 00025 public: 00026 00027 void SetWorldMaterial(G4String); 00028 void SetSpacecraftMaterial(G4String); 00029 void SetCabinMaterial(G4String); 00030 void SetFloorMaterial(G4String); 00031 void SetAstronautMaterial(G4String); 00032 00033 void SetWorldSizeXY(G4double val) {m_worldSizeXY = val;}; 00034 void SetWorldSizeZ(G4double val) {m_worldSizeZ = val;}; 00035 void SetSpacecraftRadius(G4double val) {m_spacecraftRadius = val;}; 00036 void SetSpacecraftLength(G4double val) {m_spacecraftLength = val;}; 00037 void SetSpacecraftThickness(G4double val) {m_spacecraftThickness = val;}; 00038 void SetCabinRadius(G4double val) {m_cabinRadius = val;}; 00039 void SetCabinLength(G4double val) {m_cabinLength = val;}; 00040 void SetFloorThickness(G4double val) {m_floorThickness = val;}; 00041 void SetFloorWidth(G4double val) {m_floorWidth = val;}; 00042 void SetFloorLength(G4double val) {m_floorLength = val;}; 00043 void SetFloorYcenter(G4double val) {m_floorYcenter = val;}; 00044 void SetAstronautHeight(G4double val) {m_astronautHeight = val;}; 00045 void SetAstronautTopWidth(G4double val) {m_astronautTopWidth = val;}; 00046 void SetAstronautBottomWidth(G4double val){m_astronautBottomWidth = val;}; 00047 void SetAstronautPosition(G4double val) {m_astronautPosition = val;}; 00048 00049 00050 G4VPhysicalVolume* Construct(); 00051 void UpdateGeometry(); 00052 00053 public: 00054 00055 G4Material* GetWorldMaterial() {return m_worldMaterial;}; 00056 G4Material* GetSpacecraftMaterial() {return m_spacecraftMaterial;}; 00057 G4Material* GetCabinMaterial() {return m_cabinMaterial;}; 00058 G4Material* GetFloorMaterial() {return m_floorMaterial;}; 00059 G4Material* GetAstronautMaterial() {return m_astronautMaterial;}; 00060 00061 G4double GetWorldSizeXY() {return m_worldSizeXY;}; 00062 G4double GetWorldSizeZ() {return m_worldSizeZ;}; 00063 G4double GetSpacecraftRadius() {return m_spacecraftRadius;}; 00064 G4double GetSpacecraftLength() {return m_spacecraftLength;}; 00065 G4double GetSpacecraftThickness() {return m_spacecraftThickness;}; 00066 G4double GetCabinRadius() {return m_cabinRadius;}; 00067 G4double GetCabinLength() {return m_cabinLength;}; 00068 G4double GetFloorThickness() {return m_floorThickness;}; 00069 G4double GetFloorWidth() {return m_floorWidth;}; 00070 G4double GetFloorLength() {return m_floorLength;}; 00071 G4double GetFloorYcenter() {return m_floorYcenter;}; 00072 G4double GetAstronautHeight() {return m_astronautHeight;}; 00073 G4double GetAstronautTopWidth() {return m_astronautTopWidth;}; 00074 G4double GetAstronautBottomWidth(){return m_astronautBottomWidth;}; 00075 G4double GetAstronautPosition() {return m_astronautPosition;}; 00076 00077 void PrintParameters(); 00078 00079 private: 00080 00081 void DefineMaterials(); 00082 G4VPhysicalVolume* ConstructVolumes(); 00083 00084 private: 00085 00086 G4Material* m_worldMaterial; 00087 G4Material* m_spacecraftMaterial; 00088 G4Material* m_cabinMaterial; 00089 G4Material* m_floorMaterial; 00090 G4Material* m_astronautMaterial; 00091 00092 G4VPhysicalVolume* m_physiWorld; 00093 00094 G4double m_worldSizeXY; 00095 G4double m_worldSizeZ; 00096 00097 G4double m_spacecraftRadius; 00098 G4double m_spacecraftLength; 00099 G4double m_spacecraftThickness; 00100 00101 G4double m_cabinRadius; 00102 G4double m_cabinLength; 00103 00104 G4double m_floorThickness; 00105 G4double m_floorWidth; 00106 G4double m_floorLength; 00107 G4double m_floorYcenter; 00108 00109 G4double m_astronautHeight; 00110 G4double m_astronautTopWidth; 00111 G4double m_astronautBottomWidth; 00112 G4double m_astronautPosition; 00113 00114 }; 00115 00116 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 00117 00118 #endif