File indexing completed on 2023-03-17 10:47:28
0001 #include "CondFormats/RunInfo/interface/LHCInfoPerLS.h"
0002
0003 #include <algorithm>
0004 #include <iterator>
0005 #include <vector>
0006 #include <stdexcept>
0007
0008 LHCInfoPerLS::LHCInfoPerLS() : LHCInfoVectorizedFields(ISIZE, FSIZE, TSIZE, SSIZE) {}
0009
0010
0011 unsigned short const LHCInfoPerLS::fillNumber() const { return LHCInfoPerLS::getOneParam(m_intParams, LHC_FILL); }
0012
0013 unsigned int const& LHCInfoPerLS::lumiSection() const { return LHCInfoPerLS::getOneParam(m_intParams, LUMI_SECTION); }
0014
0015 float const LHCInfoPerLS::crossingAngleX() const { return LHCInfoPerLS::getOneParam(m_floatParams, CROSSING_ANGLE_X); }
0016
0017 float const LHCInfoPerLS::crossingAngleY() const { return LHCInfoPerLS::getOneParam(m_floatParams, CROSSING_ANGLE_Y); }
0018
0019 float const LHCInfoPerLS::betaStarX() const { return LHCInfoPerLS::getOneParam(m_floatParams, BETA_STAR_X); }
0020
0021 float const LHCInfoPerLS::betaStarY() const { return LHCInfoPerLS::getOneParam(m_floatParams, BETA_STAR_Y); }
0022
0023 cond::Time_t LHCInfoPerLS::runNumber() const { return LHCInfoPerLS::getOneParam(m_timeParams, RUN_NUMBER); }
0024
0025
0026 void LHCInfoPerLS::setFillNumber(unsigned short const& lhcFill) {
0027 LHCInfoPerLS::setOneParam(m_intParams, LHC_FILL, static_cast<unsigned int>(lhcFill));
0028 }
0029
0030 void LHCInfoPerLS::setLumiSection(unsigned int const& lumiSection) {
0031 LHCInfoPerLS::setOneParam(m_intParams, LUMI_SECTION, lumiSection);
0032 }
0033
0034 void LHCInfoPerLS::setCrossingAngleX(float const& angle) {
0035 LHCInfoPerLS::setOneParam(m_floatParams, CROSSING_ANGLE_X, angle);
0036 }
0037
0038 void LHCInfoPerLS::setCrossingAngleY(float const& angle) {
0039 LHCInfoPerLS::setOneParam(m_floatParams, CROSSING_ANGLE_Y, angle);
0040 }
0041
0042 void LHCInfoPerLS::setBetaStarX(float const& betaStar) {
0043 LHCInfoPerLS::setOneParam(m_floatParams, BETA_STAR_X, betaStar);
0044 }
0045
0046 void LHCInfoPerLS::setBetaStarY(float const& betaStar) {
0047 LHCInfoPerLS::setOneParam(m_floatParams, BETA_STAR_Y, betaStar);
0048 }
0049
0050 void LHCInfoPerLS::setRunNumber(cond::Time_t const& runNumber) {
0051 LHCInfoPerLS::setOneParam(m_timeParams, RUN_NUMBER, runNumber);
0052 };
0053
0054
0055 void LHCInfoPerLS::setInfo(unsigned short const& lhcFill,
0056 unsigned int const& lumiSection,
0057 float const& angleX,
0058 float const& angleY,
0059 float const& betaX,
0060 float const& betaY,
0061 cond::Time_t const& runNumber) {
0062 this->setFillNumber(lhcFill);
0063 this->setLumiSection(lumiSection);
0064 this->setCrossingAngleX(angleX);
0065 this->setCrossingAngleY(angleY);
0066 this->setBetaStarX(betaX);
0067 this->setBetaStarY(betaY);
0068 this->setRunNumber(runNumber);
0069 }
0070
0071 void LHCInfoPerLS::print(std::stringstream& ss) const {
0072 ss << "LHC fill: " << this->fillNumber() << std::endl
0073 << "Lumi section: " << this->lumiSection() << std::endl
0074 << "Run number: " << this->runNumber() << std::endl
0075 << "Crossing angle x (urad): " << this->crossingAngleX() << std::endl
0076 << "Crossing angle y (urad): " << this->crossingAngleY() << std::endl
0077 << "Beta star x (m): " << this->betaStarX() << std::endl
0078 << "Beta star y (m): " << this->betaStarY() << std::endl;
0079 }
0080
0081 std::ostream& operator<<(std::ostream& os, LHCInfoPerLS beamInfo) {
0082 std::stringstream ss;
0083 beamInfo.print(ss);
0084 os << ss.str();
0085 return os;
0086 }
0087
0088 bool LHCInfoPerLS::equals(const LHCInfoPerLS& rhs) const {
0089 if (m_isData != rhs.m_isData)
0090 return false;
0091 if (m_intParams != rhs.m_intParams)
0092 return false;
0093 if (m_floatParams != rhs.m_floatParams)
0094 return false;
0095 if (m_timeParams != rhs.m_timeParams)
0096 return false;
0097 return true;
0098 }
0099
0100 bool LHCInfoPerLS::empty() const { return m_intParams[0].empty(); }