File indexing completed on 2024-04-06 11:57:59
0001
0002 #include "CalibCalorimetry/EcalPedestalOffsets/interface/TSinglePedEntry.h"
0003 #include <cmath>
0004 #include <iostream>
0005
0006 TSinglePedEntry::TSinglePedEntry() : m_pedestalSqSum(0), m_pedestalSum(0), m_entries(0) {
0007
0008 }
0009
0010 TSinglePedEntry::~TSinglePedEntry() {}
0011
0012 TSinglePedEntry::TSinglePedEntry(const TSinglePedEntry &orig) {
0013 m_pedestalSqSum = orig.m_pedestalSqSum;
0014 m_pedestalSum = orig.m_pedestalSum;
0015 m_entries = orig.m_entries;
0016 }
0017
0018 void TSinglePedEntry::insert(const int &pedestal) {
0019 m_pedestalSqSum += pedestal * pedestal;
0020 m_pedestalSum += pedestal;
0021 ++m_entries;
0022 }
0023
0024 double TSinglePedEntry::average() const {
0025 if (!m_entries)
0026 return -1;
0027 return static_cast<double>(m_pedestalSum) / m_entries;
0028 }
0029
0030 double TSinglePedEntry::RMS() const {
0031 if (!m_entries)
0032 return -1;
0033 return sqrt(RMSSq());
0034 }
0035
0036 double TSinglePedEntry::RMSSq() const {
0037
0038
0039
0040
0041
0042 if (!m_entries)
0043 return -1;
0044 double num = 1. / static_cast<double>(m_entries);
0045 double output = m_pedestalSqSum * num - m_pedestalSum * num * m_pedestalSum * num;
0046 return output;
0047 }