File indexing completed on 2024-04-06 12:04:40
0001 #include "DataFormats/Luminosity/interface/LumiInfoRunHeader.h"
0002
0003 LumiInfoRunHeader::LumiInfoRunHeader(std::string& lumiProvider,
0004 std::string& fillingSchemeName,
0005 std::bitset<LumiConstants::numBX>& fillingScheme)
0006 : lumiProvider_(lumiProvider), fillingSchemeName_(fillingSchemeName), fillingScheme_(fillingScheme) {
0007 setBunchSpacing();
0008 }
0009
0010 bool LumiInfoRunHeader::isProductEqual(LumiInfoRunHeader const& o) const {
0011 return (lumiProvider_ == o.lumiProvider_ && fillingSchemeName_ == o.fillingSchemeName_ &&
0012 fillingScheme_ == o.fillingScheme_);
0013 }
0014
0015
0016
0017 void LumiInfoRunHeader::setFillingScheme(const std::bitset<LumiConstants::numBX>& fillingScheme) {
0018 fillingScheme_ = fillingScheme;
0019 setBunchSpacing();
0020 }
0021
0022
0023
0024
0025 void LumiInfoRunHeader::setBunchSpacing(void) {
0026 int lastFilledBunch = -1;
0027 int minimumSpacingFound = LumiConstants::numBX;
0028
0029 for (unsigned int i = 0; i < LumiConstants::numBX; i++) {
0030 if (fillingScheme_[i]) {
0031 if (lastFilledBunch >= 0) {
0032 int thisSpacing = i - lastFilledBunch;
0033 if (thisSpacing < minimumSpacingFound)
0034 minimumSpacingFound = thisSpacing;
0035 }
0036 lastFilledBunch = i;
0037 }
0038 }
0039
0040
0041 if (lastFilledBunch == -1)
0042 bunchSpacing_ = 0;
0043 else
0044 bunchSpacing_ = LumiConstants::bxSpacingInt * minimumSpacingFound;
0045 }