59 double sumWeights = 0;
60 double sumWeightsSquared = 0;
70 sumWeights += rhs.sumWeights;
71 sumWeightsSquared += rhs.sumWeightsSquared;
82 inline void Fill(T x,
double weight=1.0)
85 v.sumWeights += weight;
86 v.sumWeightsSquared += weight*weight;
89 inline long long int Entries()
const {
return entries;}
90 inline size_t size()
const {
return data.size();}
91 std::map<T, Bin>
Result()
const
93 std::map<T, Bin> result;
94 for (
const auto& kv : data)
97 v.value = kv.second.sumWeights;
98 v.error = std::sqrt(kv.second.sumWeightsSquared);
105 typedef typename std::map<T, BinWorking>::iterator
iterator;
106 typedef typename std::map<T, BinWorking>::const_iterator const_iterator;
107 iterator begin() {
return data.begin();}
109 const_iterator begin()
const {
return data.begin();}
110 const_iterator end()
const {
return data.end();}
111 bool empty()
const {
return data.empty();}
113 BinWorking& operator[](
const long long int key) {
return data[key];}
114 const BinWorking& operator[](
const long long int key)
const {
return data.at(key);}
116 bool HasAbscissa(T value)
const {
return data.find(value) != data.end();}
119 std::map<T, BinWorking> data;
120 long long int entries;
Sparse 1D histogram based on a map.
HistSparse1D(const std::string &nameIn)
Use this constructor.
HistSparse1D()
Public constructor only for compatibility with ROOT - not intended for use.
std::map< T, BinWorking >::iterator iterator
Iterator mechanics.