emcRejectList_to_tex.C

Go to the documentation of this file.
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 }