35 this->ringBuffer = rhs.ringBuffer;
36 this->vecIndex = rhs.vecIndex;
41 vecIndex = vecIndex < (int)ringBuffer->fSize ? vecIndex + 1 : 0;
52 vecIndex = vecIndex == 0 ? ringBuffer->fSize: vecIndex - 1;
88 return ringBuffer->elements[vecIndex];
92 return &(operator*());
95 bool operator==(
const iterator& rhs)
const{
96 return (vecIndex == rhs.vecIndex && ringBuffer == rhs.ringBuffer);
99 bool operator!=(
const iterator& rhs)
const{
100 return !(operator==(rhs));
105 mutable Int_t vecIndex;
114 Double_t insert(Double_t value);
115 Double_t getSum()
const{
return sum;}
116 Double_t getMean()
const{
return numRingElements > 0 ? sum/numRingElements : 0;}
120 return iterator(
this, oldestElement());
123 return iterator(
this, nextElement);
126 size_t size()
const{
return fSize;}
127 size_t numElements()
const {
return numRingElements;}
133 UInt_t numRingElements;
135 std::vector<double> elements;
138 inline UInt_t oldestElement()
const{
140 UInt_t oldestElement = 0;
141 if(numRingElements==fSize){
143 oldestElement = nextElement + 1;
144 oldestElement = oldestElement >= fSize + 1? oldestElement - (fSize + 1) : oldestElement;
146 return oldestElement;