CMS 3D CMS Logo

L1TUtmTriggerMenuOnlineProd.cc
Go to the documentation of this file.
1 #include <iostream>
2 #include <fstream>
3 #include <stdexcept>
4 
5 #include "tmEventSetup/tmEventSetup.hh"
6 
7 #include "tmEventSetup/esTriggerMenu.hh"
8 #include "tmEventSetup/esAlgorithm.hh"
9 #include "tmEventSetup/esCondition.hh"
10 #include "tmEventSetup/esObject.hh"
11 #include "tmEventSetup/esCut.hh"
12 #include "tmEventSetup/esScale.hh"
13 #include "tmGrammar/Algorithm.hh"
14 
19 
20 class L1TUtmTriggerMenuOnlineProd : public L1ConfigOnlineProdBaseExt<L1TUtmTriggerMenuO2ORcd, L1TUtmTriggerMenu> {
21 private:
22 public:
23  std::unique_ptr<const L1TUtmTriggerMenu> newObject(const std::string& objectKey,
24  const L1TUtmTriggerMenuO2ORcd& record) override;
25 
27  ~L1TUtmTriggerMenuOnlineProd(void) override {}
28 };
29 
32  wrappedSetWhatProduced(iConfig);
33 }
34 
35 std::unique_ptr<const L1TUtmTriggerMenu> L1TUtmTriggerMenuOnlineProd::newObject(const std::string& objectKey,
37  std::string stage2Schema = "CMS_TRG_L1_CONF";
38  edm::LogInfo("L1-O2O: L1TUtmTriggerMenuOnlineProd") << "Producing L1TUtmTriggerMenu with key =" << objectKey;
39 
40  if (objectKey.empty()) {
41  edm::LogError("L1-O2O: L1TUtmTriggerMenuOnlineProd") << "Key is empty, returning empty L1TUtmTriggerMenu object";
42  throw std::runtime_error("Empty objectKey");
43  }
44 
45  std::vector<std::string> queryColumns;
46  queryColumns.push_back("CONF");
47 
49  queryColumns, stage2Schema, "UGT_L1_MENU", "UGT_L1_MENU.ID", m_omdsReader.singleAttribute(objectKey));
50 
51  if (queryResult.queryFailed() || queryResult.numberRows() != 1) {
52  edm::LogError("L1-O2O: L1TUtmTriggerMenuOnlineProd") << "Cannot get UGT_L1_MENU.CONF for ID = " << objectKey;
53  throw std::runtime_error("Broken key");
54  }
55 
56  std::string l1Menu;
57  queryResult.fillVariable("CONF", l1Menu);
58 
59  std::istringstream iss(l1Menu);
60 
61  const L1TUtmTriggerMenu* cmenu = reinterpret_cast<const L1TUtmTriggerMenu*>(tmeventsetup::getTriggerMenu(iss));
62  return std::unique_ptr<const L1TUtmTriggerMenu>(cmenu);
63 }
64 
65 //define this as a plug-in
l1t::OMDSReader::QueryResults
Definition: OMDSReader.h:49
L1TUtmTriggerMenuRcd.h
L1TUtmTriggerMenuOnlineProd
Definition: L1TUtmTriggerMenuOnlineProd.cc:20
L1ConfigOnlineProdBaseExt< L1TUtmTriggerMenuO2ORcd, L1TUtmTriggerMenu >::m_omdsReader
l1t::OMDSReader m_omdsReader
Definition: L1ConfigOnlineProdBaseExt.h:47
L1TUtmTriggerMenuO2ORcd.h
GlobalPosition_Frontier_DevDB_cff.record
record
Definition: GlobalPosition_Frontier_DevDB_cff.py:10
L1ConfigOnlineProdBaseExt.h
l1t::OMDSReader::singleAttribute
const QueryResults singleAttribute(const T &data) const
Definition: OMDSReader.h:259
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
L1TUtmTriggerMenuOnlineProd::~L1TUtmTriggerMenuOnlineProd
~L1TUtmTriggerMenuOnlineProd(void) override
Definition: L1TUtmTriggerMenuOnlineProd.cc:27
L1TUtmTriggerMenu
Definition: L1TUtmTriggerMenu.h:25
L1ConfigOnlineProdBaseExt
Definition: L1ConfigOnlineProdBaseExt.h:32
l1t::OMDSReader::QueryResults::fillVariable
bool fillVariable(const std::string &columnName, T &outputVariable) const
Definition: OMDSReader.h:274
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
L1TUtmTriggerMenu.h
edm::ParameterSet
Definition: ParameterSet.h:47
L1TUtmTriggerMenuOnlineProd::L1TUtmTriggerMenuOnlineProd
L1TUtmTriggerMenuOnlineProd(const edm::ParameterSet &)
Definition: L1TUtmTriggerMenuOnlineProd.cc:30
L1TUtmTriggerMenuO2ORcd
Definition: L1TUtmTriggerMenuO2ORcd.h:17
l1t::OMDSReader::QueryResults::numberRows
int numberRows() const
Definition: OMDSReader.h:60
l1t::OMDSReader::basicQuery
const QueryResults basicQuery(const std::vector< std::string > &columnNames, const std::string &schemaName, const std::string &tableName, const std::string &conditionLHS="", const QueryResults conditionRHS=QueryResults(), const std::string &conditionRHSName="")
Definition: OMDSReader.cc:75
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
DEFINE_FWK_EVENTSETUP_MODULE
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
Definition: ModuleFactory.h:60
l1t::OMDSReader::QueryResults::queryFailed
bool queryFailed() const
Definition: OMDSReader.h:59
L1ConfigOnlineProdBaseExt< L1TUtmTriggerMenuO2ORcd, L1TUtmTriggerMenu >::wrappedSetWhatProduced
edm::ESConsumesCollectorT< L1TUtmTriggerMenuO2ORcd > wrappedSetWhatProduced(const edm::ParameterSet &)
Definition: L1ConfigOnlineProdBaseExt.h:93
L1TUtmTriggerMenuOnlineProd::newObject
std::unique_ptr< const L1TUtmTriggerMenu > newObject(const std::string &objectKey, const L1TUtmTriggerMenuO2ORcd &record) override
Definition: L1TUtmTriggerMenuOnlineProd.cc:35