Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:02:32

0001 #include "CondFormats/RunInfo/interface/LHCInfoPerLS.h"
0002 //#include "CondFormats/Common/interface/TimeConversions.h"
0003 #include <algorithm>
0004 #include <iterator>
0005 #include <vector>
0006 #include <stdexcept>
0007 
0008 LHCInfoPerLS::LHCInfoPerLS() : LHCInfoVectorizedFields(ISIZE, FSIZE, TSIZE, SSIZE) {}
0009 
0010 //getters
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 //setters
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 //sets all values in one go
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(); }