| # Gaudi Framework, version v21r9 |

Home |  | Generated: 3 May 2010

# Gaudi::Utils::Histos Namespace Reference

Collection of useful utilities for manipulations with AIDA hisgograms. More...

## Classes
class | Table
| Simple class for the customizeble printout of the histogram tables. More...
## Namespaces
namespace | Formats
| The 15 format fields are predefined now:.

## Functions
GAUDI_API void | fill (AIDA::IHistogram1D *histo, const double value, const double weight=1.0)
| simple function to fill AIDA::IHistogram1D objects
GAUDI_API void | fill (AIDA::IHistogram2D *histo, const double valueX, const double valueY, const double weight=1.0)
| simple function to fill AIDA::IHistogram2D objects
GAUDI_API void | fill (AIDA::IHistogram3D *histo, const double valueX, const double valueY, const double valueZ, const double weight=1.0)
| simple function to fill AIDA::IHistogram3D objects
GAUDI_API void | fill (AIDA::IProfile1D *histo, const double valueX, const double valueY, const double weight=1.0)
| simple function to fill AIDA::IProfile1D objects
GAUDI_API void | fill (AIDA::IProfile2D *histo, const double valueX, const double valueY, const double valueZ, const double weight=1.0)
| simple function to fill AIDA::IProfile2D objects
GAUDI_API std::string | htitle (const AIDA::IBaseHistogram *histo, const std::string &title="")
| get the title
GAUDI_API std::string | htitle (const AIDA::IHistogram *histo, const std::string &title="")
| get the title
GAUDI_API std::string | htitle (const AIDA::IHistogram1D *histo, const std::string &title="")
| get the title
GAUDI_API std::string | htitle (const AIDA::IHistogram2D *histo, const std::string &title="")
| get the title
GAUDI_API std::string | htitle (const AIDA::IHistogram3D *histo, const std::string &title="")
| get the title
GAUDI_API std::string | htitle (const AIDA::IProfile *histo, const std::string &title="")
| get the title
GAUDI_API std::string | htitle (const AIDA::IProfile1D *histo, const std::string &title="")
| get the title
GAUDI_API std::string | htitle (const AIDA::IProfile2D *histo, const std::string &title="")
| get the title
GAUDI_API AIDA::IBaseHistogram * | toBase (AIDA::IHistogram1D *histo)
GAUDI_API AIDA::IBaseHistogram * | toBase (AIDA::IHistogram2D *histo)
GAUDI_API AIDA::IBaseHistogram * | toBase (AIDA::IHistogram3D *histo)
GAUDI_API AIDA::IBaseHistogram * | toBase (AIDA::IProfile1D *histo)
GAUDI_API AIDA::IBaseHistogram * | toBase (AIDA::IProfile2D *histo)
GAUDI_API std::ostream & | histoDump_ (const AIDA::IHistogram1D *histo, std::ostream &stream, const std::size_t width=80, const std::size_t height=50, const bool errors=false)
| dump the text representation of the histogram
GAUDI_API std::string | histoDump (const AIDA::IHistogram1D *histo, const std::size_t width=80, const std::size_t height=50, const bool errors=false)
| dump the text representation of the histogram
GAUDI_API std::ostream & | histoDump_ (const AIDA::IProfile1D *histo, std::ostream &stream, const std::size_t width=80, const std::size_t height=50, const bool spread=true)
| dump the text representation of 1D-profile
GAUDI_API std::string | histoDump (const AIDA::IProfile1D *histo, const std::size_t width=80, const std::size_t height=50, const bool spread=true)
| dump the text representation of the 1D-profile
GAUDI_API std::ostream & | histoDump_ (const TProfile *histo, std::ostream &stream, const std::size_t width=80, const std::size_t height=50)
| dump the text representation of the Profile
GAUDI_API std::string | histoDump (const TProfile *histo, const std::size_t width=80, const std::size_t height=50)
| dump the text representation of the histogram
GAUDI_API std::ostream & | histoDump_ (const TH1 *histo, std::ostream &stream, const std::size_t width=80, const std::size_t height=50, const bool errors=false)
| dump the text representation of the histogram
GAUDI_API std::string | histoDump (const TH1 *histo, const std::size_t width=80, const std::size_t height=50, const bool errors=false)
| dump the text representation of the histogram
GAUDI_API std::string | path (const AIDA::IBaseHistogram *aida)
| get the path in THS for AIDA histogram
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.
GAUDI_API std::string | format (const AIDA::IHistogram1D *histo, const std::string &ID, const std::string &fmt1, const std::string &fmt2)
| format a full row in table, including ID, label, path or any other "extra" identifier in string form
template<class HISTO, class STREAM, class TERMINATOR>
STREAM & | printList (HISTO first, HISTO last, const std::string &fmt, STREAM &stream, TERMINATOR term)
| print the simple sequence (list-like) of histograms as table
template<class LIST, class STREAM, class TERMINATOR>
STREAM & | printList (const LIST &histos, const std::string &fmt, STREAM &stream, TERMINATOR term)
| print the simple container of histograms as table
template<class HISTO, class STREAM, class TERMINATOR>
STREAM & | printMap (HISTO begin, HISTO end, const std::string &fmt1, const std::string &fmt2, STREAM &stream, TERMINATOR term)
| Print the "associative sequence" (e.g.
template<class MAP, class STREAM, class TERMINATOR>
STREAM & | printMap (const MAP &histos, const std::string &fmt1, const std::string &fmt2, STREAM &stream, TERMINATOR term)
| Print the "associative sequence" (e.g.
GAUDI_API std::string | format (const std::string &val1, const std::string &val2, const std::string &fmt)
| helper method to merge the headers for short format table

## Detailed Description

Collection of useful utilities for manipulations with AIDA hisgograms.

Author:
  Vanya BELYAEV ibelyaev@physics.syr.edu

Date:
  2007-08-08

## Function Documentation

void Gaudi::Utils::Histos::fill | ( | AIDA::IProfile2D * | histo,
|  | const double | valueX,
|  | const double | valueY,
|  | const double | valueZ,
|  | const double | weight = `1.0` |
| ) |  |  |

simple function to fill AIDA::IProfile2D objects

See also:
  AIDA::IProfile2D

Parameters:

  | histo | pointer to the histogram
  | valueX | value to be added to the histogram
  | valueY | value to be added to the histogram
  | valueZ | value to be added to the histogram
  | weight | the "weight" assciated with this entry

Author:
  Vanya BELYAEV ibelyaev@physics.syr.edu

Date:
  2007-10-02

Definition at line 115 of file Fill.cpp.

    00120 {
    00121   if ( 0 != histo ) { histo -> fill ( valueX , valueY , valueZ , weight ) ; }
    00122 }

void Gaudi::Utils::Histos::fill | ( | AIDA::IProfile1D * | histo,
|  | const double | valueX,
|  | const double | valueY,
|  | const double | weight = `1.0` |
| ) |  |  |

simple function to fill AIDA::IProfile1D objects

See also:
  AIDA::IProfile1D

Parameters:

  | histo | pointer to the histogram
  | valueX | value to be added to the histogram
  | valueY | value to be added to the histogram
  | weight | the "weight" assciated with this entry

Author:
  Vanya BELYAEV ibelyaev@physics.syr.edu

Date:
  2007-10-02

Definition at line 95 of file Fill.cpp.

    00099 {
    00100   if ( 0 != histo ) { histo -> fill ( valueX , valueY , weight ) ; }
    00101 }

void Gaudi::Utils::Histos::fill | ( | AIDA::IHistogram3D * | histo,
|  | const double | valueX,
|  | const double | valueY,
|  | const double | valueZ,
|  | const double | weight = `1.0` |
| ) |  |  |

simple function to fill AIDA::IHistogram3D objects

See also:
  AIDA::IHistogram3D

Parameters:

  | histo | pointer to the histogram
  | valueX | value to be added to the histogram
  | valueY | value to be added to the histogram
  | valueZ | value to be added to the histogram
  | weight | the "weight" assciated with this entry

Author:
  Vanya BELYAEV ibelyaev@physics.syr.edu

Date:
  2007-10-02

Definition at line 75 of file Fill.cpp.

    00080 {
    00081   if ( 0 != histo ) { histo -> fill ( valueX , valueY , valueZ , weight ) ; }
    00082 }

void Gaudi::Utils::Histos::fill | ( | AIDA::IHistogram2D * | histo,
|  | const double | valueX,
|  | const double | valueY,
|  | const double | weight = `1.0` |
| ) |  |  |

simple function to fill AIDA::IHistogram2D objects

See also:
  AIDA::IHistogram2D

Parameters:

  | histo | pointer to the histogram
  | valueX | value to be added to the histogram
  | valueY | value to be added to the histogram
  | weight | the "weight" assciated with this entry

Author:
  Vanya BELYAEV ibelyaev@physics.syr.edu

Date:
  2007-10-02

Definition at line 55 of file Fill.cpp.

    00059 {
    00060   if ( 0 != histo ) { histo -> fill ( valueX , valueY , weight ) ; }
    00061 }

void Gaudi::Utils::Histos::fill | ( | AIDA::IHistogram1D * | histo,
|  | const double | value,
|  | const double | weight = `1.0` |
| ) |  |  |

simple function to fill AIDA::IHistogram1D objects

See also:
  AIDA::IHistogram1D

Parameters:

  | histo | pointer to the histogram
  | value | value to be added to the histogram
  | weight | the "weight" assciated with this entry

Author:
  Vanya BELYAEV ibelyaev@physics.syr.edu

Date:
  2007-10-02

Definition at line 37 of file Fill.cpp.

    00040 {
    00041   if ( 0 != histo ) { histo->fill ( value , weight ) ; }
    00042 }

std::string Gaudi::Utils::Histos::format | ( | const std::string & | val1,
|  | const std::string & | val2,
|  | const std::string & | fmt |
| ) |  |  |

helper method to merge the headers for short format table

Author:
  Vanya BELYAEV ibelyaev@physics.syr.edu

Date:
  2007-08-07

Definition at line 272 of file HistoTableFormat.cpp.

    00275 {
    00276   using namespace boost::io ;
    00277   boost::format _fmt ( fmt ) ;
    00278   // allow various number of arguments
    00279   _fmt.exceptions ( all_error_bits ^ ( too_many_args_bit | too_few_args_bit ) ) ;
    00280   //
    00281   _fmt
    00282     % val1   // format ID
    00283     % val2 ; // format the histogram
    00284   //
    00285   return _fmt.str() ;
    00286 }

std::string Gaudi::Utils::Histos::format | ( | const AIDA::IHistogram1D * | histo,
|  | const std::string & | ID,
|  | const std::string & | fmt1,
|  | const std::string & | fmt2 |
| ) |  |  |

format a full row in table, including ID, label, path or any other "extra" identifier in string form

      using namespace Gaudi::Utils::Histos
      const AIDA::IHistogram1D* histo = ... ;

      // define short format
      const std::string fmt1 = " |%1$-30.30s %|33t| %2" ;

      // define format for the histogram
      const std::string fmt2 = ... ;

      info () <<
            format   ( "My Histo" , histo , fmt1 , fmt2 )
              << endmsg ;

Parameters:

  | histo | pointer to the histogram
  | ID | historgam ID, title, label or other extra information
  | fmt1 | "short" format used for the table
  | fmt2 | format used for the histogram printout

Returns:
  formatted row

Author:
  Vanya BELYAEV ibelyaev@physics.syr.edu

Date:
  2007-08-08

Definition at line 252 of file HistoTableFormat.cpp.

    00256 {
    00257   using namespace boost::io ;
    00258   boost::format _fmt ( fmt1 ) ;
    00259   // allow various number of arguments
    00260   _fmt.exceptions ( all_error_bits ^ ( too_many_args_bit | too_few_args_bit ) ) ;
    00261   //
    00262   _fmt
    00263     % ID                         // format ID
    00264     % format ( histo , fmt2 )  ; // format the histogram
    00265   //
    00266   return _fmt.str() ;
    00267 }

std::string Gaudi::Utils::Histos::format | ( | const AIDA::IHistogram1D * | histo,
|  | const std::string & | fmt |
| ) |  |  |

Make the string representation of the historgam according to the specified format.

The method could be used to access/print various quantities

      using namespace Gaudi::Utils::Histos ;

      const AIDA::IHistogram1D* histo = ... ;

      // print title in a free format:
      std::cout << format   ( histo , "%2%" ) << std::endl ;

      // print the path in HTS in a free format:
      std::cout << format   ( histo , " path in HTS: %1% " ) << std::endl ;

      // print the formatted nEntries/Overflow/Underflow:
      std::cout <<
         format   ( histo , " #nEntries/Overflow/Underflow=%3%/%4%/%5%" )
                << std::endl ;

      // print the formatted Mean+-ErrorMean:
      std::cout <<
         format   ( histo , " Mean+-Error=(%8%+-%9%)" )
                << std::endl ;

      // print the skewness and kurtosis:
      std::cout <<
         format   ( histo , " Skewness/Kurtosis=%12%/%14% " )
                << std::endl ;

Parameters:

  | histo | reference to the histogram
  | fmt | the printout format

Author:
  Vanya BELYAEV ibelyaev@physics.syr.edu

Date:
  2007-08-08

Definition at line 203 of file HistoTableFormat.cpp.

    00205 {
    00206   if ( 0 == histo ) { return "<NULL>" ; }
    00207   using namespace Gaudi::Utils ;
    00208   using namespace boost::io ;
    00209   boost::format _fmt ( fmt ) ;
    00210   // allow various number of arguments
    00211   _fmt.exceptions ( all_error_bits ^ ( too_many_args_bit | too_few_args_bit ) ) ;
    00212
    00213   _fmt
    00214     % ( "\"" + path ( histo )    + "\"" )   //  1) histogram path
    00215     % ( "\"" + histo -> title () + "\"" )   //  2) title
    00216     % histo -> allEntries            ()     //  3) # entries
    00217     % histo -> binEntries ( AIDA::IAxis::UNDERFLOW_BIN ) // 4) # underflow
    00218     % histo -> binEntries ( AIDA::IAxis::OVERFLOW_BIN  ) // 5) # overflow
    00219     % histo -> equivalentBinEntries  ()     //  6) equivalent entries
    00220     % histo -> sumBinHeights         ()     //  7) integral
    00221     % histo -> mean                  ()     //  8) mean value
    00222     % HistoStats:: meanErr    ( histo )     //  9) error in mean
    00223     % histo -> rms                   ()     // 10) rms
    00224     % HistoStats::rmsErr      ( histo )     // 11) error in rms
    00225     % HistoStats::skewness    ( histo )     // 12) skewness
    00226     % HistoStats::skewnessErr ( histo )     // 13) error in skewness
    00227     % HistoStats::kurtosis    ( histo )     // 14) kurtosis
    00228     % HistoStats::kurtosisErr ( histo )     // 15) error in kurtosis
    00229     //
    00230     % histo -> sumAllBinHeights      ()     // 16) full integral (in and out range)
    00231     % HistoStats::sumAllBinHeightErr ( histo ) // 17) error on 16
    00232     % HistoStats::sumBinHeightErr    ( histo ) // 18) error on  7
    00233     //
    00234     % ( 100 * HistoStats::underflowEntriesFrac     ( histo ) ) // 19) fraction of underflow entries
    00235     % ( 100 * HistoStats::underflowEntriesFracErr  ( histo ) ) // 20) error on 19
    00236     % ( 100 * HistoStats::overflowEntriesFrac      ( histo ) ) // 21) fraction of overflow entries
    00237     % ( 100 * HistoStats::overflowEntriesFracErr   ( histo ) ) // 22) error on 21
    00238     //
    00239     % HistoStats::underflowIntegralFrac    ( histo ) // 23) fraction of underflow integral
    00240     % HistoStats::underflowIntegralFracErr ( histo ) // 24) error on 23
    00241     % HistoStats::overflowIntegralFrac     ( histo ) // 25) fraction of overflow intergal
    00242     % HistoStats::overflowIntegralFracErr  ( histo ) ; // 26) error on 25
    00243   //
    00244   return _fmt.str() ;
    00245 }

std::string Gaudi::Utils::Histos::histoDump | ( | const TH1 * | histo,
|  | const std::size_t | width = `80`,
|  | const std::size_t | height = `50`,
|  | const bool | errors = `false` |
| ) |  |  |

dump the text representation of the histogram

Parameters:

  | histo | (INPUT) the histogram
  | width | (INPUT) the maximal column width
  | height | (INPUT) the propsoed coulmn height
  | erorrs | (INPUT) print/plot errors

Returns:
  string representation of the histogram

Author:
  Vanya BELYAEV Ivan.Belyaev@nikhef.nl

Date:
  2009-09-19

Definition at line 950 of file HistoDump.cpp.

    00954 {
    00955   std::ostringstream stream ;
    00956   histoDump_ ( histo , stream , width , height , errors );
    00957   return stream.str() ;
    00958 }

std::string Gaudi::Utils::Histos::histoDump | ( | const TProfile * | histo,
|  | const std::size_t | width = `80`,
|  | const std::size_t | height = `50` |
| ) |  |  |

dump the text representation of the histogram

Parameters:

  | histo | (INPUT) the histogram
  | width | (INPUT) the maximal column width
  | height | (INPUT) the propsoed coulmn height
  | erorrs | (INPUT) print/plot errors

Returns:
  string representation of the histogram

Author:
  Vanya BELYAEV Ivan.Belyaev@nikhef.nl

Date:
  2009-09-19

Definition at line 970 of file HistoDump.cpp.

    00973 {
    00974   std::ostringstream stream ;
    00975   histoDump_ ( histo , stream , width , height );
    00976   return stream.str() ;
    00977 }

std::string Gaudi::Utils::Histos::histoDump | ( | const AIDA::IProfile1D * | histo,
|  | const std::size_t | width = `80`,
|  | const std::size_t | height = `50`,
|  | const bool | spread = `true` |
| ) |  |  |

dump the text representation of the 1D-profile

Parameters:

  | histo | (INPUT) the histogram
  | width | (INPUT) the maximal column width
  | height | (INPUT) the proposed column height
  | spread | (INPUT) print/plto spread vs rms

Returns:
  string representation of the histogram

Author:
  Vanya BELYAEV Ivan.BElyaev@nikhef.nl

Date:
  2009-09-19

Definition at line 801 of file HistoDump.cpp.

    00805 {
    00806   std::ostringstream stream ;
    00807   histoDump_ ( histo , stream , width , height , spread );
    00808   return stream.str() ;
    00809 }

std::string Gaudi::Utils::Histos::histoDump | ( | const AIDA::IHistogram1D * | histo,
|  | const std::size_t | width = `80`,
|  | const std::size_t | height = `50`,
|  | const bool | errors = `false` |
| ) |  |  |

dump the text representation of the histogram

Parameters:

  | histo | (INPUT) the histogram
  | width | (INPUT) the maximal column width
  | height | (INPUT) the proposed column height
  | erorrs | (INPUT) print/plot errors

Returns:
  string representation of the histogram

Author:
  Vanya BELYAEV Ivan.BElyaev@nikhef.nl

Date:
  2009-09-19

Definition at line 704 of file HistoDump.cpp.

    00708 {
    00709   std::ostringstream stream ;
    00710   histoDump_ ( histo , stream , width , height , errors );
    00711   return stream.str() ;
    00712 }

std::ostream & Gaudi::Utils::Histos::histoDump_ | ( | const TH1 * | histo,
|  | std::ostream & | stream,
|  | const std::size_t | width = `80`,
|  | const std::size_t | height = `50`,
|  | const bool | errors = `false` |
| ) |  |  |

dump the text representation of the histogram

Parameters:

  | histo | (INPUT) the histogram
  | stream | (OUTUT) the stream
  | width | (INPUT) the maximal column width
  | height | (INPUT) the proposed coulmn height
  | errors | (INPUT) print/plot errors

Returns:
  the stream

Author:
  Vanya BELYAEV Ivan.BElyaev@nikhef.nl

Date:
  2009-09-19

Definition at line 822 of file HistoDump.cpp.

    00827 {
    00828   const TProfile* profile = dynamic_cast<const TProfile*> ( histo ) ;
    00829   if ( 0 != profile )
    00830   { return histoDump_ ( profile , stream , width , height ) ; }
    00831   //
    00832   stream << std::endl ;
    00833   if ( 0 == histo     ) { return stream ; }  // RETURN
    00834   Histo hist ;
    00835   StatusCode sc = _getHisto ( histo , hist ) ;
    00836   if ( sc.isFailure() ) { return stream ; }  // RETURN
    00837   //
    00838   stream
    00839     << boost::format ( " Histo Name  : \"%s\"")
    00840     % histo -> GetName ()
    00841     << std::endl
    00842     << boost::format ( " Histo Title : \"%s\"")
    00843     % histo -> GetTitle ()
    00844     << std::endl
    00845     << std::endl ;
    00846   //
    00847   stream
    00848     << boost::format ( " Mean        : %11.5g +- %-10.4g ")
    00849     % histo -> GetMean      ()
    00850     % histo -> GetMeanError ()
    00851     << std::endl
    00852     << boost::format ( " Rms         : %11.5g +- %-10.4g ")
    00853     % histo -> GetRMS      ()
    00854     % histo -> GetRMSError ()
    00855     << std::endl
    00856     << boost::format ( " Skewness    : %11.5g            ")
    00857     % histo -> GetSkewness ()
    00858     << std::endl
    00859     << boost::format ( " Kurtosis    : %11.5g            ")
    00860     % histo -> GetKurtosis ()
    00861     << std::endl
    00862     << std::endl ;
    00863   //
    00864   stream
    00865     << boost::format ( " Entries     :\n | %=11s | %=11s | %=11s | %=11s | %=11s |")
    00866     % "All"
    00867     % "Underflow"
    00868     % "Overflow"
    00869     % "#Equivalent"
    00870     % "Integral"
    00871     << std::endl
    00872     << boost::format ( " | %=11.5g | %=11.5g | %=11.5g | %=11.5g | %=11.5g |")
    00873     % histo -> GetEntries ()
    00874     % histo -> GetBinContent ( 0                       )
    00875     % histo -> GetBinContent ( histo->GetNbinsX() + 1  )
    00876     % histo -> GetEffectiveEntries  ()
    00877     % histo -> Integral             ()
    00878     << std::endl
    00879     << std::endl ;
    00880   //
    00881   return dumpText ( hist , width , height , errors , stream ) ;
    00882 }

std::ostream & Gaudi::Utils::Histos::histoDump_ | ( | const TProfile * | histo,
|  | std::ostream & | stream,
|  | const std::size_t | width = `80`,
|  | const std::size_t | height = `50` |
| ) |  |  |

dump the text representation of the Profile

Parameters:

  | histo | (INPUT) the histogram
  | stream | (OUTUT) the stream
  | width | (INPUT) the maximal column width
  | height | (INPUT) the proposed coulmn height
  | spread | (INPUT) print/plot rms versus erorr

Returns:
  the stream

Author:
  Vanya BELYAEV Ivan.BElyaev@nikhef.nl

Date:
  2009-09-19

Definition at line 895 of file HistoDump.cpp.

    00899 {
    00900   stream << std::endl ;
    00901   if ( 0 == histo     ) { return stream ; }  // RETURN
    00902   Histo hist ;
    00903   StatusCode sc = _getHisto ( histo , hist , true ) ;
    00904   if ( sc.isFailure() ) { return stream ; }  // RETURN
    00905   //
    00906   stream
    00907     << boost::format ( " Profile Name  : \"%s\"")
    00908     % histo -> GetName ()
    00909     << std::endl
    00910     << boost::format ( " Profile Title : \"%s\"")
    00911     % histo -> GetTitle ()
    00912     << std::endl
    00913     << std::endl ;
    00914   //
    00915   stream
    00916     << boost::format ( " Mean          : %11.5g ") % histo -> GetMean      ()
    00917     << std::endl
    00918     << boost::format ( " Rms           : %11.5g ") % histo -> GetRMS      ()
    00919     << std::endl
    00920     << std::endl ;
    00921   //
    00922   stream
    00923     << boost::format ( " Entries       :\n | %=11s | %=11s | %=11s | %=11s |")
    00924     % "All"
    00925     % "Underflow"
    00926     % "Overflow"
    00927     % "Integral"
    00928     << std::endl
    00929     << boost::format ( " | %=11.5g | %=11.5g | %=11.5g | %=11.5g |")
    00930     % histo -> GetEntries ()
    00931     % histo -> GetBinContent ( 0                       )
    00932     % histo -> GetBinContent ( histo->GetNbinsX() + 1  )
    00933     % histo -> Integral             ()
    00934     << std::endl
    00935     << std::endl ;
    00936   //
    00937   return dumpText ( hist , width , height , true , stream ) ;
    00938 }

std::ostream & Gaudi::Utils::Histos::histoDump_ | ( | const AIDA::IProfile1D * | histo,
|  | std::ostream & | stream,
|  | const std::size_t | width = `80`,
|  | const std::size_t | height = `50`,
|  | const bool | spread = `true` |
| ) |  |  |

dump the text representation of 1D-profile

Parameters:

  | histo | (INPUT) the 1D-profile
  | stream | (OUTUT) the stream
  | width | (INPUT) the maximal column width
  | height | (INPUT) the proposed column height
  | spread | (INPUT) print/plot spread/rms ?

Returns:
  the stream

Author:
  Vanya BELYAEV Ivan.BElyaev@nikhef.nl

Date:
  2009-09-19

Definition at line 726 of file HistoDump.cpp.

    00731 {
    00732   stream << std::endl ;
    00733   if ( 0 == histo     ) { return stream ; }  // RETURN
    00734   Histo hist ;
    00735   StatusCode sc = _getHisto ( histo , hist , spread ) ;
    00736   if ( sc.isFailure() ) { return stream ; }  // RETURN
    00737   //
    00738   stream
    00739     << boost::format ( " Histo TES   : \"%s\"") % path ( histo )
    00740     << std::endl
    00741     << boost::format ( " Histo Title : \"%s\"") % histo->title()
    00742     << std::endl
    00743     << std::endl ;
    00744   //
    00745   stream
    00746     << boost::format ( " Mean        : %11.5g ") % histo->mean()
    00747     << std::endl
    00748     << boost::format ( " Rms         : %11.5g ") % histo->rms ()
    00749     << std::endl
    00750     << std::endl ;
    00751   //
    00752   stream
    00753     << boost::format ( " Entries     :\n | %=9s | %=9s | %=9s | %9s | %=11s | %=11s |")
    00754     % "All"
    00755     % "In Range"
    00756     % "Underflow"
    00757     % "Overflow"
    00758     // % "#Equivalent"
    00759     % "Integral"
    00760     % "Total"
    00761     << std::endl
    00762     << boost::format ( " | %=9d | %=9d | %=9d | %=9d | %=11.5g | %=11.5g |")
    00763     % histo -> allEntries ()
    00764     % histo -> entries    ()
    00765     % histo -> binEntries ( AIDA::IAxis::UNDERFLOW_BIN )
    00766     % histo -> binEntries ( AIDA::IAxis::OVERFLOW_BIN  )
    00767     // % histo -> equivalentBinEntries ()
    00768     % histo -> sumBinHeights        ()
    00769     % histo -> sumAllBinHeights     ()
    00770     << std::endl
    00771     << std::endl ;
    00772   //
    00773   const AIDA::IAnnotation& a = histo->annotation () ;
    00774   if ( 0 != a.size() )
    00775   {
    00776     stream << " Annotation" << std::endl ;
    00777     for ( int i = 0 ; i < a.size() ; ++i )
    00778     {
    00779       stream
    00780         << boost::format ( " | %-25.25s : %-45.45s | ")
    00781         % a.key   ( i )
    00782         % a.value ( i )
    00783         << std::endl ;
    00784     }
    00785     stream << std::endl ;
    00786   }
    00787   //
    00788   return dumpText ( hist , width , height , true , stream ) ;
    00789 }

std::ostream & Gaudi::Utils::Histos::histoDump_ | ( | const AIDA::IHistogram1D * | histo,
|  | std::ostream & | stream,
|  | const std::size_t | width = `80`,
|  | const std::size_t | height = `50`,
|  | const bool | errors = `false` |
| ) |  |  |

dump the text representation of the histogram

Parameters:

  | histo | (INPUT) the histogram
  | stream | (OUTUT) the stream
  | width | (INPUT) the maximal column width
  | height | (INPUT) the proposed column height
  | errors | (INPUT) print/plot errors

Returns:
  the stream

Author:
  Vanya BELYAEV Ivan.BElyaev@nikhef.nl

Date:
  2009-09-19

Definition at line 615 of file HistoDump.cpp.

    00620 {
    00621   stream << std::endl ;
    00622   if ( 0 == histo     ) { return stream ; }  // RETURN
    00623   Histo hist ;
    00624   StatusCode sc = _getHisto ( histo , hist ) ;
    00625   if ( sc.isFailure() ) { return stream ; }  // RETURN
    00626   //
    00627   stream
    00628     << boost::format ( " Histo TES   : \"%s\"") % path ( histo )
    00629     << std::endl
    00630     << boost::format ( " Histo Title : \"%s\"") % histo->title()
    00631     << std::endl
    00632     << std::endl ;
    00633   //
    00634   stream
    00635     << boost::format ( " Mean        : %11.5g +- %-10.4g ")
    00636     % Gaudi::Utils::HistoStats::mean        ( histo )
    00637     % Gaudi::Utils::HistoStats::meanErr     ( histo )
    00638     << std::endl
    00639     << boost::format ( " Rms         : %11.5g +- %-10.4g ")
    00640     % Gaudi::Utils::HistoStats::rms         ( histo )
    00641     % Gaudi::Utils::HistoStats::rmsErr      ( histo )
    00642     << std::endl
    00643     << boost::format ( " Skewness    : %11.5g +- %-10.4g ")
    00644     % Gaudi::Utils::HistoStats::skewness    ( histo )
    00645     % Gaudi::Utils::HistoStats::skewnessErr ( histo )
    00646     << std::endl
    00647     << boost::format ( " Kurtosis    : %11.5g +- %-10.4g ")
    00648     % Gaudi::Utils::HistoStats::kurtosis    ( histo )
    00649     % Gaudi::Utils::HistoStats::kurtosisErr ( histo )
    00650     << std::endl
    00651     << std::endl ;
    00652   //
    00653   stream
    00654     << boost::format ( " Entries     :\n | %=9s | %=9s | %=9s | %9s | %=11s | %=11s | %=11s |")
    00655     % "All"
    00656     % "In Range"
    00657     % "Underflow"
    00658     % "Overflow"
    00659     % "#Equivalent"
    00660     % "Integral"
    00661     % "Total"
    00662     << std::endl
    00663     << boost::format ( " | %=9d | %=9d | %=9d | %=9d | %=11.5g | %=11.5g | %=11.5g |")
    00664     % histo -> allEntries ()
    00665     % histo -> entries    ()
    00666     % histo -> binEntries ( AIDA::IAxis::UNDERFLOW_BIN )
    00667     % histo -> binEntries ( AIDA::IAxis::OVERFLOW_BIN  )
    00668     % histo -> equivalentBinEntries ()
    00669     % histo -> sumBinHeights        ()
    00670     % histo -> sumAllBinHeights     ()
    00671     << std::endl
    00672     << std::endl ;
    00673   //
    00674   const AIDA::IAnnotation& a = histo->annotation () ;
    00675   if ( 0 != a.size() )
    00676   {
    00677     stream << " Annotation" << std::endl ;
    00678     for ( int i = 0 ; i < a.size() ; ++i )
    00679     {
    00680       stream
    00681         << boost::format ( " | %-25.25s : %-45.45s | ")
    00682         % a.key   ( i )
    00683         % a.value ( i )
    00684         << std::endl ;
    00685     }
    00686     stream << std::endl ;
    00687   }
    00688   //
    00689   return dumpText ( hist , width , height , errors , stream ) ;
    00690 }

std::string Gaudi::Utils::Histos::htitle | ( | const AIDA::IProfile2D * | histo,
|  | const std::string & | title = `""` |
| ) |  |  |

get the title

Definition at line 188 of file Fill.cpp.

    00190 { return htitle_ ( histo , title ) ; }

std::string Gaudi::Utils::Histos::htitle | ( | const AIDA::IProfile1D * | histo,
|  | const std::string & | title = `""` |
| ) |  |  |

get the title

Definition at line 181 of file Fill.cpp.

    00183 { return htitle_ ( histo , title ) ; }

std::string Gaudi::Utils::Histos::htitle | ( | const AIDA::IProfile * | histo,
|  | const std::string & | title = `""` |
| ) |  |  |

get the title

Definition at line 174 of file Fill.cpp.

    00176 { return htitle_ ( histo , title ) ; }

std::string Gaudi::Utils::Histos::htitle | ( | const AIDA::IHistogram3D * | histo,
|  | const std::string & | title = `""` |
| ) |  |  |

get the title

Definition at line 167 of file Fill.cpp.

    00169 { return htitle_ ( histo , title ) ; }

std::string Gaudi::Utils::Histos::htitle | ( | const AIDA::IHistogram2D * | histo,
|  | const std::string & | title = `""` |
| ) |  |  |

get the title

Definition at line 160 of file Fill.cpp.

    00162 { return htitle_ ( histo , title ) ; }

std::string Gaudi::Utils::Histos::htitle | ( | const AIDA::IHistogram1D * | histo,
|  | const std::string & | title = `""` |
| ) |  |  |

get the title

Definition at line 153 of file Fill.cpp.

    00155 { return htitle_ ( histo , title ) ; }

std::string Gaudi::Utils::Histos::htitle | ( | const AIDA::IHistogram * | histo,
|  | const std::string & | title = `""` |
| ) |  |  |

get the title

Definition at line 146 of file Fill.cpp.

    00148 { return htitle_ ( histo , title ) ; }

std::string Gaudi::Utils::Histos::htitle | ( | const AIDA::IBaseHistogram * | histo,
|  | const std::string & | title = `""` |
| ) |  |  |

get the title

Definition at line 139 of file Fill.cpp.

    00141 { return htitle_ ( histo , title ) ; }

std::string Gaudi::Utils::Histos::path | ( | const AIDA::IBaseHistogram * | aida | ) |

get the path in THS for AIDA histogram

Author:
  Vanya BELYAEV ibelyaev@physics.syr.edu

Date:
  2007-08-08

Definition at line 185 of file HistoTableFormat.cpp.

    00186 {
    00187   if ( 0 == aida     ) { return "" ; }                          // RETURN
    00188   const DataObject* object   = dynamic_cast<const DataObject*>( aida ) ;
    00189   if ( 0 == object   ) { return "" ; }                          // RETURN
    00190   IRegistry*        registry = object->registry() ;
    00191   if ( 0 == registry ) { return "" ; }                          // RETURN
    00192   std::string _path = registry->identifier() ;
    00193   std::string::size_type n = _path.find("/stat/") ;
    00194   if ( 0 == n ) { return std::string(_path,6) ; }               // RETURN
    00195   return _path ;                                                // RETURN
    00196 }

template<class LIST, class STREAM, class TERMINATOR>

STREAM& Gaudi::Utils::Histos::printList | ( | const LIST & | histos,
|  | const std::string & | fmt,
|  | STREAM & | stream,
|  | TERMINATOR | term |
| ) |  |  | `[inline]`

print the simple container of histograms as table

      using namespace Gaudi::Utils::Histos ;

      SEQUENCE histos = ... ;

      // print a table with three columns:  path, title and #entries

      printList
        ( histos          ,
          " | %1$|-40.40s | %2$-30.30s | %3$=7d | " ,
          std::cout       ,
          '\n'            ) ;

Parameters:

  | histos | the sequence of histograms
  | stream | the stream to be used for printout
  | term | the terminmator for the stream
  | fmt | the format to be used

Definition at line 269 of file HistoTableFormat.h.

    00273       {
    00274         return printList
    00275           ( histos.begin () , histos.end  () , fmt , stream , term ) ;
    00276       }

template<class HISTO, class STREAM, class TERMINATOR>

STREAM& Gaudi::Utils::Histos::printList | ( | HISTO | first,
|  | HISTO | last,
|  | const std::string & | fmt,
|  | STREAM & | stream,
|  | TERMINATOR | term |
| ) |  |  | `[inline]`

print the simple sequence (list-like) of histograms as table

      SEQUENCE histos = ... ;

      // print a table with three colums  path, title and #entries

      Gaudi::Utils::Histos::printList
        ( histos.begin () ,
          histos.end   () ,
          " | %1$|-40.40s | %2$-30.30s | %3$=7d | " ,
          std::cout       ,
          '\n'            ) ;

Parameters:

  | first | begin-iterator for the sequence
  | last | end-iterator for the sequence
  | stream | the stream to be used for printout
  | term | the terminmator for the stream
  | fmt | the format to be used

Definition at line 233 of file HistoTableFormat.h.

    00238       {
    00239         for ( ; first != last ; ++first )
    00240         { stream << format   ( *first , fmt ) << term ; }  // print table rows
    00241         return stream ;                                    // RETURN
    00242       }

template<class MAP, class STREAM, class TERMINATOR>

STREAM& Gaudi::Utils::Histos::printMap | ( | const MAP & | histos,
|  | const std::string & | fmt1,
|  | const std::string & | fmt2,
|  | STREAM & | stream,
|  | TERMINATOR | term |
| ) |  |  | `[inline]`

Print the "associative sequence" (e.g.

part of std:map) of histograms as table:

      using namespace Gaudi::Utils::Histos ;

      const std::map<std::string,AIDA::IHistogram1D*>& m = ... ;

      printMap
       ( m          ,
         "| %1$-10.10s | %2% " , // short format
         Gaudi::Utils::Histos::Formats::histoFormatOnly ,
         always()   ,
         endmsg     ) ;

Print only mean and rms:

      using namespace Gaudi::Utils::Histos ;

      const std::map<GaudiAlg::ID,AIDA::IHistogram1D*>& m = ... ;

      printMap
        ( m          ,
          "| %1$-10.10s | %2% "    , // short format
          " %8$10.5g+-%10$-10.5g|", // mean+-rms
          always()   ,
          endmsg     ) ;

Parameters:

  | begin | 'begin'-iterator for the mapping sequence
  | end | 'end'-iterator for the mapping sequence
  | fmt1 | 'short' format for the table printout
  | fmt3 | format for the printout of the histogram
  | stream | the stream for printout
  | term | stream terminator

Definition at line 385 of file HistoTableFormat.h.

    00390       {
    00391         return printMap
    00392           ( histos.begin () , histos.end() , fmt1 , fmt2 , stream , term ) ;
    00393       }

template<class HISTO, class STREAM, class TERMINATOR>

STREAM& Gaudi::Utils::Histos::printMap | ( | HISTO | begin,
|  | HISTO | end,
|  | const std::string & | fmt1,
|  | const std::string & | fmt2,
|  | STREAM & | stream,
|  | TERMINATOR | term |
| ) |  |  | `[inline]`

Print the "associative sequence" (e.g.

part of std:map) of histograms as table:

      using namespace Gaudi::Utils::Histos ;

      const std::map<std::string,AIDA::IHistogram1D*>& m = ... ;

      printMap
       ( m.begin () ,
         m.end   () ,
         "| %1$-10.10s | %2% " , // short format
         Gaudi::Utils::Histos::Formats::histoFormatOnly ,
         always()   ,
         endmsg     ) ;

Print only mean and rms:

      using namespace Gaudi::Utils::Histos ;

      const std::map<GaudiAlg::ID,AIDA::IHistogram1D*>& m = ... ;

      printMap
        ( m.begin () ,
          m.end   () ,
          "| %1$-10.10s | %2% "    , // short format
          " %8$10.5g+-%10$-10.5g|", // mean+-rms
          always()   ,
          endmsg     ) ;

Parameters:

  | begin | 'begin'-iterator for the mapping sequence
  | end | 'end'-iterator for the mapping sequence
  | fmt1 | 'short' format for the table printout
  | fmt3 | format for the printout of the histogram
  | stream | the stream for printout
  | term | stream terminator

Definition at line 324 of file HistoTableFormat.h.

    00330       {
    00331         for ( ; begin != end ; ++begin )
    00332         {
    00333           stream << format
    00334             ( begin -> second , // the histogram
    00335               begin -> first  , // the key
    00336               fmt1  ,  fmt2   ) << term ;
    00337         }
    00338         return stream ;
    00339       }

AIDA::IBaseHistogram * Gaudi::Utils::Histos::toBase | ( | AIDA::IProfile2D * | histo | ) |

Definition at line 210 of file Fill.cpp.

    00210 { return histo ; }

AIDA::IBaseHistogram * Gaudi::Utils::Histos::toBase | ( | AIDA::IProfile1D * | histo | ) |

Definition at line 206 of file Fill.cpp.

    00206 { return histo ; }

AIDA::IBaseHistogram * Gaudi::Utils::Histos::toBase | ( | AIDA::IHistogram3D * | histo | ) |

Definition at line 202 of file Fill.cpp.

    00202 { return histo ; }

AIDA::IBaseHistogram * Gaudi::Utils::Histos::toBase | ( | AIDA::IHistogram2D * | histo | ) |

Definition at line 198 of file Fill.cpp.

    00198 { return histo ; }

AIDA::IBaseHistogram * Gaudi::Utils::Histos::toBase | ( | AIDA::IHistogram1D * | histo | ) |

Definition at line 194 of file Fill.cpp.

    00194 { return histo ; }