Go to the source code of this file.
Functions | |
void | getConstants () |
void getConstants | ( | ) |
Definition at line 1 of file getConstants.cxx.
References counter, deljobs::end, genRecEmupikp::i, and ganga-rec::j.
00001 { 00002 gROOT->Reset(); 00003 gROOT->SetStyle("Plain"); 00004 gStyle->SetOptStat(00000); 00005 00006 const unsigned int barScin = 176; 00007 const unsigned int endScin = 96; 00008 const unsigned int barEnd = 2; 00009 00010 const unsigned int crateNum = 2; 00011 const unsigned int crate[crateNum] = { 64, 65 }; 00012 const unsigned int boardNum = 14; 00013 unsigned int board[boardNum]; 00014 for( unsigned int i=0; i<boardNum; i++ ) { 00015 board[i] = i+1; 00016 } 00017 const unsigned int channelNum = 16; 00018 const unsigned int paramNum = 8; 00019 double param[crateNum][boardNum][channelNum][paramNum]; 00020 00021 unsigned int ifee[crateNum][boardNum][channelNum]; 00022 unsigned int icrate[crateNum][boardNum][channelNum]; 00023 unsigned int iboard[crateNum][boardNum][channelNum]; 00024 unsigned int ichannel[crateNum][boardNum][channelNum]; 00025 ifstream inData[crateNum][boardNum]; 00026 char inFile[crateNum][boardNum][1000]; 00027 00028 char kind[10]=".txt"; 00029 // char kind[100]="-Curve.txt"; 00030 00031 ofstream outData1, outData2, outData3; 00032 char outFile1[800], outFile2[800], outFile3[800]; 00033 sprintf( outFile1, "ElecBarEast%s", kind ); 00034 sprintf( outFile2, "ElecBarWest%s", kind ); 00035 sprintf( outFile3, "ElecEndcap%s", kind ); 00036 00037 00038 for( unsigned int i=0; i<crateNum; i++ ) { 00039 for( unsigned int j=0; j<boardNum; j++ ) { 00040 00041 sprintf( inFile[i][j], "/ihepbatch/besd09/sunss/Electronics/09summer/Data/Crate%i/Board%i/Crate%i-Board%i%s", crate[i], board[j], crate[i], board[j],kind ); 00042 cout << inFile[i][j] << endl; 00043 inData[i][j].open( inFile[i][j] ); 00044 for( unsigned int k=0; k<channelNum; k++ ) { 00045 inData[i][j] >> ifee[i][j][k] >> icrate[i][j][k] >> iboard[i][j][k] >> ichannel[i][j][k]; 00046 for( unsigned int l=0; l<paramNum; l++ ) { 00047 inData[i][j] >> param[i][j][k][l]; 00048 } 00049 } 00050 inData[i][j].close(); 00051 } 00052 } 00053 00054 int be[crateNum][boardNum][channelNum]; 00055 int counter[crateNum][boardNum][channelNum]; 00056 int end[crateNum][boardNum][channelNum]; 00057 for( unsigned int i=0; i<crateNum; i++ ) { 00058 for( unsigned int j=0; j<boardNum; j++ ) { 00059 for( unsigned int k=0; k<channelNum; k++ ) { 00060 if( j<3 ) { 00061 be[i][j][k] = 0; 00062 end[i][j][k] = 0; 00063 if( i==0 ) { 00064 if( j==0 ) { 00065 counter[i][j][k] = k; 00066 } 00067 else if( j==1 ) { 00068 if( k<channelNum/2 ) { // 8 00069 counter[i][j][k] = k+channelNum; // 16 00070 } 00071 else { 00072 counter[i][j][k] = k-channelNum/2+48; // 8 00073 } 00074 } 00075 else if( j==2 ) { 00076 counter[i][j][k] = k+channelNum/2+48; // 8 00077 } 00078 } 00079 else if( i==1 ) { 00080 if( j==0 ) { 00081 counter[i][j][k] = k+channelNum+channelNum/2; // 24 00082 } 00083 else if( j==1 ) { 00084 if( k<channelNum/2 ) { // 8 00085 counter[i][j][k] = k+channelNum*2+channelNum/2; // 40 00086 } 00087 else { 00088 counter[i][j][k] = k+channelNum+48; // 16 00089 } 00090 } 00091 else if( j==2 ) { 00092 counter[i][j][k] = k+channelNum*2+48; // 32 00093 } 00094 } 00095 } 00096 else { 00097 be[i][j][k] = 1; 00098 if( (k%2)==0 ) { 00099 end[i][j][k] = 0; // east 00100 } 00101 else { 00102 end[i][j][k] = 1; // west 00103 } 00104 if( i==0 ) { 00105 if( (k%4)<2 ) { 00106 counter[i][j][k] = (j-3)*channelNum/4+k/4; // (j-3)*4+1/4 00107 } 00108 else { 00109 counter[i][j][k] = (j-3)*channelNum/4+k/4+88; // (j-3)*4+1/4 00110 } 00111 } 00112 else if( i==1 ) { 00113 if( (k%4)<2 ) { 00114 counter[i][j][k] = (boardNum-3+j-3)*channelNum/4+k/4; 00115 } 00116 else { 00117 counter[i][j][k] = (boardNum-3+j-3)*channelNum/4+k/4+88; 00118 } 00119 } 00120 } 00121 // cout << i << " " << j << " " << k << " " << be[i][j][k] << " " << counter[i][j][k] << " " << end[i][j][k] << endl; 00122 } 00123 } 00124 } 00125 00126 for( unsigned int i=0; i<crateNum; i++ ) { 00127 for( unsigned int j=0; j<boardNum; j++ ) { 00128 for( unsigned int k=0; k<channelNum; k++ ) { 00129 if( be[i][j][k] == 0 ) { 00130 counter[i][j][k] = counter[i][j][k] - 12; 00131 if( counter[i][j][k]<0 || ( counter[i][j][k]>=36 && counter[i][j][k]<48 ) ) { 00132 counter[i][j][k] = counter[i][j][k] + 48; 00133 } 00134 } 00135 else { 00136 counter[i][j][k] = counter[i][j][k] - 11; 00137 if( counter[i][j][k]<0 || ( counter[i][j][k]>=77 && counter[i][j][k]<88 ) ) { 00138 counter[i][j][k] = counter[i][j][k] + 88; 00139 } 00140 } 00141 // cout << i << " " << j << " " << k << " " << be[i][j][k] << " " << counter[i][j][k] << " " << end[i][j][k] << endl; 00142 } 00143 } 00144 } 00145 00146 00147 for( unsigned int i=0; i<crateNum; i++ ) { 00148 for( unsigned int j=0; j<boardNum; j++ ) { 00149 for( unsigned int k=0; k<channelNum; k++ ) { 00150 if( i==0 ) { 00151 icrate[i][j][k] = 64; 00152 } 00153 else { 00154 icrate[i][j][k] = 65; 00155 } 00156 iboard[i][j][k] = j+1; 00157 ichannel[i][j][k] = k+1; 00158 } 00159 } 00160 } 00161 00162 unsigned int Fee[barScin][barEnd], ecFee[endScin]; 00163 unsigned int Crate[barScin][barEnd], ecCrate[endScin]; 00164 unsigned int Board[barScin][barEnd], ecBoard[endScin]; 00165 unsigned int Channel[barScin][barEnd], ecChannel[endScin]; 00166 double pbeast[barScin][paramNum], pbwest[barScin][paramNum]; 00167 double pendcap[endScin][paramNum],; 00168 for( unsigned int i=0; i<crateNum; i++ ) { 00169 for( unsigned int j=0; j<boardNum; j++ ) { 00170 for( unsigned int k=0; k<channelNum; k++ ) { 00171 if( be[i][j][k]==1 ) { 00172 if( end[i][j][k]==0 ) { 00173 Fee[counter[i][j][k]][0] = ifee[i][j][k]; 00174 Crate[counter[i][j][k]][0] = icrate[i][j][k]; 00175 Board[counter[i][j][k]][0] = iboard[i][j][k]; 00176 Channel[counter[i][j][k]][0] = ichannel[i][j][k]; 00177 for( unsigned int l=0; l<paramNum; l++ ) { 00178 pbeast[counter[i][j][k]][l] = param[i][j][k][l]; 00179 } 00180 } 00181 else{ 00182 Fee[counter[i][j][k]][1] = ifee[i][j][k]; 00183 Crate[counter[i][j][k]][1] = icrate[i][j][k]; 00184 Board[counter[i][j][k]][1] = iboard[i][j][k]; 00185 Channel[counter[i][j][k]][1] = ichannel[i][j][k]; 00186 for( unsigned int l=0; l<paramNum; l++ ) { 00187 pbwest[counter[i][j][k]][l] = param[i][j][k][l]; 00188 } 00189 } 00190 } 00191 else { 00192 ecFee[counter[i][j][k]] = ifee[i][j][k]; 00193 ecCrate[counter[i][j][k]] = icrate[i][j][k]; 00194 ecBoard[counter[i][j][k]] = iboard[i][j][k]; 00195 ecChannel[counter[i][j][k]] = ichannel[i][j][k]; 00196 for( unsigned int l=0; l<paramNum; l++ ) { 00197 pendcap[counter[i][j][k]][l] = param[i][j][k][l]; 00198 } 00199 } 00200 } 00201 } 00202 } 00203 00204 double bRatio[2][barScin], eRatio[endScin]; 00205 ifstream inRatio1, inRatio2, inRatio3; 00206 inRatio1.open( "BEastRatio.txt" ); 00207 inRatio2.open( "BWestRatio.txt" ); 00208 for( unsigned int i=0; i<barScin; i++ ) { 00209 inRatio1 >> bRatio[0][i]; 00210 inRatio2 >> bRatio[1][i]; 00211 } 00212 inRatio1.close(); 00213 inRatio2.close(); 00214 inRatio3.open( "EndRatio.txt" ); 00215 for( unsigned int i=0; i<endScin; i++ ) { 00216 inRatio3 >> eRatio[i]; 00217 } 00218 inRatio3.close(); 00219 00220 outData1.open( outFile1 ); 00221 outData2.open( outFile2 ); 00222 for( unsigned int i=0; i<barScin; i++ ) { 00223 if( paramNum == 8 ) { 00224 outData1 << Fee[i][0] << " " << Crate[i][0] << " " << Board[i][0] << " " << Channel[i][0] << " "; 00225 outData2 << Fee[i][1] << " " << Crate[i][1] << " " << Board[i][1] << " " << Channel[i][1] << " "; 00226 } 00227 outData1 << bRatio[0][i]; 00228 outData2 << bRatio[1][i]; 00229 for( unsigned int l=0; l<paramNum; l++ ) { 00230 outData1 << " " << pbeast[i][l]; 00231 outData2 << " " << pbwest[i][l]; 00232 } 00233 outData1 << endl; 00234 outData2 << endl; 00235 } 00236 outData1.close(); 00237 outData2.close(); 00238 00239 outData3.open( outFile3 ); 00240 for( unsigned int i=0; i<endScin; i++ ) { 00241 if( paramNum == 8 ) { 00242 outData3 << ecFee[i] << " " << ecCrate[i] << " " << ecBoard[i] << " " << ecChannel[i] << " "; 00243 } 00244 outData3 << eRatio[i]; 00245 for( unsigned int l=0; l<paramNum; l++ ) { 00246 outData3 << " " << pendcap[i][l]; 00247 } 00248 outData3 << endl; 00249 } 00250 outData3.close(); 00251 00252 return; 00253 }