581{
582
583
584
585
586 for(
int i = 0;
i < 4;
i++ ){
587 for( int j = 0; j < 2; j++ ){
588 for(
int k = 0;
k < 16;
k++ ){
589 for(
int m = 0;
m < 32;
m++ ){
592 }
593 }
594 }
595 }
596
597 ofstream febCorrfile;
598 string name =
"FEB_Corr_" + nrun +
".txt";
599 febCorrfile.open(
name.c_str(), ios::out );
600
601 string name2 = "FEB_time_fitMean_"+nrun+".txt";
602 ifstream
f( name2.c_str(), ios::in );
603
604 if( f ){
607 double n5, n6;
608
609 f >>
n1 >> n2 >> n3 >> n4 >> n5 >> n6;
610 if (n1 < 0 || n1 >= 4 ||
611 n2 < 0 || n2 >= 2 ||
612 n3 < 0 || n3 >= 32 ||
613 n4 < 0 || n4 >= 16)
614 {
615 cerr <<
"Bad line from timing file " <<
n1 <<
" " << n2 <<
" " << n3 <<
" " << n4 << endl;
616 continue;
617 }
618
619 if(
f.good() && !
f.bad() && !
f.fail() ){
622 }
623 }
624 }
625
627
628 string HECFEBID[48] = {"0x3a1a0000", "0x3a520000", "0x3a820000", "0x3ab20000", "0x3a1a8000", "0x3a528000", "0x3a828000", "0x3ab28000", "0x3a1b0000", "0x3a530000", "0x3a830000", "0x3ab30000", "0x3a1b8000", "0x3a538000", "0x3a838000", "0x3ab38000", "0x3a1c0000", "0x3a540000", "0x3a840000", "0x3ab40000", "0x3a1c8000", "0x3a548000", "0x3a848000", "0x3ab48000", "0x3b1a0000", "0x3b520000", "0x3b820000", "0x3bb20000", "0x3b1a8000", "0x3b528000", "0x3b828000", "0x3bb28000", "0x3b1b0000", "0x3b530000", "0x3b830000", "0x3bb30000", "0x3b1b8000", "0x3b538000", "0x3b838000", "0x3bb38000", "0x3b1c0000", "0x3b540000", "0x3b840000", "0x3bb40000", "0x3b1c8000", "0x3b548000", "0x3b848000", "0x3bb48000" };
629 string FCALFEBID[28] = {"0x3a300000", "0x3a308000", "0x3a310000", "0x3a318000", "0x3a320000", "0x3a328000", "0x3a330000", "0x3a340000", "0x3a348000", "0x3a350000", "0x3a358000", "0x3a360000", "0x3a368000", "0x3a370000", "0x3b300000", "0x3b308000", "0x3b310000", "0x3b318000", "0x3b320000", "0x3b328000", "0x3b330000", "0x3b340000", "0x3b348000", "0x3b350000", "0x3b358000", "0x3b360000", "0x3b368000", "0x3b370000" };
630
631 ofstream corrfile;
632 string nameid = "FEB_Corr_FEBID_" + nrun + ".txt";
633 corrfile.open( nameid.c_str(), ios::out );
634
636 for(
int i = 0;
i < 4;
i++ ){
638 for( int j = 0; j < 2; j++ ){
639 for(
int k = 0;
k < 16;
k++ ){
640 for(
int m = 0;
m < 32;
m++ ){
641 if(
param[i][j][m][k] != -99. &&
error[i][j][m][k] != -99.){
642 febCorrfile <<
i <<
" " << j <<
" " <<
k <<
" " <<
m <<
" " <<
param[
i][j][
m][
k] <<
" " <<
error[
i][j][
m][
k] << endl;
643 if( i < 2 )corrfile <<
"0x" << std::hex << (0x38000000|
i<<25|j<<24|
m<<19|(
k-1)<<15) <<
" " << std::dec <<
param[i][j][m][k] << endl;
644 else if( i == 2 )corrfile << HECFEBID[
kk] <<
" " <<
param[
i][j][
m][
k] << endl;
645 else corrfile << FCALFEBID[
kk] <<
" " <<
param[
i][j][
m][
k] << endl;
647 }
648 }
649 }
650 }
651 }
652
653 febCorrfile.close();
654 corrfile.close();
655
656 return;
657
658}
double param[4][2][32][16]
double error[4][2][32][16]