00001 bool emcRejectList_to_tex(const char* outputfile) 00002 { 00003 gSystem->Load("libemcCalib.so"); 00004 gSystem->Load("libemcOMascii"); 00005 00006 emcRejectList rl; 00007 rl.SetSource(emcManageable::kFile_ASCII); 00008 00009 emcDataManager* dm = emcDataManager::GetInstance(); 00010 00011 dm->SetSourceDir("/afs/rhic.bnl.gov/phenix/users/aphecetc/CALIB/Run4/BADNORMT/all"); 00012 00013 PHTimeStamp dummy; 00014 00015 bool ok = dm->Read(rl,dummy); 00016 00017 if (!ok) 00018 { 00019 return false; 00020 } 00021 00022 ofstream os(outputfile); 00023 00024 os << "\\documentclass{article}\n"; 00025 os << "\\usepackage{longtable}\n"; 00026 os << "\\begin{document}\n"; 00027 os << "\\begin{longtable}{"; 00028 00029 size_t nperlines = 4; 00030 00031 for ( size_t i = 0; i < nperlines; ++i ) 00032 { 00033 os << "|c|c|c|"; 00034 } 00035 os << "}\n" 00036 << "\\hline\n"; 00037 00038 for ( size_t i = 0; i < nperlines; ++i ) 00039 { 00040 os << "Sector & iz & iy"; 00041 if ( i < nperlines-1 ) 00042 { 00043 os << " & "; 00044 } 00045 } 00046 os << "\\\\\n\\hline\n"; 00047 00048 size_t n = 1; 00049 00050 for ( size_t i = 0; i < rl.maxsize(); ++i ) 00051 { 00052 if ( rl.nonZero(i) ) 00053 { 00054 int is,iz,iy; 00055 EmcIndexer::decodeTowerId(i,is,iz,iy); 00056 os << " " << EmcIndexer::EmcSectorId(is) << " & " << iz << " & " 00057 << iy; 00058 if ( n % nperlines == 0 ) 00059 { 00060 os << "\\\\\n"; 00061 os << "\\hline\n"; 00062 n=1; 00063 } 00064 else 00065 { 00066 os << " & "; 00067 ++n; 00068 } 00069 } 00070 } 00071 00072 if ( n>1 ) 00073 { 00074 for ( size_t i = n; i < nperlines; ++i ) 00075 { 00076 os << " & "; 00077 } 00078 } 00079 00080 os << "\\\\\n"; 00081 os << "\\hline\n"; 00082 os << "\\end{longtable}\n"; 00083 00084 os << "\\end{document}\n"; 00085 os.close(); 00086 00087 return true; 00088 }