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 (
double value ) { high =
value ; }
23 void setLowEdge (
double value ) { low =
value ; }
24 void setNBins (
unsigned int value ) { nbins =
value ; }
25 void setEdges ( std::vector<double>
value ) { edges = std::move(value) ; }
27 Edges& operator -= (
double value )
28 { setLowEdge ( value ) ;
return *this ; }
29 Edges& operator += (
double value )
30 { setHighEdge ( value ) ;
return *this ; }
31 Edges& operator *= ( std::vector<double>
value )
32 { setEdges ( std::move(value) ) ;
return *this ; }
33 Edges& operator /= (
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 ( std::string value ) { m_name = std::move(value) ; }
62 void setTitle ( std::string value ) { m_title = std::move(value) ; }
64 void setEdges ( Edges value ) { m_edges = std::move(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 ( Bins value ) { m_bins = std::move(value) ; }
72 H1& operator*=( std::string value ) { setName ( std::move(value) ) ;
return *this ; }
73 H1& operator/=( std::string value ) { setTitle ( std::move(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&=( Edges value ) { setEdges ( std::move(value) ) ;
return *this ; }
79 H1& operator+=( Bins value ) { setBins ( std::move(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 ( std::string value ) { m_name = std::move(value) ; }
105 void setTitle ( std::string value ) { m_title = std::move(value) ; }
106 void setXEdges ( Edges value ) { m_xedges = std::move(value) ; }
107 void setYEdges ( Edges value ) { m_yedges = std::move(value) ; }
108 void setBins ( Bins value ) { m_bins = std::move(value) ; }
110 H2& operator*=( std::string value ) { setName ( std::move(value) ) ;
return *this ; }
111 H2& operator/=( std::string value ) { setTitle ( std::move(value) ) ;
return *this ; }
112 H2& operator&=( Edges value ) { setXEdges ( std::move(value) ) ;
return *this ; }
113 H2& operator|=( Edges value ) { setYEdges ( std::move(value) ) ;
return *this ; }
114 H2& operator+=( Bins value ) { setBins ( std::move(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