• Main Page
  • Related Pages
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

roclib/src_nxyter/NxDataSummary.cxx (r4864/r4112)

Go to the documentation of this file.
00001 //============================================================================
00005 //============================================================================
00006 
00007 #include <iostream>
00008 
00009 #include "boost/format.hpp"
00010 
00011 #include "nxyter/NxDataSummary.h"
00012 
00013 using boost::format;
00014 
00021 //----------------------------------------------------------------------------
00023 
00024 nxyter::NxDataSummary::NxDataSummary() :
00025   fNumEntries(128),
00026   fFull(128),
00027   fMedian(128),
00028   fWidth50(128),
00029   fWidth80(128),
00030   fMin(128),
00031   fMax(128)
00032 {
00033 }
00034 
00035 //----------------------------------------------------------------------------
00036 
00037 nxyter::NxDataSummary::~NxDataSummary()
00038 {
00039 }
00040 
00041 //----------------------------------------------------------------------------
00043 
00044 void nxyter::NxDataSummary::clear()
00045 {
00046   for (int ch=0; ch<128; ch++) {
00047     fNumEntries[ch] = 0;
00048     fFull[ch]       = false;
00049     fMedian[ch]     = 0.;
00050     fWidth50[ch]    = 0.;
00051     fWidth80[ch]    = 0.;
00052     fMin[ch]        = 0.;
00053     fMax[ch]        = 0.;
00054   }
00055 }
00056 
00057 //----------------------------------------------------------------------------
00059 
00074 void nxyter::NxDataSummary::analyse(DistFuncArray& dfa)
00075 {
00076   for (int ch=0; ch<128; ch++) {
00077     fNumEntries[ch] = dfa[ch].numEntries();
00078     fFull[ch]       = dfa[ch].full();
00079     fMedian[ch]     = dfa[ch].getMedian();
00080     fWidth50[ch]    = dfa[ch].getWidth(0.25);
00081     fWidth80[ch]    = dfa[ch].getWidth(0.40);
00082     fMin[ch]        = dfa[ch].getMin();
00083     fMax[ch]        = dfa[ch].getMax();
00084   }
00085 }
00086 
00087 //----------------------------------------------------------------------------
00089 
00090 void nxyter::NxDataSummary::print(std::ostream& os, int nxnum) const
00091 {
00092   os << "nx cha   hits   median  w25-75  w10-90   min   max" << std::endl;
00093   int chaseen = 0;
00094   for (int cha=0; cha<128; cha++) {
00095     int nent = numEntries(cha);
00096     if (nent == 0) continue;
00097     chaseen += 1;
00098     float med = getMedian(cha);
00099     float w50 = getWidth50(cha);
00100     float w80 = getWidth80(cha);
00101     float min = getMin(cha);
00102     float max = getMax(cha);
00103     char cpl  = full(cha) ? '+' : ' ';
00104     static format fmt(" %1d %3d %6d%c  %6.1f  %6.1f  %6.1f  %4.0f  %4.0f");
00105     os << fmt % nxnum % cha % nent % cpl % med % w50 % w80 % min % max << std::endl;
00106   }
00107   if (chaseen == 0) {
00108     os << std::dec << nxnum << " ... --- no hits seen for all channels ---" 
00109        << std::endl;
00110   }
00111 }
00112 
00113 //----------------------------------------------------------------------------

Generated on Tue Dec 10 2013 04:52:23 for ROCsoft by  doxygen 1.7.1