00001 //---------------------------------------------------------------------------// 00002 // BOOST --- BESIII Object_Oriented Simulation Tool // 00003 //---------------------------------------------------------------------------// 00004 //Description: 00005 //Author: Dengzy 00006 //Created: Mar, 2004 00007 //Modified: 00008 //Comment: 00009 //---------------------------------------------------------------------------// 00010 //$ID: BesTofConstruction.hh 00011 00012 #ifndef BesTofConstruction_h 00013 #define BesTofConstruction_h 1 00014 00015 #include "BesSubdetector.hh" 00016 #include "G4LogicalVolume.hh" 00017 #include "G4VPhysicalVolume.hh" 00018 #include "BesTofGeoParameter.hh" 00019 00020 00021 class BesTofConstruction : public BesSubdetector 00022 { 00023 public: 00024 BesTofConstruction(); 00025 virtual ~BesTofConstruction(); 00026 00027 public: 00028 void Construct(G4LogicalVolume* logicalBes); 00029 void ConstructBr1Tof(); 00030 void ConstructBr2Tof(); 00031 void ConstructEcTof(); 00032 void ConstructEcTof_mrpc(); 00033 void DefineMaterial(); 00034 void getXYZ( const G4RotationMatrix r, double& a, double& b, double& c) const; 00035 00036 00037 private: 00038 void IniParam_mrpc(); 00039 BesTofGeoParameter* tofPara; 00040 00041 G4LogicalVolume* logicalTof; 00042 G4VPhysicalVolume* physicalTof; 00043 00044 G4LogicalVolume* logicalBrTof; 00045 G4LogicalVolume* logicalEcTofWest; 00046 G4LogicalVolume* logicalEcTofEast; 00047 00048 //scintillator 00049 G4LogicalVolume* logicalScinBr1; 00050 G4LogicalVolume* logicalScinBr2; 00051 G4VPhysicalVolume* physicalScinBr1; 00052 G4VPhysicalVolume* physicalScinBr2; 00053 00054 //casing material 00055 G4LogicalVolume* logicalAlBr1; 00056 G4LogicalVolume* logicalAlBr2; 00057 G4VPhysicalVolume* physicalAlBr1; 00058 G4VPhysicalVolume* physicalAlBr2; 00059 00060 G4LogicalVolume* logicalPVFBr1; 00061 G4LogicalVolume* logicalPVFBr2; 00062 G4VPhysicalVolume* physicalPVFBr1; 00063 G4VPhysicalVolume* physicalPVFBr2; 00064 00065 //bucket 00066 G4LogicalVolume* logicalBucketBr1; 00067 G4LogicalVolume* logicalBucketBr2; 00068 G4VPhysicalVolume* physicalBucket1Br1; 00069 G4VPhysicalVolume* physicalBucket2Br1; 00070 G4VPhysicalVolume* physicalBucket1Br2; 00071 G4VPhysicalVolume* physicalBucket2Br2; 00072 00073 G4LogicalVolume* logicalScinEcWest; 00074 G4LogicalVolume* logicalScinEcEast; 00075 G4VPhysicalVolume* physicalScinEcWest; 00076 G4VPhysicalVolume* physicalScinEcEast; 00077 00078 G4LogicalVolume* logicalAlEcWest; 00079 G4LogicalVolume* logicalAlEcEast; 00080 G4VPhysicalVolume* physicalAlEcWest; 00081 G4VPhysicalVolume* physicalAlEcEast; 00082 00083 G4LogicalVolume* logicalPVFEcWest; 00084 G4LogicalVolume* logicalPVFEcEast; 00085 G4VPhysicalVolume* physicalPVFEcWest; 00086 G4VPhysicalVolume* physicalPVFEcEast; 00087 00088 G4LogicalVolume* logicalBucketEc; 00089 G4VPhysicalVolume* physicalBucketEc; 00090 00091 G4Material* BC404; 00092 G4Material* BC408; 00093 G4Material* PVF; 00094 G4Material* PMTmaterial; 00095 00096 00097 //MRPC 00098 G4LogicalVolume* logical_gasLayer; 00099 00100 G4double containerOut_xdown; 00101 G4double containerOut_xup; 00102 G4double containerOut_y; 00103 G4double containerOut_z; 00104 G4double container_thickness; 00105 G4double container_lowBorder; 00106 00107 G4double containerIn_xdown; 00108 G4double containerIn_xup; 00109 G4double containerIn_y; 00110 G4double containerIn_z; 00111 00112 G4double upCover_xdown; 00113 G4double upCover_xup; 00114 G4double upCover_y; 00115 G4double upCover_z; 00116 G4double upCover_posz; 00117 00118 G4double lowCover1_xdown; 00119 G4double lowCover1_xup; 00120 G4double lowCover1_y; 00121 G4double lowCover1_z; 00122 G4double lowCover1_addx; 00123 G4double lowCover1_addz; 00124 G4double lowCover1_posz; 00125 00126 G4double lowCover2_xdown; 00127 G4double lowCover2_xup; 00128 G4double lowCover2_y; 00129 G4double lowCover2_z; 00130 G4double lowCover2_posz; 00131 00132 G4double upFEE_xdown; 00133 G4double upFEE_xup; 00134 G4double upFEE_y; 00135 G4double upFEE_z; 00136 G4double FEE_thickness; 00137 G4double upFEE_posz; 00138 00139 G4double upFEE_pcb_xdown; 00140 G4double upFEE_pcb_xup; 00141 G4double upFEE_pcb_y; 00142 G4double upFEE_pcb_z; 00143 00144 G4double sideFEE_x; 00145 G4double sideFEE_y; 00146 G4double sideFEE_z; 00147 G4double sideFEE_posl; 00148 00149 G4double sideFEE_pcb_x; 00150 G4double sideFEE_pcb_y; 00151 G4double sideFEE_pcb_z; 00152 00153 G4double castingDie_x; 00154 G4double castingDie_y; 00155 G4double castingDie_z; 00156 G4double castingDie_addr; 00157 G4double castingDie_subtractx; 00158 G4double castingDie_subtract_posz; 00159 G4double castingDie_posz1; 00160 G4double castingDie_posz2; 00161 G4double chamber_in_posy; 00162 G4double chamber_out_posy; 00163 00164 G4double bracket_x; 00165 G4double bracket_y; 00166 G4double bracket_z; 00167 G4double bracket_r; 00168 G4double bracket_posx; 00169 00170 G4double upStopBlock_x; 00171 G4double upStopBlock_y; 00172 G4double upStopBlock_z; 00173 G4double upStopBlock_subtractr; 00174 G4double upStopBlock_subtractposz; 00175 00176 G4double sideStopBlock_x; 00177 G4double sideStopBlock_y; 00178 G4double sideStopBlock_z; 00179 G4double sideStopBlock_thickness; 00180 G4double sideStopBlock_posz0; 00181 G4double sideStopBlock_posz1; 00182 00183 G4double honeyComb_xdown; 00184 G4double honeyComb_xup; 00185 G4double honeyComb_y; 00186 G4double honeyComb_z; 00187 G4double honeyComb_surface_y; 00188 G4double honeyComb_posz; 00189 00190 G4double tape_mrpc_xdown; 00191 G4double tape_mrpc_xup; 00192 G4double tape_mrpc_y; 00193 G4double tape_mrpc_z; 00194 G4double tape_mrpc_posz; 00195 00196 G4double pcbBoard_xdown; 00197 G4double pcbBoard_xup; 00198 G4double pcbBoard_y0; 00199 G4double pcbBoard_y1; 00200 G4double pcbBoard_z; 00201 00202 G4double strip_x[12]; 00203 G4double strip_y; 00204 G4double strip_z; 00205 G4double strip_gap; 00206 G4double strip_posz; 00207 00208 G4double mylar_xdown; 00209 G4double mylar_xup; 00210 G4double mylar_y; 00211 G4double mylar_z; 00212 G4double mylar_posz; 00213 00214 G4double glass0_xdown; 00215 G4double glass0_xup; 00216 G4double glass0_y; 00217 G4double glass0_z; 00218 G4double glass0_posz; 00219 00220 G4double glass1_xdown; 00221 G4double glass1_xup; 00222 G4double glass1_y; 00223 G4double glass1_z; 00224 G4double glass1_posz; 00225 00226 G4double gasLayer_xdown; 00227 G4double gasLayer_xup; 00228 G4double gasLayer_y; 00229 G4double gasLayer_z; 00230 G4double gasLayer_posz; 00231 00232 G4double endcap_r; 00233 G4double endcap_length; 00234 G4double layer_posz; 00235 G4double startAngle_east; 00236 G4double startAngle_west; 00237 00238 double m_userLimits; 00239 double m_ionE; 00240 00241 //Adjusting parameters 00242 VEC rOffset_east; 00243 VEC angle_east; 00244 VEC angleOffset_east; 00245 VEC rOffset_west; 00246 VEC angle_west; 00247 VEC angleOffset_west; 00248 }; 00249 00250 #endif