1 #ifndef GAUDIUTILS_H1_H
2 #define GAUDIUTILS_H1_H 1
10 typedef std::pair<double,double> Bin ;
12 typedef std::vector<Bin> Bins ;
22 void setHighEdge (
const double value ) { high =
value ; }
23 void setLowEdge (
const double value ) { low =
value ; }
24 void setNBins (
const unsigned int value ) { nbins =
value ; }
25 void setEdges (
const std::vector<double>&
value ) { edges =
value ; }
27 Edges& operator -= (
const double value )
28 { setLowEdge ( value ) ;
return *this ; }
29 Edges& operator += (
const double value )
30 { setHighEdge ( value ) ;
return *this ; }
31 Edges& operator *= (
const std::vector<double>&
value )
32 { setEdges ( value ) ;
return *this ; }
33 Edges& operator /= (
const unsigned int value )
34 { setNBins ( value ) ;
return *this ; }
39 edges.empty() ? low < high && 0 < nbins : 2 < edges.size() ;
41 unsigned int nBins()
const
44 edges.empty() ? nbins : edges.size() - 1 ;
50 std::vector<double> edges ;
61 void setName (
const std::string&
value ) { m_name =
value ; }
62 void setTitle (
const std::string&
value ) { m_title =
value ; }
64 void setEdges (
const Edges&
value ) { m_edges =
value ; }
65 void setHighEdge (
const double value ) { m_edges.setHighEdge(value ); }
66 void setLowEdge (
const double value ) { m_edges.setLowEdge(value ); }
67 void setNBins (
const unsigned int value ) { m_edges.setNBins(value );}
70 void setBins (
const Bins& value ) { m_bins =
value ; }
72 H1& operator*=(
const std::string& value ) { setName ( value ) ;
return *this ; }
73 H1& operator/=(
const std::string& value ) { setTitle ( value ) ;
return *this ; }
74 H1& operator^=(
const double value ) { setHighEdge(value) ;
return *this ; }
75 H1& operator-=(
const double value ) { setLowEdge(value) ;
return *this ; }
76 H1& operator|=(
const unsigned int value) { setNBins(value) ;
return *this ; }
78 H1& operator&=(
const Edges& value ) { setEdges ( value ) ;
return *this ; }
79 H1& operator+=(
const Bins& value ) { setBins ( value ) ;
return *this ; }
83 if ( m_bins.empty() ) {
return false ; }
84 if ( !m_edges.ok () ) {
return false ; }
85 if ( m_bins.size() != m_edges.nBins() + 2 ) {
return false ; }
104 void setName (
const std::string& value ) { m_name =
value ; }
105 void setTitle (
const std::string& value ) { m_title =
value ; }
106 void setXEdges (
const Edges& value ) { m_xedges =
value ; }
107 void setYEdges (
const Edges& value ) { m_yedges =
value ; }
108 void setBins (
const Bins& value ) { m_bins =
value ; }
110 H2& operator*=(
const std::string& value ) { setName ( value ) ;
return *this ; }
111 H2& operator/=(
const std::string& value ) { setTitle ( value ) ;
return *this ; }
112 H2& operator&=(
const Edges& value ) { setXEdges ( value ) ;
return *this ; }
113 H2& operator|=(
const Edges& value ) { setYEdges ( value ) ;
return *this ; }
114 H2& operator+=(
const Bins& value ) { setBins ( value ) ;
return *this ; }
118 if ( m_bins.empty () ) {
return false ; }
119 if ( !m_xedges.ok () ) {
return false ; }
120 if ( !m_yedges.ok () ) {
return false ; }
121 if ( m_bins.size() !=
122 ( m_xedges.nBins() + 2 ) *
123 ( m_yedges.nBins() + 2 ) ) {
return false ; }
129 std::string m_title ;
139 #endif // GAUDIUTILS_H1_H