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: BesTofGeoParameter.hh 00011 00012 #ifndef BesTofGeoParameter_h 00013 #define BesTofGeoParameter_h 1 00014 00015 #include "globals.hh" 00016 #include <map> 00017 #include <vector> 00018 00019 typedef std::vector<double> VEC; 00020 typedef std::map<std::string, double> CONTAINER; 00021 typedef std::map<std::string, VEC> CONTAINER2; 00022 00023 class BesTofGeoParameter 00024 { 00025 protected: 00026 BesTofGeoParameter(); 00027 ~BesTofGeoParameter(); 00028 00029 public: 00030 static BesTofGeoParameter* GetInstance(); 00031 double Get(std::string key); 00032 VEC GetVec(std::string key); 00033 void Get_deadChannel(int deadChannel[72][12]); 00034 00035 G4int GetnScinBr() {return nScinBr;} 00036 G4double GetBr1L() {return br1L;} 00037 G4double GetBr1TrapW1() {return br1TrapW1;} 00038 G4double GetBr1TrapW2() {return br1TrapW2;} 00039 G4double GetBr1TrapH() {return br1TrapH;} 00040 G4double GetBr1R1() {return br1R1;} 00041 G4double GetAlThickness() {return AlThickness;} 00042 G4double GetPVFThickness() {return PVFThickness;} 00043 00044 G4double GetBr2L() {return br2L;} 00045 G4double GetBr2TrapW1() {return br2TrapW1;} 00046 G4double GetBr2TrapW2() {return br2TrapW2;} 00047 G4double GetBr2TrapH() {return br2TrapH;} 00048 G4double GetBr2R1() {return br2R1;} 00049 00050 G4double GetBucketDBr() {return bucketDBr;} 00051 G4double GetBucketLBr() {return bucketLBr;} 00052 00053 G4int GetnScinEc() {return nScinEc;} 00054 G4double GetEcL() {return ecL;} 00055 G4double GetEcTrapW1() {return ecTrapW1;} 00056 G4double GetEcTrapW2() {return ecTrapW2;} 00057 G4double GetEcTrapH() {return ecTrapH;} 00058 G4double GetEcTrapH1() {return ecTrapH1;} 00059 G4double GetzPosEastEc() {return zPosEastEc;} 00060 G4double GetzPosWestEc() {return zPosWestEc;} 00061 G4double GetEcR1() {return ecR1;} 00062 G4double GetEcR2() {return ecR2;} 00063 00064 00065 G4double GetBucketDEc() {return bucketDEc;} 00066 G4double GetBucketLEc() {return bucketLEc;} 00067 G4double GetBucketPosR() {return bucketPosR;} 00068 00069 G4double GetTau1() {return m_tau1;} 00070 G4double GetTau2() {return m_tau2;} 00071 G4double GetTau3() {return m_tau3;} 00072 G4double GetTauRatio() {return m_tauRatio;} 00073 G4double GetRefIndex() {return m_refIndex;} 00074 G4double GetPhNConst() {return m_phNConst;} 00075 G4double GetCpe2pmt() {return m_Cpe2pmt;} 00076 G4double GetRAngle() {return m_rAngle;} 00077 G4double GetQE() {return m_QE;} 00078 G4double GetCE() {return m_CE;} 00079 G4double GetPeCorFac() {return m_peCorFac;} 00080 G4double GetAtten(int i) {return m_atten[i];} 00081 00082 G4double GetTTSmean() {return m_ttsMean;} 00083 G4double GetTTSsigma() {return m_ttsSigma;} 00084 G4double GetPMTgain() {return m_PMTgain;} 00085 G4double GetCe() {return m_Ce;} 00086 G4double GetRiseTime() {return m_riseTime;} 00087 G4double GetLLthresh() {return m_LLthresh;} 00088 G4double GetHLthresh() {return m_HLthresh;} 00089 G4double GetPreGain() {return m_preGain;} 00090 G4double GetNoiseSigma() {return m_noiseSigma;} 00091 00092 G4double GetTau1Ec() {return m_tau1Ec;} 00093 G4double GetTau2Ec() {return m_tau2Ec;} 00094 G4double GetTau3Ec() {return m_tau3Ec;} 00095 G4double GetTauRatioEc() {return m_tauRatioEc;} 00096 G4double GetRefIndexEc() {return m_refIndexEc;} 00097 G4double GetPhNConstEc() {return m_phNConstEc;} 00098 G4double GetCpe2pmtEc() {return m_Cpe2pmtEc;} 00099 G4double GetRAngleEc() {return m_rAngleEc;} 00100 G4double GetQEEc() {return m_QEEc;} 00101 G4double GetCEEc() {return m_CEEc;} 00102 G4double GetPeCorFacEc() {return m_peCorFacEc;} 00103 G4double GetAttenEc() {return m_attenEc;} 00104 00105 G4double GetTTSmeanEc() {return m_ttsMeanEc;} 00106 G4double GetTTSsigmaEc() {return m_ttsSigmaEc;} 00107 G4double GetPMTgainEc() {return m_PMTgainEc;} 00108 G4double GetCeEc() {return m_CeEc;} 00109 G4double GetRiseTimeEc() {return m_riseTimeEc;} 00110 G4double GetLLthreshEc() {return m_LLthreshEc;} 00111 G4double GetHLthreshEc() {return m_HLthreshEc;} 00112 G4double GetPreGainEc() {return m_preGainEc;} 00113 G4double GetNoiseSigmaEc() {return m_noiseSigmaEc;} 00114 //++++++++++ 00115 //tian added, for barrel parameters 00116 G4double GetBrEPMTgain(int scinNb) { return m_BrEPMTgain[scinNb]; } 00117 G4double GetBrERiseTime(int scinNb) { return m_BrERiseTime[scinNb];} 00118 G4double GetBrWPMTgain(int scinNb) { return m_BrWPMTgain[scinNb]; } 00119 G4double GetBrWRiseTime(int scinNb) { return m_BrWRiseTime[scinNb];} 00120 00121 00122 00123 private: 00124 //tianhl, for reading barrel parameters 00125 void ReadData(); 00126 void ReadBrData(); 00127 void ReadMrpcData(); 00128 00129 00130 static BesTofGeoParameter* m_instance; 00131 G4String m_dataPath; 00132 CONTAINER container; 00133 CONTAINER UNIT; 00134 CONTAINER2 container2; 00135 int m_deadChannel[72][12]; 00136 00137 G4int nScinBr; 00138 G4double br1L; 00139 G4double br1TrapW1; 00140 G4double br1TrapW2; 00141 G4double br1TrapH; 00142 G4double br1R1; 00143 G4double AlThickness; 00144 G4double PVFThickness; 00145 00146 G4double br2L; 00147 G4double br2TrapW1; 00148 G4double br2TrapW2; 00149 G4double br2TrapH; 00150 G4double br2R1; 00151 00152 00153 G4double bucketDBr; 00154 G4double bucketLBr; 00155 00156 G4int nScinEc; 00157 G4double ecL; 00158 G4double ecTrapW1; 00159 G4double ecTrapW2; 00160 G4double ecTrapH; 00161 G4double ecTrapH1; 00162 G4double zPosEastEc; 00163 G4double zPosWestEc; 00164 G4double ecR1; 00165 G4double ecR2; 00166 00167 G4double bucketDEc; 00168 G4double bucketLEc; 00169 G4double bucketPosR; 00170 00171 G4double m_tau1; 00172 G4double m_tau2; 00173 G4double m_tau3; 00174 G4double m_tauRatio; 00175 G4double m_refIndex; 00176 G4double m_phNConst; 00177 G4double m_QE; 00178 G4double m_CE; 00179 G4double m_rAngle; 00180 G4double m_Cpe2pmt; 00181 G4double m_peCorFac; 00182 00183 G4double m_ttsMean; 00184 G4double m_ttsSigma; 00185 G4double m_PMTgain; 00186 G4double m_Ce; 00187 G4double m_riseTime; 00188 G4double m_LLthresh; 00189 G4double m_HLthresh; 00190 G4double m_preGain; 00191 G4double m_noiseSigma; 00192 00193 G4double m_tau1Ec; 00194 G4double m_tau2Ec; 00195 G4double m_tau3Ec; 00196 G4double m_tauRatioEc; 00197 G4double m_refIndexEc; 00198 G4double m_phNConstEc; 00199 G4double m_Cpe2pmtEc; 00200 G4double m_rAngleEc; 00201 G4double m_QEEc; 00202 G4double m_CEEc; 00203 G4double m_peCorFacEc; 00204 G4double m_attenEc; 00205 00206 G4double m_ttsMeanEc; 00207 G4double m_ttsSigmaEc; 00208 G4double m_PMTgainEc; 00209 G4double m_CeEc; 00210 G4double m_riseTimeEc; 00211 G4double m_LLthreshEc; 00212 G4double m_HLthreshEc; 00213 G4double m_preGainEc; 00214 G4double m_noiseSigmaEc; 00215 00216 G4double m_atten[176]; 00217 G4double m_BrEPMTgain[176] ; 00218 G4double m_BrERiseTime[176]; 00219 G4double m_BrWPMTgain[176] ; 00220 G4double m_BrWRiseTime[176]; 00221 }; 00222 00223 #endif 00224