File indexing completed on 2024-04-06 12:26:37
0001 #include "RecoLuminosity/LumiProducer/interface/DIPLumiDetail.h"
0002
0003 #include <iomanip>
0004 #include <ostream>
0005 #include <iostream>
0006
0007 DIPLumiDetail::DIPLumiDetail() : m_runnum(0), m_ls(0), m_lumiValues(3564) {}
0008 bool DIPLumiDetail::isNull() const {
0009 if (m_runnum == 0 && m_ls == 0) {
0010 return true;
0011 }
0012 return false;
0013 }
0014 float DIPLumiDetail::lumiValue(unsigned int bx) const { return m_lumiValues[bx]; }
0015 DIPLumiDetail::ValueRange DIPLumiDetail::lumiValues() const {
0016 return ValueRange(m_lumiValues.begin(), m_lumiValues.end());
0017 }
0018 void DIPLumiDetail::filldata(std::vector<float>& lumivalues) { lumivalues.swap(m_lumiValues); }
0019 void DIPLumiDetail::fillbxdata(unsigned int bxidx, float bxvalue) { m_lumiValues[bxidx] = bxvalue; }
0020 unsigned int DIPLumiDetail::fromRun() const { return m_runnum; }
0021 unsigned int DIPLumiDetail::fromLS() const { return m_ls; }
0022 void DIPLumiDetail::setOrigin(unsigned int runnumber, unsigned int ls) {
0023 m_runnum = runnumber;
0024 m_ls = ls;
0025 }
0026 std::ostream& operator<<(std::ostream& s, DIPLumiDetail const& diplumiDetail) {
0027 s << "\nDumping DIPLumiDetail\n";
0028 std::cout.setf(std::ios::fixed, std::ios::floatfield);
0029 std::cout.setf(std::ios::showpoint);
0030 std::vector<float>::const_iterator lumivalueIt = diplumiDetail.lumiValues().first;
0031 std::vector<float>::const_iterator lumivalueEnd = diplumiDetail.lumiValues().second;
0032 for (unsigned int i = 0; lumivalueIt != lumivalueEnd; ++lumivalueIt, ++i) {
0033 s << std::setw(10) << " bunch = " << i << " bunchlumi = " << *lumivalueIt << "\n";
0034 }
0035 s << "\n";
0036 return s;
0037 }