00001 /** 00002 00003 \file MollerTarget.hh 00004 \author Peiqing Wang 00005 00006 \class MollerTarget 00007 \brief Definition of the Target 00008 */ 00009 00010 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 00011 #ifndef MollerTarget_h 00012 #define MollerTarget_h 1 00013 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 00014 00015 // geant4 includes 00016 #include "G4Material.hh" 00017 #include "G4LogicalVolume.hh" 00018 00019 // system includes 00020 //#include "cpp_include.h" 00021 //#include "Root_include.h" 00022 //#include "Geant4_include.hh" 00023 00024 // user includes 00025 //#include "MollerTargetMessenger.hh" 00026 //#include "MollerUserInformation.hh" 00027 #include "MollerMaterial.hh" 00028 00029 #include "G4Tubs.hh" 00030 #include "G4Material.hh" 00031 #include "G4VisAttributes.hh" 00032 #include "G4VPhysicalVolume.hh" 00033 #include "G4PVPlacement.hh" 00034 00035 // system classes 00036 // class G4Tubs; 00037 // class G4LogicalVolume; 00038 // class G4VPhysicalVolume; 00039 // class G4Material; 00040 // class G4VisAttributes; 00041 00042 // user classes 00043 class MollerMaterial; 00044 class MollerTargetMessenger; 00045 00046 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 00047 00048 class MollerTarget 00049 { 00050 public: 00051 MollerTarget(); 00052 ~MollerTarget(); 00053 00054 void ConstructComponent(G4VPhysicalVolume*); 00055 void DestroyComponent(); 00056 00057 void SetTargetCenterPositionInZ(G4double); 00058 G4double GetTargetCenterPositionInZ(); 00059 00060 void SetTargetLength(G4double); 00061 G4double GetTargetLength() {return fTargetLength;}; 00062 00063 void SetTargetMaterial(G4String); 00064 G4String GetTargetMaterial(); 00065 00066 void SetTargetCellMaterial(G4String); 00067 G4String GetTargetCellMaterial(); 00068 00069 void SetTargetEntranceWindowMaterial(G4String); 00070 G4String GetTargetEntranceMaterial(); 00071 00072 void SetTargetExitWindowMaterial(G4String); 00073 G4String GetTargetExitWindowMaterial(); 00074 00075 void SetTargetExitWindowNippleMaterial(G4String); 00076 G4String GetTargetExitWindowNippleMaterial(); 00077 00078 G4LogicalVolume* getTargetLogicalVolume() {return TargetMaterial_Logical;} 00079 G4VPhysicalVolume* getTargetPhysicalVolume() {return TargetMaterial_Physical;} 00080 00081 private: 00082 00083 MollerMaterial* pMaterial; 00084 00085 G4LogicalVolume* TargetCell_Logical; 00086 G4VPhysicalVolume* TargetCell_Physical; 00087 G4Material* TargetCell_Material; 00088 00089 G4LogicalVolume* TargetEntranceWindow_Logical; 00090 G4VPhysicalVolume* TargetEntranceWindow_Physical; 00091 G4Material* TargetEntranceWindow_Material; 00092 00093 G4LogicalVolume* TargetExitWindow_Logical; 00094 G4VPhysicalVolume* TargetExitWindow_Physical; 00095 G4Material* TargetExitWindow_Material; 00096 00097 G4LogicalVolume* TargetExitWindowNipple_Logical; 00098 G4VPhysicalVolume* TargetExitWindowNipple_Physical; 00099 G4Material* TargetExitWindowNipple_Material; 00100 00101 G4LogicalVolume* ScatteringChamberWindow_Logical; 00102 G4VPhysicalVolume* ScatteringChamberWindow_Physical; 00103 00104 G4LogicalVolume* TargetMaterial_Logical; 00105 G4VPhysicalVolume* TargetMaterial_Physical; 00106 G4Material* Target_Material; 00107 00108 G4LogicalVolume* TargetContainer_Logical; 00109 G4VPhysicalVolume* TargetContainer_Physical; 00110 G4Material* TargetContainer_Material; 00111 00112 G4double targetCellEntranceWindowThickness; 00113 G4double targetCellExitWindowThickness; 00114 G4double targetCellExitWindowNippleThickness; 00115 G4double targetCellWallThickness; 00116 00117 G4double targetCellInnerLength; 00118 G4double targetCellOuterLength; 00119 00120 G4double targetCellFrontRadiusMin; 00121 G4double targetCellFrontInnerRadiusMax; 00122 G4double targetCellFrontOuterRadiusMax; 00123 00124 G4double targetCellBackRadiusMin; 00125 G4double targetCellBackInnerRadiusMax; 00126 G4double targetCellBackOuterRadiusMax; 00127 00128 G4double targetCellExitWindowNippleRadius; 00129 00130 G4double ScatteringChamberWindowRadius; 00131 G4double ScatteringChamberWindowThickness; 00132 00133 G4double targetCellStartingPhi; 00134 G4double targetCellDeltaPhi; 00135 G4double targetZPos; 00136 00137 G4double fTargetLength; // Full length of the target 00138 00139 MollerTargetMessenger* targetMessenger; // pointer to the Messenger 00140 //MollerUserInformation *myUserInfo; 00141 00142 G4LogicalVolume* target_logic; 00143 G4VPhysicalVolume* target_phys; 00144 00145 }; 00146 00147 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo...... 00148 00149 #endif