00001 //---------------------------------------------------------------------------// 00002 // BOOST --- BESIII Object_Oriented Simulation Tool // 00003 //---------------------------------------------------------------------------// 00004 //Descpirtion: Superconducting Magnet detector as a concrete class 00005 // it's better to define an envelope then position it in BES 00006 //Author: Cao Guofu 00007 //Created: July 27, 2007 00008 //Comment: 00009 //---------------------------------------------------------------------------// 00010 // 00011 #ifndef BesSCM_H 00012 #define BesSCM_H 1 00013 00014 #include "BesSubdetector.hh" 00015 #include "globals.hh" 00016 #include "G4VPhysicalVolume.hh" 00017 00018 class G4LogicalVolume; 00019 class BesSCMParameter; 00020 00021 class BesSCM : public BesSubdetector 00022 { 00023 public: 00024 00025 BesSCM(); 00026 virtual ~BesSCM(){;} 00027 00028 void Construct(G4LogicalVolume* logicbes); 00029 void DefineMaterial(); 00030 00031 private: 00032 BesSCMParameter* scmPar; 00033 G4double innerCryo[3]; 00034 G4double l1Adia[3]; 00035 G4double innerShield[3]; 00036 G4double l2Adia[3]; 00037 G4double outerShield[3]; 00038 G4double l3Adia[3]; 00039 G4double endShield[5]; 00040 G4double l1insu[3]; 00041 G4double coil[3]; 00042 G4double l2insu[3]; 00043 G4double supp[3]; 00044 G4double l4Adia[3]; 00045 G4double endCoil[5]; 00046 G4double outerCryo[3]; 00047 G4double endCryo[5]; 00048 G4double rein[5]; 00049 G4double pipe1[6]; 00050 G4double pipe2[6]; 00051 G4double pipe3[6]; 00052 G4double hole[13]; 00053 00054 G4LogicalVolume* logicalSCM; 00055 G4VPhysicalVolume* physicalSCM; 00056 00057 G4LogicalVolume* logicalinnCryo; 00058 G4VPhysicalVolume* physicalinnCryo; 00059 00060 G4LogicalVolume* logicall1Adia; 00061 G4VPhysicalVolume* physicall1Adia; 00062 00063 G4LogicalVolume* logicalinnShield; 00064 G4VPhysicalVolume* physicalinnShield; 00065 00066 G4LogicalVolume* logicall2Adia; 00067 G4VPhysicalVolume* physicall2Adia; 00068 00069 G4LogicalVolume* logicaloutShield; 00070 G4VPhysicalVolume* physicaloutShield; 00071 00072 G4LogicalVolume* logicall3Adia; 00073 G4VPhysicalVolume* physicall3Adia; 00074 00075 G4LogicalVolume* logicalendShield; 00076 G4VPhysicalVolume* physicalendShield1; 00077 G4VPhysicalVolume* physicalendShield2; 00078 00079 G4LogicalVolume* logicall1insu; 00080 G4VPhysicalVolume* physicall1insu; 00081 00082 G4LogicalVolume* logicalcoil; 00083 G4VPhysicalVolume* physicalcoil; 00084 00085 G4LogicalVolume* logicall2insu; 00086 G4VPhysicalVolume* physicall2insu; 00087 00088 G4LogicalVolume* logicalsupp; 00089 G4VPhysicalVolume* physicalsupp; 00090 00091 G4LogicalVolume* logicall4Adia; 00092 G4VPhysicalVolume* physicall4Adia; 00093 00094 G4LogicalVolume* logicalendCoil; 00095 G4VPhysicalVolume* physicalendCoil1; 00096 G4VPhysicalVolume* physicalendCoil2; 00097 00098 G4LogicalVolume* logicalouterCryo; 00099 G4VPhysicalVolume* physicalouterCryo; 00100 00101 G4LogicalVolume* logicalendCryo; 00102 G4VPhysicalVolume* physicalendCryo1; 00103 G4VPhysicalVolume* physicalendCryo2; 00104 00105 G4LogicalVolume* logicalrein; 00106 G4VPhysicalVolume* physicalrein1; 00107 G4VPhysicalVolume* physicalrein2; 00108 00109 G4LogicalVolume* logicalpipe1; 00110 G4VPhysicalVolume* physicalpipe1; 00111 00112 G4LogicalVolume* logicalpipe2; 00113 G4VPhysicalVolume* physicalpipe2; 00114 00115 G4LogicalVolume* logicalpipe3; 00116 G4VPhysicalVolume* physicalpipe3; 00117 00118 G4Material* liquidhelium; 00119 G4Material* Steel; 00120 G4Material* fibre; 00121 }; 00122 #endif