|
||||
File indexing completed on 2025-01-18 09:57:46
0001 /***********************************************************************************\ 0002 * (c) Copyright 1998-2019 CERN for the benefit of the LHCb and ATLAS collaborations * 0003 * * 0004 * This software is distributed under the terms of the Apache version 2 licence, * 0005 * copied verbatim in the file "LICENSE". * 0006 * * 0007 * In applying this licence, CERN does not waive the privileges and immunities * 0008 * granted to it by virtue of its status as an Intergovernmental Organization * 0009 * or submit itself to any jurisdiction. * 0010 \***********************************************************************************/ 0011 #ifndef GAUDIUTILS_HISTOSTRINGS_H 0012 #define GAUDIUTILS_HISTOSTRINGS_H 1 0013 // ============================================================================ 0014 // Include files 0015 // ============================================================================ 0016 // STD & STL 0017 // ============================================================================ 0018 #include <iosfwd> 0019 #include <string> 0020 // ============================================================================ 0021 // GaudiKernel 0022 // ============================================================================ 0023 #include "GaudiKernel/StatusCode.h" 0024 // ============================================================================ 0025 // forward declarations 0026 // ============================================================================ 0027 // Forward declarations 0028 // ============================================================================ 0029 // AIDA 0030 // ============================================================================ 0031 namespace AIDA { 0032 class IHistogram1D; 0033 class IHistogram2D; 0034 class IHistogram3D; 0035 class IProfile1D; 0036 class IProfile2D; 0037 } // namespace AIDA 0038 // ============================================================================ 0039 // ROOT 0040 // ============================================================================ 0041 class TH1D; // ROOT 0042 class TH2D; // ROOT 0043 class TH3D; // ROOT 0044 class TProfile; // ROOT 0045 class TProfile2D; // ROOT 0046 // ============================================================================ 0047 namespace Gaudi { 0048 // ========================================================================== 0049 namespace Utils { 0050 // ======================================================================== 0051 namespace Histos { 0052 // ====================================================================== 0053 /** @class HistoStrings 0054 * Helper class to produce "good" dictionaries 0055 * @author Vanya BELYAEV Ivan.Belyaev@nikhef.nl 0056 * @date 2009-09-26 0057 */ 0058 class GAUDI_API HistoStrings { 0059 // ==================================================================== 0060 public: 0061 // ==================================================================== 0062 /** convert the histogram into the string 0063 * @param histo (INPUT) the histogram to be streamed 0064 * @param asXML (INPUT) use XML-format 0065 * @return the string representation of the histogram 0066 * @author Vanya BELYAEV Ivan.Belyaev@nikhef.nl 0067 * @date 2009-09-26 0068 */ 0069 static std::string toString( const TH1D& histo, const bool asXML = false ); 0070 // ==================================================================== 0071 /** convert the histogram into the string 0072 * @param histo (INPUT) the histogram to be streamed 0073 * @param asXML (INPUT) use XML-format 0074 * @return the string representation of the histogram 0075 * @author Vanya BELYAEV Ivan.Belyaev@nikhef.nl 0076 * @date 2009-09-26 0077 */ 0078 static std::string toString( const TH2D& histo, const bool asXML = false ); 0079 // ==================================================================== 0080 /** convert the histogram into the string 0081 * @param histo (INPUT) the histogram to be streamed 0082 * @param asXML (INPUT) use XML-format 0083 * @return the string representation of the histogram 0084 * @author Vanya BELYAEV Ivan.Belyaev@nikhef.nl 0085 * @date 2009-09-26 0086 */ 0087 static std::string toString( const AIDA::IHistogram1D& histo, const bool asXML = false ); 0088 // ==================================================================== 0089 /** convert the histogram into the string 0090 * @param histo (INPUT) the histogram to be streamed 0091 * @param asXML (INPUT) use XML-format 0092 * @return the string representation of the histogram 0093 * @author Vanya BELYAEV Ivan.Belyaev@nikhef.nl 0094 * @date 2009-09-26 0095 */ 0096 static std::string toString( const AIDA::IHistogram2D& histo, const bool asXML = false ); 0097 // ==================================================================== 0098 /** parse the histogram from string 0099 * @param result (OUTPUT) the parsed histogram 0100 * @param input (INPUT) the input XML string 0101 * @return status code 0102 */ 0103 static StatusCode fromString( TH1D& result, const std::string& input ); 0104 // ==================================================================== 0105 /** parse the histogram from string 0106 * @param result (OUTPUT) the parsed histogram 0107 * @param input (INPUT) the input XML string 0108 * @return status code 0109 */ 0110 static StatusCode fromString( AIDA::IHistogram1D& result, const std::string& input ); 0111 // ==================================================================== 0112 /** parse the histogram from string 0113 * @param result (OUTPUT) the parsed histogram 0114 * @param input (INPUT) the input XML string 0115 * @return status code 0116 */ 0117 static StatusCode fromString( TH2D& result, const std::string& input ); 0118 // ==================================================================== 0119 /** parse the histogram from string 0120 * @param result (OUTPUT) the parsed histogram 0121 * @param input (INPUT) the input XML string 0122 * @return status code 0123 */ 0124 static StatusCode fromString( AIDA::IHistogram2D& result, const std::string& input ); 0125 // ==================================================================== 0126 static std::string toXml( const TH1D& histo ); 0127 static std::string toXml( const TH2D& histo ); 0128 static std::string toXml( const TH3D& histo ); 0129 static std::string toXml( const TProfile& histo ); 0130 static std::string toXml( const TProfile2D& histo ); 0131 // ==================================================================== 0132 static std::string toXml( const AIDA::IHistogram1D& histo ); 0133 static std::string toXml( const AIDA::IHistogram2D& histo ); 0134 static std::string toXml( const AIDA::IHistogram3D& histo ); 0135 static std::string toXml( const AIDA::IProfile1D& histo ); 0136 static std::string toXml( const AIDA::IProfile2D& histo ); 0137 // ==================================================================== 0138 static StatusCode fromXml( TH1D& result, const std::string& input ); 0139 static StatusCode fromXml( TH2D& result, const std::string& input ); 0140 static StatusCode fromXml( TH3D& result, const std::string& input ); 0141 static StatusCode fromXml( TProfile& result, const std::string& input ); 0142 static StatusCode fromXml( TProfile2D& result, const std::string& input ); 0143 // ==================================================================== 0144 static StatusCode fromXml( AIDA::IHistogram1D& result, const std::string& input ); 0145 static StatusCode fromXml( AIDA::IHistogram2D& result, const std::string& input ); 0146 static StatusCode fromXml( AIDA::IHistogram3D& result, const std::string& input ); 0147 static StatusCode fromXml( AIDA::IProfile1D& result, const std::string& input ); 0148 static StatusCode fromXml( AIDA::IProfile2D& result, const std::string& input ); 0149 // ==================================================================== 0150 }; 0151 // ====================================================================== 0152 } // namespace Histos 0153 // ======================================================================== 0154 } // namespace Utils 0155 // ========================================================================== 0156 } // end of namespace Gaudi 0157 // ============================================================================ 0158 // The END 0159 // ============================================================================ 0160 #endif // GAUDIUTILS_HISTOSTRINGS_H
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |