#include <MyMdcGeomSvc.hh>
Public Member Functions | |
MyMdcGeomSvc () | |
~MyMdcGeomSvc () | |
void | ReadFilePar () |
int | TotalElecLayerNo () |
int | Layerr (int n) |
int | ElecNo (int n) |
double | X (int n) |
double | Y (int n) |
double | Z (int n) |
double | R (int n) |
double | BoxInStep (int n) |
double | BoxEndcape (int n) |
double | FixRing (int n) |
double | InnerRCableFrame (int n) |
double | OuterRCableFrame (int n) |
double | LengthCableFrame (int n) |
double | ZCableFrame (int n) |
double | ThinPlate (int n) |
double | XCenThinPlate (int n) |
double | YCenThinPlate (int n) |
double | ZCenThinPlate (int n) |
double | RotateXAngle (int n) |
double | LengthCableTub (int n) |
Private Attributes | |
int | fTotalElecLayerNo |
int | fLayerr [23] |
int | fElecNo [23] |
double | fX [23] |
double | fY [23] |
double | fZ [23] |
double | fR [23] |
double | fBoxInStep [3] |
double | fBoxEndcape [3] |
double | fFixRing [3] |
double | fInnerRCableFrame [11] |
double | fOuterRCableFrame [11] |
double | fLengthCableFrame [11] |
double | fZCableFrame [11] |
double | fLengthCableTub [12] |
double | fThinPlate [3] |
double | fXCenThinPlate [12] |
double | fYCenThinPlate [12] |
double | fZCenThinPlate [12] |
double | fRotateXAngle [12] |
Definition at line 9 of file MyMdcGeomSvc.hh.
MyMdcGeomSvc::MyMdcGeomSvc | ( | ) |
MyMdcGeomSvc::~MyMdcGeomSvc | ( | ) |
double MyMdcGeomSvc::BoxEndcape | ( | int | n | ) |
Definition at line 119 of file MyMdcGeomSvc.cc.
References fBoxEndcape.
Referenced by BesMdcConstruction::Construct().
00120 { 00121 return fBoxEndcape[n]; 00122 }
double MyMdcGeomSvc::BoxInStep | ( | int | n | ) |
Definition at line 115 of file MyMdcGeomSvc.cc.
References fBoxInStep.
00116 { 00117 return fBoxInStep[n]; 00118 }
int MyMdcGeomSvc::ElecNo | ( | int | n | ) |
Definition at line 95 of file MyMdcGeomSvc.cc.
References fElecNo.
Referenced by BesMdcConstruction::Construct().
00096 { 00097 return fElecNo[n]; 00098 }
double MyMdcGeomSvc::FixRing | ( | int | n | ) |
Definition at line 167 of file MyMdcGeomSvc.cc.
References fFixRing.
Referenced by BesMdcConstruction::Construct().
00168 { 00169 return fFixRing[n]; 00170 }
double MyMdcGeomSvc::InnerRCableFrame | ( | int | n | ) |
Definition at line 127 of file MyMdcGeomSvc.cc.
References fInnerRCableFrame.
00128 { 00129 return fInnerRCableFrame[n]; 00130 }
int MyMdcGeomSvc::Layerr | ( | int | n | ) |
Definition at line 91 of file MyMdcGeomSvc.cc.
References fLayerr.
00092 { 00093 return fLayerr[n]; 00094 }
double MyMdcGeomSvc::LengthCableFrame | ( | int | n | ) |
Definition at line 135 of file MyMdcGeomSvc.cc.
References fLengthCableFrame.
00136 { 00137 return fLengthCableFrame[n]; 00138 00139 }
double MyMdcGeomSvc::LengthCableTub | ( | int | n | ) |
Definition at line 123 of file MyMdcGeomSvc.cc.
References fLengthCableTub.
Referenced by BesMdcConstruction::Construct().
00124 { 00125 return fLengthCableTub[n]; 00126 }
double MyMdcGeomSvc::OuterRCableFrame | ( | int | n | ) |
Definition at line 131 of file MyMdcGeomSvc.cc.
References fOuterRCableFrame.
00132 { 00133 return fOuterRCableFrame[n]; 00134 }
double MyMdcGeomSvc::R | ( | int | n | ) |
Definition at line 111 of file MyMdcGeomSvc.cc.
References fR.
Referenced by BesMdcConstruction::Construct().
00112 { 00113 return fR[n]; 00114 }
void MyMdcGeomSvc::ReadFilePar | ( | ) |
Definition at line 12 of file MyMdcGeomSvc.cc.
References fBoxEndcape, fBoxInStep, fElecNo, fFixRing, fInnerRCableFrame, fLayerr, fLengthCableFrame, fLengthCableTub, fOuterRCableFrame, fR, fRotateXAngle, fThinPlate, fTotalElecLayerNo, fX, fXCenThinPlate, fY, fYCenThinPlate, fZ, fZCableFrame, fZCenThinPlate, genRecEmupikp::i, deljobs::string, and subSeperate::temp.
Referenced by MyMdcGeomSvc().
00013 { 00014 std::string geometryFilePath1 = getenv("MDCSIMROOT"); 00015 geometryFilePath1 +="/dat/MdcElectronics.txt"; 00016 00017 std::ifstream in; 00018 in.open(geometryFilePath1.c_str()); 00019 assert(in); 00020 const int maxCharOneLine=255; 00021 char temp[maxCharOneLine]; 00022 int i=0; 00023 while(in.peek()!=EOF) 00024 { 00025 in.getline(temp,maxCharOneLine); 00026 i++; 00027 if (temp[0]=='#') 00028 continue; 00029 // i is the row number of MdcElectronics.dat 00030 if(i==2) {istringstream(temp)>>fTotalElecLayerNo; 00031 continue; 00032 } 00033 if(i>=4&&i<=26) 00034 { 00035 istringstream(temp)>>fLayerr[i-4]>>fElecNo[i-4]; 00036 continue; 00037 } 00038 if(i>28&&i<=51) 00039 { 00040 istringstream(temp)>>fX[i-29]>>fY[i-29]>>fZ[i-29]>>fR[i-29]; 00041 continue; 00042 } 00043 if(i==55) 00044 { 00045 istringstream(temp)>>fBoxInStep[0]>>fBoxInStep[1]>>fBoxInStep[2]; 00046 continue; 00047 } 00048 if(i==59) 00049 { 00050 istringstream(temp)>>fBoxEndcape[0]>>fBoxEndcape[1]>>fBoxEndcape[2]; 00051 continue; 00052 } 00053 if(i==63){istringstream(temp)>>fFixRing[0]>>fFixRing[1]>>fFixRing[2];} 00054 if(i>=76&&i<87) 00055 { 00056 istringstream(temp)>>fInnerRCableFrame[i-76]>>fOuterRCableFrame[i-76]>>fLengthCableFrame[i-76]>>fZCableFrame[i-76]; 00057 continue; 00058 } 00059 if(i==90) 00060 { 00061 istringstream(temp)>>fThinPlate[0]>>fThinPlate[1]>>fThinPlate[2]; 00062 continue; 00063 } 00064 00065 if(i>=93&&i<105) 00066 { 00067 istringstream(temp)>>fXCenThinPlate[i-93]>>fYCenThinPlate[i-93]>> fZCenThinPlate[i-93]>>fRotateXAngle[i-93]; 00068 continue; 00069 } 00070 00071 00072 if(i==107) 00073 { 00074 istringstream(temp)>>fLengthCableTub[0]>>fLengthCableTub[1]>>fLengthCableTub[2]>>fLengthCableTub[3]>>fLengthCableTub[4]>>fLengthCableTub[5]>>fLengthCableTub[6]>>fLengthCableTub[7]>>fLengthCableTub[8]>>fLengthCableTub[9]>>fLengthCableTub[10]>>fLengthCableTub[11]>>fLengthCableTub[12]; 00075 continue; 00076 } 00077 if (i==109) 00078 { 00079 istringstream(temp)>>fLengthCableTub[13]>>fLengthCableTub[14]>>fLengthCableTub[15]>>fLengthCableTub[16]>>fLengthCableTub[17]>>fLengthCableTub[18]>>fLengthCableTub[19]>>fLengthCableTub[20]>>fLengthCableTub[21]>>fLengthCableTub[22]>>fLengthCableTub[23]>>fLengthCableTub[24]; 00080 continue; 00081 } 00082 00083 } 00084 }
double MyMdcGeomSvc::RotateXAngle | ( | int | n | ) |
Definition at line 162 of file MyMdcGeomSvc.cc.
References fRotateXAngle.
00163 { 00164 return fRotateXAngle[n]; 00165 }
double MyMdcGeomSvc::ThinPlate | ( | int | n | ) |
Definition at line 146 of file MyMdcGeomSvc.cc.
References fThinPlate.
00147 { 00148 return fThinPlate[n]; 00149 }
int MyMdcGeomSvc::TotalElecLayerNo | ( | ) |
Definition at line 87 of file MyMdcGeomSvc.cc.
References fTotalElecLayerNo.
Referenced by BesMdcConstruction::Construct().
00088 { 00089 return fTotalElecLayerNo; 00090 }
double MyMdcGeomSvc::X | ( | int | n | ) |
Definition at line 99 of file MyMdcGeomSvc.cc.
References fX.
Referenced by BesMdcConstruction::Construct().
00100 { 00101 return fX[n]; 00102 }
double MyMdcGeomSvc::XCenThinPlate | ( | int | n | ) |
Definition at line 150 of file MyMdcGeomSvc.cc.
References fXCenThinPlate.
00151 { 00152 return fXCenThinPlate[n]; 00153 }
double MyMdcGeomSvc::Y | ( | int | n | ) |
double MyMdcGeomSvc::YCenThinPlate | ( | int | n | ) |
Definition at line 154 of file MyMdcGeomSvc.cc.
References fYCenThinPlate.
00155 { 00156 return fYCenThinPlate[n]; 00157 }
double MyMdcGeomSvc::Z | ( | int | n | ) |
Definition at line 107 of file MyMdcGeomSvc.cc.
References fZ.
Referenced by BesMdcConstruction::Construct().
00108 { 00109 return fZ[n]; 00110 }
double MyMdcGeomSvc::ZCableFrame | ( | int | n | ) |
Definition at line 140 of file MyMdcGeomSvc.cc.
References fZCableFrame.
00141 { 00142 return fZCableFrame[n]; 00143 00144 }
double MyMdcGeomSvc::ZCenThinPlate | ( | int | n | ) |
Definition at line 158 of file MyMdcGeomSvc.cc.
References fZCenThinPlate.
00159 { 00160 return fZCenThinPlate[n]; 00161 }
double MyMdcGeomSvc::fBoxEndcape[3] [private] |
double MyMdcGeomSvc::fBoxInStep[3] [private] |
int MyMdcGeomSvc::fElecNo[23] [private] |
double MyMdcGeomSvc::fFixRing[3] [private] |
double MyMdcGeomSvc::fInnerRCableFrame[11] [private] |
int MyMdcGeomSvc::fLayerr[23] [private] |
double MyMdcGeomSvc::fLengthCableFrame[11] [private] |
double MyMdcGeomSvc::fLengthCableTub[12] [private] |
double MyMdcGeomSvc::fOuterRCableFrame[11] [private] |
double MyMdcGeomSvc::fR[23] [private] |
double MyMdcGeomSvc::fRotateXAngle[12] [private] |
double MyMdcGeomSvc::fThinPlate[3] [private] |
int MyMdcGeomSvc::fTotalElecLayerNo [private] |
double MyMdcGeomSvc::fX[23] [private] |
double MyMdcGeomSvc::fXCenThinPlate[12] [private] |
double MyMdcGeomSvc::fY[23] [private] |
double MyMdcGeomSvc::fYCenThinPlate[12] [private] |
double MyMdcGeomSvc::fZ[23] [private] |
double MyMdcGeomSvc::fZCableFrame[11] [private] |
double MyMdcGeomSvc::fZCenThinPlate[12] [private] |