test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
L1TUtmTriggerMenuOnlineProd.cc
Go to the documentation of this file.
1 #include <iostream>
2 #include <fstream>
3 #include "tmEventSetup/tmEventSetup.hh"
4 
5 #include "tmEventSetup/esTriggerMenu.hh"
6 #include "tmEventSetup/esAlgorithm.hh"
7 #include "tmEventSetup/esCondition.hh"
8 #include "tmEventSetup/esObject.hh"
9 #include "tmEventSetup/esCut.hh"
10 #include "tmEventSetup/esScale.hh"
11 #include "tmGrammar/Algorithm.hh"
12 
16 
17 class L1TUtmTriggerMenuOnlineProd : public L1ConfigOnlineProdBaseExt<L1TUtmTriggerMenuRcd,L1TUtmTriggerMenu> {
18 private:
19 public:
20  virtual boost::shared_ptr<L1TUtmTriggerMenu> newObject(const std::string& objectKey) override ;
21 
24 };
25 
27 
28 boost::shared_ptr<L1TUtmTriggerMenu> L1TUtmTriggerMenuOnlineProd::newObject(const std::string& objectKey) {
29  using namespace edm::es;
30 
31  std::string stage2Schema = "CMS_TRG_L1_CONF" ;
32  edm::LogInfo( "L1-O2O: L1TUtmTriggerMenuOnlineProd" ) << "Producing L1TUtmTriggerMenu with key =" << objectKey ;
33 
34  if (objectKey.empty()) {
35  edm::LogInfo( "L1-O2O: L1TUtmTriggerMenuOnlineProd" ) << "Key is empty, returning empty CaloParams";
36  return boost::shared_ptr< L1TUtmTriggerMenu > ( new L1TUtmTriggerMenu() );
37  }
38 
39  std::vector< std::string > queryColumns;
40  queryColumns.push_back( "CONF" ) ;
41 
42  l1t::OMDSReader::QueryResults queryResult =
43  m_omdsReader.basicQuery( queryColumns,
44  stage2Schema,
45  "UGT_L1_MENU",
46  "UGT_L1_MENU.ID",
47  m_omdsReader.singleAttribute(objectKey)
48  ) ;
49 
50  if( queryResult.queryFailed() || queryResult.numberRows() != 1 ){
51  edm::LogError( "L1-O2O: L1TUtmTriggerMenuOnlineProd" ) << "Cannot get UGT_L1_MENU.CONF for ID="<<objectKey ;
52  return boost::shared_ptr< L1TUtmTriggerMenu >() ;
53  }
54 
55  std::string l1Menu;
56  queryResult.fillVariable( "CONF", l1Menu );
58  std::istringstream iss(l1Menu);
59 
60  const L1TUtmTriggerMenu * cmenu = reinterpret_cast<const L1TUtmTriggerMenu *>(tmeventsetup::getTriggerMenu(iss));
61  L1TUtmTriggerMenu * menu = const_cast<L1TUtmTriggerMenu *>(cmenu);
62 
63  using namespace edm::es;
64  boost::shared_ptr<L1TUtmTriggerMenu> pMenu ;
65  pMenu = boost::shared_ptr< L1TUtmTriggerMenu >(menu);
66  return pMenu;
67 
69 }
70 
71 //define this as a plug-in
virtual boost::shared_ptr< L1TUtmTriggerMenu > newObject(const std::string &objectKey) override
const QueryResults singleAttribute(const T &data) const
Definition: OMDSReader.h:296
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:86
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
Definition: ModuleFactory.h:60
L1TUtmTriggerMenuOnlineProd(const edm::ParameterSet &)