BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
BesPipParameter.cc
Go to the documentation of this file.
1// BOOST --- BESIII Object_Oriented Simulation Tool //
2// Description:
3// Author: Caogf
4// Created: June, 2008
5// Modified:
6// Comment:
7//---------------------------------------------------------------------//
8//$ID: BesPipParameter.cc
9
10#include "BesPipParameter.hh"
11#include "SimUtil/ReadBoostRoot.hh"
12#include <fstream>
13#include <strstream>
14using namespace std;
15
19 G4String GeometryPath = getenv( "BESSIMROOT" );
20 if ( !GeometryPath )
21 {
22 G4cout << "BOOST environment not set!" << G4endl;
23 exit( -1 );
24 }
25 GeometryPath += "/dat/BesPip.txt";
26
27 ifstream fin;
28 fin.open( GeometryPath );
29
30 const int maxCharOfOneLine = 255;
31 char temp[maxCharOfOneLine], *p;
32 int lineNo = 0, inputNo = 0;
33 while ( fin.peek() != EOF )
34 {
35 fin.getline( temp, maxCharOfOneLine );
36 p = temp;
37 lineNo++;
38 while ( *p != '\0' )
39 {
40 if ( *p == '#' )
41 {
42 *p = '\0'; // delete the comments.
43 break;
44 }
45 p++;
46 }
47 p = temp; // reset the pointer to the beginning of the string.
48 while ( *p == ' ' || *p == '\t' ) p++;
49 if ( *p == '\0' ) continue;
50 inputNo++;
51 switch ( inputNo )
52 {
53 case 1: istrstream( p ) >> goldLayer[0] >> goldLayer[1] >> goldLayer[2]; break;
54 case 2: istrstream( p ) >> innerBe[0] >> innerBe[1] >> innerBe[2]; break;
55 case 3: istrstream( p ) >> oilLayer[0] >> oilLayer[1] >> oilLayer[2]; break;
56 case 4: istrstream( p ) >> outerBe[0] >> outerBe[1] >> outerBe[2]; break;
57 case 5:
58 istrstream( p ) >> innerBeSide[0] >> innerBeSide[1] >> innerBeSide[2] >>
59 innerBeSide[3] >> innerBeSide[4];
60 break;
61 case 6:
62 istrstream( p ) >> innerAl[0] >> innerAl[1] >> innerAl[2] >> innerAl[3] >> innerAl[4];
63 break;
64 case 7:
65 istrstream( p ) >> AlRing[0] >> AlRing[1] >> AlRing[2] >> AlRing[3] >> AlRing[4];
66 break;
67 case 8:
68 istrstream( p ) >> outerAl[0] >> outerAl[1] >> outerAl[2] >> outerAl[3] >> outerAl[4];
69 break;
70 case 9:
71 istrstream( p ) >> AgLayer[0] >> AgLayer[1] >> AgLayer[2] >> AgLayer[3] >> AgLayer[4];
72 break;
73 case 10:
74 istrstream( p ) >> CuLayer[0] >> CuLayer[1] >> CuLayer[2] >> CuLayer[3] >> CuLayer[4];
75 break;
76 case 11:
77 istrstream( p ) >> AlCover[0] >> AlCover[1] >> AlCover[2] >> AlCover[3] >> AlCover[4];
78 }
79 }
80}