/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Simulation/BOOST/MdcSim/MdcSim-00-00-73/src/MyMdcGeomSvc.cc

Go to the documentation of this file.
00001 #include "MyMdcGeomSvc.hh"
00002 #include <fstream> 
00003 #include <iostream>
00004 #include <sstream>
00005 using namespace std;
00006 #include <stdlib.h>
00007 #include <assert.h>
00008 
00009 
00010 MyMdcGeomSvc::MyMdcGeomSvc(){ReadFilePar();}
00011 MyMdcGeomSvc::~MyMdcGeomSvc(){}
00012 void MyMdcGeomSvc::ReadFilePar()
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 }
00085 
00086 
00087 int MyMdcGeomSvc::TotalElecLayerNo()
00088 {
00089         return fTotalElecLayerNo;
00090 }
00091 int MyMdcGeomSvc::Layerr(int n)
00092 {
00093         return fLayerr[n];
00094 }
00095 int MyMdcGeomSvc::ElecNo(int n)
00096 {
00097         return fElecNo[n];
00098 }
00099 double MyMdcGeomSvc::X(int n)
00100 {
00101         return fX[n];
00102 }
00103 double MyMdcGeomSvc::Y(int n)
00104 {
00105         return fY[n];
00106 }
00107 double MyMdcGeomSvc::Z(int n)
00108 {
00109         return fZ[n];
00110 }
00111 double MyMdcGeomSvc::R(int n)
00112 {
00113         return fR[n];
00114 }
00115 double MyMdcGeomSvc::BoxInStep(int n)
00116 {
00117         return fBoxInStep[n];
00118 }
00119 double MyMdcGeomSvc::BoxEndcape(int n)
00120 {
00121         return fBoxEndcape[n];
00122 }
00123 double MyMdcGeomSvc::LengthCableTub(int n)
00124 {   
00125         return   fLengthCableTub[n];
00126 }
00127 double MyMdcGeomSvc::InnerRCableFrame(int n)
00128 {
00129         return fInnerRCableFrame[n];
00130 }
00131 double MyMdcGeomSvc::OuterRCableFrame(int n)
00132 {
00133         return  fOuterRCableFrame[n];
00134 }
00135 double MyMdcGeomSvc::LengthCableFrame(int n)
00136 {
00137         return  fLengthCableFrame[n];
00138 
00139 }
00140 double MyMdcGeomSvc::ZCableFrame(int n)
00141 {
00142         return  fZCableFrame[n];
00143 
00144 }
00145 
00146 double MyMdcGeomSvc::ThinPlate(int n)
00147 {
00148         return   fThinPlate[n];
00149 }
00150 double MyMdcGeomSvc::XCenThinPlate(int n)
00151 {
00152         return   fXCenThinPlate[n];
00153 }
00154 double MyMdcGeomSvc::YCenThinPlate(int n)
00155 {
00156         return   fYCenThinPlate[n];
00157 }
00158 double MyMdcGeomSvc::ZCenThinPlate(int n)
00159 {
00160         return   fZCenThinPlate[n];
00161 }
00162 double MyMdcGeomSvc::RotateXAngle(int n)
00163 {
00164         return  fRotateXAngle[n];
00165 }
00166 
00167 double MyMdcGeomSvc::FixRing(int n)
00168 {
00169         return  fFixRing[n];
00170 }
00171 

Generated on Tue Nov 29 23:14:27 2016 for BOSS_7.0.2 by  doxygen 1.4.7