15 #pragma clang diagnostic push    16 #pragma clang diagnostic ignored "-Wkeyword-macro"    18 #define class class GAUDI_API    20 #pragma clang diagnostic pop    22 #include "AIDA/IAxis.h"    23 #include "AIDA/IHistogram1D.h"    38 #include "boost/format.hpp"    52   const std::string s_histoFormatStat = 
"| %2$-45.45s | %3$=7d |%8$11.5g | %10$-11.5g|%12$11.5g |%14$11.5g |";
    55   const std::string s_histoFormatStatOnly = 
"| %3$=7d |%8$11.5g | %10$-11.5g|%12$11.5g |%14$11.5g |";
    59       "| %3$=7d |%8$9.3g+-%9$-9.3g|%10$9.3g+-%11$-9.3g|%12$9.3g+-%13$-9.3g|%14$9.3g+-%15$-9.3g|";
    64   const std::string s_histoFormatShapeOnly = 
"|%8$11.5g |%10$11.5g |%12$11.5g |%14$11.5g |%19$11.5g/%21$-11.5g|";
    70   const std::string s_histoFormatShape = 
"|%8$9.3g+-%9$-9.3g|%10$9.3g+-%11$-9.3g|%12$9.3g+-%13$-9.3g|%14$9.3g+-%15$-9."    71                                          "3g|%19$9.3g+-%20$-9.3g|%21$9.3g+-%22$-9.3g|";
    75       " %2$-45.45s mean/sigma/skew/kurtosis = %8$10.4g/%10$10.4g/%12$10.4g/%14$10.4g";
    78   const std::string s_histoFormatLineOnly = 
" mean/sigma/skew/kurtosis = %8$10.4g/%10$10.4g/%12$10.4g/%14$10.4g";
    81   const std::string s_histoFormatOld = 
" %2$-45.45s    Ents/All=%7$5s/%3$5s<X>/sX=%8$.5g/%10$-.5g";
    84   const std::string s_histoFormatPathTitle = 
"| %1$-45.45s | %2$-45.45s | ";
    87   const std::string s_histoFormatFull = 
"| %1$-45.45s | %2$-45.45s | %3$=7d |%4$5d/%5$-5d|%6$9.3g | "    88                                         "%7$-9.3g|%8$9.3g+-%9$-9.3g|%10$9.3g+-%11$-9.3g|%12$9.3g+-%13$-9.3g|%14$9.3g+-%"    91   const std::string s_histoFormatFullStat = 
"| %3$=7d |%4$5d/%5$-5d|%6$9.3g | "    92                                             "%7$-9.3g|%8$9.3g+-%9$-9.3g|%10$9.3g+-%11$-9.3g|%12$9.3g+-%13$-9.3g|%14$9."    99       "|   Title                                       |    #    |     Mean   |    RMS     |  Skewness  |  Kurtosis  |";
   102   const std::string s_histoFormatStatOnlyHeader = 
"|    #    |     Mean   |    RMS     |  Skewness  |  Kurtosis  |";
   106       "|    #    |     Mean+-Error    |      RMS+-Error    | Skewness+-Error    | Kurtosis+-Error    |";
   110       "|     Mean   |    RMS     |  Skewness  |  Kurtosis  | Underflow%/Overflow%  |";
   113   const std::string s_histoFormatShapeHeader = 
"|        Mean        |         RMS        |      Skewness      |     "   114                                                "Kurtosis       |    Underflow [%]   |    Overflow [%]    |";
   117   const std::string s_histoFormatLineTitleHeader = 
"  Title ";
   120   const std::string s_histoFormatLineOnlyHeader = 
"";
   127       "| Path in Histogram Data Store   |  Title                         | ";
   130   const std::string s_histoFormatFullHeader = 
"| Path in Histogram Data Store   |  Title                         |    "   131                                               "#    |Udflw/Ovflw|    nEff  | Sum      |     Mean+-Error    |      "   132                                               "RMS+-Error    | Skewness+-Error    | Kurtosis+-Error    |";
   135   const std::string s_histoFormatFullStatHeader = 
"|    #    |Udflw/Ovflw|    nEff  | Sum      |     Mean+-Error    |  "   136                                                   "    RMS+-Error    | Skewness+-Error    | Kurtosis+-Error    |";
   146     return s_histoFormatOld;
   148     return s_histoFormatFull;
   150     return s_histoFormatFullStat;
   152     return s_histoFormatStat;
   154     return s_histoFormatStatOnly;
   156     return s_histoFormatStat1;
   158     return s_histoFormatShapeOnly;
   160     return s_histoFormatShape;
   162     return s_histoFormatLineTitle;
   164     return s_histoFormatLineOnly;
   166     return s_histoFormatPathTitle;
   171   return s_histoFormatStat;
   180     return s_histoFormatOldHeader;
   182     return s_histoFormatFullHeader;
   184     return s_histoFormatFullStatHeader;
   186     return s_histoFormatStatHeader;
   188     return s_histoFormatStat1Header;
   190     return s_histoFormatStatOnlyHeader;
   192     return s_histoFormatShapeOnlyHeader;
   194     return s_histoFormatShapeHeader;
   196     return s_histoFormatLineTitleHeader;
   198     return s_histoFormatLineOnlyHeader;
   200     return s_histoFormatPathTitleHeader;
   204   return s_histoFormatStatHeader;
   219   if ( 0 == registry ) {
   223   std::string::size_type 
n     = _path.
find( 
"/stat/" );
   240   using namespace boost::io;
   243   _fmt.exceptions( all_error_bits ^ ( too_many_args_bit | too_few_args_bit ) );
   245   _fmt % ( 
"\"" + 
path( histo ) + 
"\"" )                
   246       % ( 
"\"" + histo->title() + 
"\"" )                
   247       % histo->allEntries()                             
   248       % histo->binEntries( AIDA::IAxis::UNDERFLOW_BIN ) 
   249       % histo->binEntries( AIDA::IAxis::OVERFLOW_BIN )  
   250       % histo->equivalentBinEntries()                   
   251       % histo->sumBinHeights()                          
   261       % histo->sumAllBinHeights()               
   285   using namespace boost::io;
   288   _fmt.exceptions( all_error_bits ^ ( too_many_args_bit | too_few_args_bit ) );
   300   using namespace boost::io;
   303   _fmt.exceptions( all_error_bits ^ ( too_many_args_bit | too_few_args_bit ) );
 helper namespace to collect useful definitions, types, constants and functions, related to manipulati...
static double underflowIntegralFracErr(const AIDA::IHistogram1D *histo)
the error on fraction of underflow integral 
static double overflowIntegralFracErr(const AIDA::IHistogram1D *histo)
the error on fraction of overflow intergal 
GAUDI_API std::string format(const char *,...)
MsgStream format utility "a la sprintf(...)". 
static double underflowEntriesFrac(const AIDA::IHistogram1D *histo)
the fraction of underflow entries (useful for shape comparison) 
std::string m_header
the table header 
static double rmsErr(const AIDA::IHistogram1D *histo)
get an error in the rms value 
Table(const int ID=0)
constructor from enum 
Small wrapper class for easy manipulation with generic counters and IStatSvc&ICounterSvc interface...
static double underflowIntegralFrac(const AIDA::IHistogram1D *histo)
the fraction of underflow integral (useful for shape comparison) 
GAUDI_API std::string format(const AIDA::IHistogram1D *histo, const std::string &fmt)
Make the string representation of the historgam according to the specified format. 
static double meanErr(const AIDA::IHistogram1D *histo)
get an error in the mean value 
static double overflowIntegralFrac(const AIDA::IHistogram1D *histo)
the fraction of overflow intergal (useful for shape comparison) 
const std::string & header() const 
the table header 
virtual const id_type & identifier() const  =0
Full identifier (or key) 
const std::string & format() const 
the format 
static double overflowEntriesFrac(const AIDA::IHistogram1D *histo)
the fraction of overflow entries (useful for shape comparison) 
The IRegistry represents the entry door to the environment any data object residing in a transient da...
std::string m_footer
the table footer 
static double sumBinHeightErr(const AIDA::IHistogram1D *histo)
get an error in the sum bin height ("in-range integral") 
static double overflowEntriesFracErr(const AIDA::IHistogram1D *histo)
error on fraction of overflow entries (useful for shape comparison) 
GAUDI_API std::string path(const AIDA::IBaseHistogram *aida)
get the path in THS for AIDA histogram 
static double sumAllBinHeightErr(const AIDA::IHistogram1D *histo)
get an error in the sum of all bin height ("integral") 
static double kurtosisErr(const AIDA::IHistogram1D *histo)
get the error in kurtosis for the histogram 
static double skewnessErr(const AIDA::IHistogram1D *histo)
get the error in skewness for the histogram 
static double underflowEntriesFracErr(const AIDA::IHistogram1D *histo)
the error on fraction of underflow entries (useful for shape comparison) 
static double kurtosis(const AIDA::IHistogram1D *histo)
get the kurtosis for the histogram 
A DataObject is the base class of any identifiable object on any data store. 
Helper functions to set/get the application return code. 
std::string m_format
the defautl format 
static double skewness(const AIDA::IHistogram1D *histo)
get the skewness for the histogram 
std::string toString(const AIDA::IHistogram1D *histo) const 
make the string representation according to the default format 
const std::string & footer() const 
the table footer