CMS 3D CMS Logo

LHCInfoHelper.cc
Go to the documentation of this file.
3 
4 //*****************************************************************
5 // Returns lumi-type IOV (packed using cond::time::lumiTime) from
6 // last LS of last Run of the specified Fill
7 //*****************************************************************
8 
9 std::pair<int, unsigned short> cond::lhcInfoHelper::getFillLastRunAndLS(const cond::OMSService& oms,
10  unsigned short fillId) {
11  // Define query
12  auto query = oms.query("lumisections");
13  query->addOutputVars({"lumisection_number", "run_number"});
14  query->filterEQ("fill_number", fillId);
16 
17  // Execute query
18  if (!query->execute()) {
19  throw cms::Exception("OMSQueryFailure")
20  << "OMS query of fill " << fillId << " failed, status:" << query->status() << "\n";
21  }
22 
23  // Get query result
24  auto queryResult = query->result();
25  if (queryResult.empty()) {
26  throw cms::Exception("OMSQueryFailure") << "OMS query of fill " << fillId << " returned empty result!\n";
27  }
28 
29  // Return the final IOV
30  auto lastRun = queryResult.back().get<int>("run_number");
31  auto lastLumi = queryResult.back().get<unsigned short>("lumisection_number");
32  return std::make_pair(lastRun, lastLumi);
33 }
34 
36  auto [lastRun, lastLumi] = getFillLastRunAndLS(oms, fillId);
38 }
std::unique_ptr< OMSServiceQuery > query(const std::string &function) const
Definition: OMSAccess.cc:129
std::pair< int, unsigned short > getFillLastRunAndLS(const cond::OMSService &oms, unsigned short fillId)
Definition: LHCInfoHelper.cc:9
Definition: query.py:1
unsigned long long Time_t
Definition: Time.h:14
Time_t lumiTime(unsigned int run, unsigned int lumiId)
Definition: Time.cc:66
static constexpr unsigned int kLumisectionsQueryLimit
Definition: LHCInfoHelper.h:12
cond::Time_t getFillLastLumiIOV(const cond::OMSService &oms, unsigned short fillId)