3 gROOT->SetStyle(
"Plain" );
4 gStyle->SetOptStat( 00000 );
6 const unsigned int barScin = 176;
7 const unsigned int endScin = 96;
8 const unsigned int barEnd = 2;
10 const unsigned int crateNum = 2;
11 const unsigned int crate[crateNum] = { 64, 65 };
12 const unsigned int boardNum = 14;
13 unsigned int board[boardNum];
14 for (
unsigned int i = 0; i < boardNum; i++ ) { board[i] = i + 1; }
15 const unsigned int channelNum = 16;
16 const unsigned int paramNum = 10;
17 double param[crateNum][boardNum][channelNum][paramNum];
19 unsigned int ifee[crateNum][boardNum][channelNum];
20 unsigned int icrate[crateNum][boardNum][channelNum];
21 unsigned int iboard[crateNum][boardNum][channelNum];
22 unsigned int ichannel[crateNum][boardNum][channelNum];
23 ifstream inData[crateNum][boardNum];
24 char inFile[crateNum][boardNum][1000];
27 char kind[100] =
"-Curve.txt";
29 ofstream outData1, outData2, outData3;
30 char outFile1[800], outFile2[800], outFile3[800];
31 sprintf( outFile1,
"ElecBarEast%s", kind );
32 sprintf( outFile2,
"ElecBarWest%s", kind );
33 sprintf( outFile3,
"ElecEndcap%s", kind );
35 for (
unsigned int i = 0; i < crateNum; i++ )
37 for (
unsigned int j = 0; j < boardNum; j++ )
41 "/ihepbatch/besd09/sunss/Electronics/09summer/Data/Crate%i/Board%i/"
43 crate[i], board[j], crate[i], board[j], kind );
44 cout << inFile[i][j] << endl;
45 inData[i][j].open( inFile[i][j] );
46 for (
unsigned int k = 0; k < channelNum; k++ )
48 inData[i][j] >> ifee[i][j][k] >> icrate[i][j][k] >> iboard[i][j][k] >>
50 for (
unsigned int l = 0; l < paramNum; l++ ) { inData[i][j] >> param[i][j][k][l]; }
56 int be[crateNum][boardNum][channelNum];
57 int counter[crateNum][boardNum][channelNum];
58 int end[crateNum][boardNum][channelNum];
59 for (
unsigned int i = 0; i < crateNum; i++ )
61 for (
unsigned int j = 0; j < boardNum; j++ )
63 for (
unsigned int k = 0; k < channelNum; k++ )
71 if ( j == 0 ) { counter[i][j][k] = k; }
74 if ( k < channelNum / 2 )
76 counter[i][j][k] = k + channelNum;
80 counter[i][j][k] = k - channelNum / 2 + 48;
85 counter[i][j][k] = k + channelNum / 2 + 48;
92 counter[i][j][k] = k + channelNum + channelNum / 2;
96 if ( k < channelNum / 2 )
98 counter[i][j][k] = k + channelNum * 2 + channelNum / 2;
102 counter[i][j][k] = k + channelNum + 48;
107 counter[i][j][k] = k + channelNum * 2 + 48;
114 if ( ( k % 2 ) == 0 )
126 counter[i][j][k] = ( j - 3 ) * channelNum / 4 + k / 4;
130 counter[i][j][k] = ( j - 3 ) * channelNum / 4 + k / 4 + 88;
136 { counter[i][j][k] = ( boardNum - 3 + j - 3 ) * channelNum / 4 + k / 4; }
137 else { counter[i][j][k] = ( boardNum - 3 + j - 3 ) * channelNum / 4 + k / 4 + 88; }
146 for (
unsigned int i = 0; i < crateNum; i++ )
148 for (
unsigned int j = 0; j < boardNum; j++ )
150 for (
unsigned int k = 0; k < channelNum; k++ )
152 if ( be[i][j][k] == 0 )
154 counter[i][j][k] = counter[i][j][k] - 12;
155 if ( counter[i][j][k] < 0 || ( counter[i][j][k] >= 36 && counter[i][j][k] < 48 ) )
156 { counter[i][j][k] = counter[i][j][k] + 48; }
160 counter[i][j][k] = counter[i][j][k] - 11;
161 if ( counter[i][j][k] < 0 || ( counter[i][j][k] >= 77 && counter[i][j][k] < 88 ) )
162 { counter[i][j][k] = counter[i][j][k] + 88; }
170 for (
unsigned int i = 0; i < crateNum; i++ )
172 for (
unsigned int j = 0; j < boardNum; j++ )
174 for (
unsigned int k = 0; k < channelNum; k++ )
176 if ( i == 0 ) { icrate[i][j][k] = 64; }
177 else { icrate[i][j][k] = 65; }
178 iboard[i][j][k] = j + 1;
179 ichannel[i][j][k] = k + 1;
184 unsigned int Fee[barScin][barEnd], ecFee[endScin];
185 unsigned int Crate[barScin][barEnd], ecCrate[endScin];
186 unsigned int Board[barScin][barEnd], ecBoard[endScin];
187 unsigned int Channel[barScin][barEnd], ecChannel[endScin];
188 double pbeast[barScin][paramNum], pbwest[barScin][paramNum];
189 double pendcap[endScin][paramNum], ;
190 for (
unsigned int i = 0; i < crateNum; i++ )
192 for (
unsigned int j = 0; j < boardNum; j++ )
194 for (
unsigned int k = 0; k < channelNum; k++ )
196 if ( be[i][j][k] == 1 )
198 if ( end[i][j][k] == 0 )
200 Fee[counter[i][j][k]][0] = ifee[i][j][k];
201 Crate[counter[i][j][k]][0] = icrate[i][j][k];
202 Board[counter[i][j][k]][0] = iboard[i][j][k];
203 Channel[counter[i][j][k]][0] = ichannel[i][j][k];
204 for (
unsigned int l = 0; l < paramNum; l++ )
205 { pbeast[counter[i][j][k]][l] = param[i][j][k][l]; }
209 Fee[counter[i][j][k]][1] = ifee[i][j][k];
210 Crate[counter[i][j][k]][1] = icrate[i][j][k];
211 Board[counter[i][j][k]][1] = iboard[i][j][k];
212 Channel[counter[i][j][k]][1] = ichannel[i][j][k];
213 for (
unsigned int l = 0; l < paramNum; l++ )
214 { pbwest[counter[i][j][k]][l] = param[i][j][k][l]; }
219 ecFee[counter[i][j][k]] = ifee[i][j][k];
220 ecCrate[counter[i][j][k]] = icrate[i][j][k];
221 ecBoard[counter[i][j][k]] = iboard[i][j][k];
222 ecChannel[counter[i][j][k]] = ichannel[i][j][k];
223 for (
unsigned int l = 0; l < paramNum; l++ )
224 { pendcap[counter[i][j][k]][l] = param[i][j][k][l]; }
230 double bRatio[2][barScin], eRatio[endScin];
231 ifstream inRatio1, inRatio2, inRatio3;
232 inRatio1.open(
"BEastSimRatio.txt" );
233 inRatio2.open(
"BWestSimRatio.txt" );
234 for (
unsigned int i = 0; i < barScin; i++ )
236 inRatio1 >> bRatio[0][i];
237 inRatio2 >> bRatio[1][i];
241 inRatio3.open(
"EndSimRatio.txt" );
242 for (
unsigned int i = 0; i < endScin; i++ ) { inRatio3 >> eRatio[i]; }
245 outData1.open( outFile1 );
246 outData2.open( outFile2 );
247 for (
unsigned int i = 0; i < barScin; i++ )
251 outData1 << Fee[i][0] <<
" " << Crate[i][0] <<
" " << Board[i][0] <<
" " << Channel[i][0]
253 outData2 << Fee[i][1] <<
" " << Crate[i][1] <<
" " << Board[i][1] <<
" " << Channel[i][1]
256 outData1 << bRatio[0][i];
257 outData2 << bRatio[1][i];
258 for (
unsigned int l = 0; l < paramNum; l++ )
260 outData1 <<
" " << pbeast[i][l];
261 outData2 <<
" " << pbwest[i][l];
269 outData3.open( outFile3 );
270 for (
unsigned int i = 0; i < endScin; i++ )
274 outData3 << ecFee[i] <<
" " << ecCrate[i] <<
" " << ecBoard[i] <<
" " << ecChannel[i]
277 outData3 << eRatio[i];
278 for (
unsigned int l = 0; l < paramNum; l++ ) { outData3 <<
" " << pendcap[i][l]; }