BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
MyMdcGeomSvc.cc
Go to the documentation of this file.
1#include "MdcSim/MyMdcGeomSvc.hh"
2#include <fstream>
3#include <iostream>
4#include <sstream>
5using namespace std;
6#include <assert.h>
7#include <stdlib.h>
8
12 std::string geometryFilePath1 = getenv( "MDCSIMROOT" );
13 geometryFilePath1 += "/dat/MdcElectronics.txt";
14
15 std::ifstream in;
16 in.open( geometryFilePath1.c_str() );
17 assert( in );
18 const int maxCharOneLine = 255;
19 char temp[maxCharOneLine];
20 int i = 0;
21 while ( in.peek() != EOF )
22 {
23 in.getline( temp, maxCharOneLine );
24 i++;
25 if ( temp[0] == '#' ) continue;
26 // i is the row number of MdcElectronics.dat
27 if ( i == 2 )
28 {
29 istringstream( temp ) >> fTotalElecLayerNo;
30 continue;
31 }
32 if ( i >= 4 && i <= 26 )
33 {
34 istringstream( temp ) >> fLayerr[i - 4] >> fElecNo[i - 4];
35 continue;
36 }
37 if ( i > 28 && i <= 51 )
38 {
39 istringstream( temp ) >> fX[i - 29] >> fY[i - 29] >> fZ[i - 29] >> fR[i - 29];
40 continue;
41 }
42 if ( i == 55 )
43 {
44 istringstream( temp ) >> fBoxInStep[0] >> fBoxInStep[1] >> fBoxInStep[2];
45 continue;
46 }
47 if ( i == 59 )
48 {
49 istringstream( temp ) >> fBoxEndcape[0] >> fBoxEndcape[1] >> fBoxEndcape[2];
50 continue;
51 }
52 if ( i == 63 ) { istringstream( temp ) >> fFixRing[0] >> fFixRing[1] >> fFixRing[2]; }
53 if ( i >= 76 && i < 87 )
54 {
55 istringstream( temp ) >> fInnerRCableFrame[i - 76] >> fOuterRCableFrame[i - 76] >>
56 fLengthCableFrame[i - 76] >> fZCableFrame[i - 76];
57 continue;
58 }
59 if ( i == 90 )
60 {
61 istringstream( temp ) >> fThinPlate[0] >> fThinPlate[1] >> fThinPlate[2];
62 continue;
63 }
64
65 if ( i >= 93 && i < 105 )
66 {
67 istringstream( temp ) >> fXCenThinPlate[i - 93] >> fYCenThinPlate[i - 93] >>
68 fZCenThinPlate[i - 93] >> fRotateXAngle[i - 93];
69 continue;
70 }
71
72 if ( i == 107 )
73 {
74 istringstream( temp ) >> fLengthCableTub[0] >> fLengthCableTub[1] >>
75 fLengthCableTub[2] >> fLengthCableTub[3] >> fLengthCableTub[4] >>
76 fLengthCableTub[5] >> fLengthCableTub[6] >> fLengthCableTub[7] >>
77 fLengthCableTub[8] >> fLengthCableTub[9] >> fLengthCableTub[10] >>
78 fLengthCableTub[11] >> fLengthCableTub[12];
79 continue;
80 }
81 if ( i == 109 )
82 {
83 istringstream( temp ) >> fLengthCableTub[13] >> fLengthCableTub[14] >>
84 fLengthCableTub[15] >> fLengthCableTub[16] >> fLengthCableTub[17] >>
85 fLengthCableTub[18] >> fLengthCableTub[19] >> fLengthCableTub[20] >>
86 fLengthCableTub[21] >> fLengthCableTub[22] >> fLengthCableTub[23] >>
87 fLengthCableTub[24];
88 continue;
89 }
90 }
91}
92
93int MyMdcGeomSvc::TotalElecLayerNo() { return fTotalElecLayerNo; }
94int MyMdcGeomSvc::Layerr( int n ) { return fLayerr[n]; }
95int MyMdcGeomSvc::ElecNo( int n ) { return fElecNo[n]; }
96double MyMdcGeomSvc::X( int n ) { return fX[n]; }
97double MyMdcGeomSvc::Y( int n ) { return fY[n]; }
98double MyMdcGeomSvc::Z( int n ) { return fZ[n]; }
99double MyMdcGeomSvc::R( int n ) { return fR[n]; }
100double MyMdcGeomSvc::BoxInStep( int n ) { return fBoxInStep[n]; }
101double MyMdcGeomSvc::BoxEndcape( int n ) { return fBoxEndcape[n]; }
102double MyMdcGeomSvc::LengthCableTub( int n ) { return fLengthCableTub[n]; }
103double MyMdcGeomSvc::InnerRCableFrame( int n ) { return fInnerRCableFrame[n]; }
104double MyMdcGeomSvc::OuterRCableFrame( int n ) { return fOuterRCableFrame[n]; }
105double MyMdcGeomSvc::LengthCableFrame( int n ) { return fLengthCableFrame[n]; }
106double MyMdcGeomSvc::ZCableFrame( int n ) { return fZCableFrame[n]; }
107
108double MyMdcGeomSvc::ThinPlate( int n ) { return fThinPlate[n]; }
109double MyMdcGeomSvc::XCenThinPlate( int n ) { return fXCenThinPlate[n]; }
110double MyMdcGeomSvc::YCenThinPlate( int n ) { return fYCenThinPlate[n]; }
111double MyMdcGeomSvc::ZCenThinPlate( int n ) { return fZCenThinPlate[n]; }
112double MyMdcGeomSvc::RotateXAngle( int n ) { return fRotateXAngle[n]; }
113
114double MyMdcGeomSvc::FixRing( int n ) { return fFixRing[n]; }
const Int_t n
double R(int n)
double BoxInStep(int n)
double BoxEndcape(int n)
int Layerr(int n)
int ElecNo(int n)
double OuterRCableFrame(int n)
double Y(int n)
double FixRing(int n)
double InnerRCableFrame(int n)
double LengthCableFrame(int n)
double LengthCableTub(int n)
double Z(int n)
int TotalElecLayerNo()
double XCenThinPlate(int n)
double YCenThinPlate(int n)
double ZCenThinPlate(int n)
double RotateXAngle(int n)
double X(int n)
double ThinPlate(int n)
double ZCableFrame(int n)
void ReadFilePar()