00001 //---------------------------------------------------------------------------// 00002 // BOOST --- BESIII Object_Oriented Simulation Tool // 00003 //---------------------------------------------------------------------------// 00004 //Description: 00005 //Author: He Miao 00006 //Created: Nov,12 2004 00007 //Modified: 00008 //Comment: 00009 //---------------------------------------------------------------------------// 00010 //$ID: BesEmcParameter.hh 00011 00012 #ifndef BesEmcParameter_h 00013 #define BesEmcParameter_h 1 00014 00015 #include "globals.hh" 00016 00017 class BesEmcParameter 00018 { 00019 public: 00020 00021 BesEmcParameter(); 00022 ~BesEmcParameter(); 00023 00024 //static member functions 00025 static BesEmcParameter& GetInstance(); 00026 static bool Exist(); 00027 static void Kill(); 00028 00029 private: 00030 //static data members 00031 static BesEmcParameter* fpInstance; 00032 00033 public: 00034 00035 void ReadData(); 00036 00037 G4long GetArraySize(){ return array_size; } 00038 G4double GetTau(){ return m_tau; } 00039 G4double GetHighRange(){ return m_highRange; } 00040 G4double GetMidRange(){ return m_midRange; } 00041 G4double GetLowRange(){ return m_lowRange; } 00042 G4double GetSampleTime(){ return m_sampleTime; } 00043 G4double GetPeakTime() { return m_peakTime; } 00044 G4double GetTimeOffset() { return m_timeOffset; } 00045 G4int GetADCbit(){ return m_bitNb; } 00046 G4double GetPhotonsPerMeV(){ return m_photonsPerMeV; } 00047 G4double GetNonuniformity(){ return m_nonuniformity; } 00048 00049 G4double GetWorldRmin1(){ return WorldRmin1; } 00050 G4double GetWorldRmax1(){ return WorldRmax1; } 00051 G4double GetWorldRmin2(){ return WorldRmin2; } 00052 G4double GetWorldRmax2(){ return WorldRmax2; } 00053 G4double GetWorldDz(){ return WorldDz; } 00054 G4double GetWorldZPosition(){ return WorldZPosition; } 00055 G4double GetCrystalLength(){ return CrystalLength; } 00056 G4double GetCrystalLength1(){ return CrystalLength1; } 00057 00058 G4int GetCryInOneLayer(G4int nb){ return cryNumInOneLayer[nb]; } 00059 G4int GetPentaInOneSector(G4int nb){ return pentaInOneSector[nb]; } 00060 00061 G4double GetTyvekThickness(){ return fTyvekThickness; } 00062 G4double GetAlThickness(){ return fAlThickness; } 00063 G4double GetMylarThickness(){ return fMylarThickness; } 00064 00065 G4double GetBSCRmin(){ return BSCRmin; } 00066 G4double GetBSCDz(){ return BSCDz; } 00067 G4double GetBSCRmin1(){ return BSCRmin1; } 00068 G4double GetBSCRmax1(){ return BSCRmax1; } 00069 G4double GetBSCRmin2(){ return BSCRmin2; } 00070 G4double GetBSCRmax2(){ return BSCRmax2; } 00071 G4double GetBSCDz1(){ return BSCDz1; } 00072 00073 G4double GetBSCAngleRotat(){ return BSCAngleRotat; } 00074 G4int GetBSCNbPhi(){ return BSCNbPhi; } 00075 G4int GetBSCNbTheta(){ return BSCNbTheta; } 00076 00077 G4double GetBSCYFront0(){ return BSCYFront0; } 00078 G4double GetBSCYFront(){ return BSCYFront; } 00079 G4double GetBSCYFront1(){ return BSCYFront1; } 00080 G4double GetBSCPosition0(){ return BSCPosition0; } 00081 G4double GetBSCPosition1(){ return BSCPosition1; } 00082 00083 G4double GetTaperRingDz(){ return TaperRingDz; } 00084 G4double GetTaperRingThickness1(){ return TaperRingThickness1; } 00085 G4double GetTaperRingThickness2(){ return TaperRingThickness2; } 00086 G4double GetTaperRingThickness3(){ return TaperRingThickness3; } 00087 G4double GetTaperRingTheta(){ return TaperRingTheta; } 00088 G4double GetTaperRingInnerLength(){ return TaperRingInnerLength; } 00089 G4double GetTaperRingOuterLength(){ return TaperRingOuterLength; } 00090 00091 G4double GetRearBoxLength(){ return rearBoxLength; } 00092 G4double GetRearBoxDz(){ return rearBoxDz; } 00093 G4double GetHangingPlateDz(){ return HangingPlateDz; } 00094 G4double GetOCGirderAngle(){ return OCGirderAngle; } 00095 00096 G4double GetRearCasingThickness(){ return rearCasingThickness; } 00097 00098 G4double GetOrgGlassLengthX(){ return orgGlassLengthX; } 00099 G4double GetOrgGlassLengthY(){ return orgGlassLengthY; } 00100 G4double GetOrgGlassLengthZ(){ return orgGlassLengthZ; } 00101 00102 G4double GetPDLengthX(){ return PDLengthX; } 00103 G4double GetPDLengthY(){ return PDLengthY; } 00104 G4double GetPDLengthZ(){ return PDLengthZ; } 00105 00106 G4double GetAlPlateDz(){ return AlPlateDz; } 00107 G4double GetPABoxDz(){ return PABoxDz; } 00108 G4double GetPABoxThickness(){ return PABoxThickness; } 00109 00110 G4double GetCableDr(){ return cableDr; } 00111 G4double GetWaterPipeDr(){ return waterPipeDr; } 00112 G4double GetWaterPipeThickness(){ return waterPipeThickness; } 00113 00114 G4double GetSPBarThickness(){ return SPBarThickness; } 00115 G4double GetSPBarThickness1(){ return SPBarThickness1; } 00116 G4double GetSPBarwidth(){ return SPBarwidth; } 00117 00118 G4double GetEndRingDz(){ return EndRingDz; } 00119 G4double GetEndRingDr(){ return EndRingDr; } 00120 G4double GetEndRingRmin(){ return EndRingRmin; } 00121 00122 G4double GetLightOutput(G4int i){ return lightOutput[i]; } 00123 G4double GetLightOutput(G4int, G4int, G4int); 00124 00125 private: 00126 00127 //digitise parameter 00128 G4long array_size; 00129 G4double m_tau; 00130 G4double m_highRange; 00131 G4double m_midRange; 00132 G4double m_lowRange; 00133 G4double m_sampleTime; 00134 G4double m_peakTime; 00135 G4double m_timeOffset; 00136 G4int m_bitNb; 00137 G4double m_photonsPerMeV; 00138 G4double m_nonuniformity; 00139 00140 //endcap geometry parameter 00141 G4double WorldRmin1; 00142 G4double WorldRmax1; 00143 G4double WorldRmin2; 00144 G4double WorldRmax2; 00145 G4double WorldDz; 00146 G4double WorldZPosition; 00147 G4double CrystalLength; 00148 G4double CrystalLength1; 00149 00150 G4int cryNumInOneLayer[6]; 00151 G4int pentaInOneSector[5]; 00152 00153 //crystal casing parameter 00154 G4double fTyvekThickness; 00155 G4double fAlThickness; 00156 G4double fMylarThickness; 00157 00158 //barrel geometry parameter 00159 G4double BSCRmin; 00160 G4double BSCDz; 00161 G4double BSCRmin1; 00162 G4double BSCRmax1; 00163 G4double BSCRmin2; 00164 G4double BSCRmax2; 00165 G4double BSCDz1; 00166 00167 G4double BSCAngleRotat; 00168 G4int BSCNbPhi; 00169 G4int BSCNbTheta; 00170 00171 G4double BSCYFront0; 00172 G4double BSCYFront; 00173 G4double BSCYFront1; 00174 G4double BSCPosition0; 00175 G4double BSCPosition1; 00176 00177 //barrel support frame parameter 00178 G4double TaperRingDz; 00179 G4double TaperRingThickness1; 00180 G4double TaperRingThickness2; 00181 G4double TaperRingThickness3; 00182 G4double TaperRingTheta; 00183 G4double TaperRingInnerLength; 00184 G4double TaperRingOuterLength; 00185 00186 G4double rearBoxLength; 00187 G4double rearBoxDz; 00188 G4double HangingPlateDz; 00189 G4double OCGirderAngle; 00190 00191 G4double rearCasingThickness; 00192 00193 G4double orgGlassLengthX; 00194 G4double orgGlassLengthY; 00195 G4double orgGlassLengthZ; 00196 00197 G4double PDLengthX; 00198 G4double PDLengthY; 00199 G4double PDLengthZ; 00200 00201 G4double AlPlateDz; 00202 G4double PABoxDz; 00203 G4double PABoxThickness; 00204 00205 G4double cableDr; 00206 G4double waterPipeDr; 00207 G4double waterPipeThickness; 00208 00209 G4double SPBarThickness; 00210 G4double SPBarThickness1; 00211 G4double SPBarwidth; 00212 00213 G4double EndRingDz; 00214 G4double EndRingDr; 00215 G4double EndRingRmin; 00216 00217 //crystal light yield 00218 G4double lightOutput[6240]; 00219 }; 00220 00221 #endif