CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
L1GtTscObjectKeysOnlineProd.cc
Go to the documentation of this file.
1 
15 // this class header
17 
18 // system include files
19 
20 // user include files
22 
23 // constructor
26  m_enableL1GtParameters(parSet.getParameter<bool>("EnableL1GtParameters")),
27  m_enableL1GtTriggerMenu(parSet.getParameter<bool>("EnableL1GtTriggerMenu")),
28  m_enableL1GtPsbSetup(parSet.getParameter<bool>("EnableL1GtPsbSetup")) {
29  // empty
30 }
31 
32 // destructor
34  // empty
35 }
36 
37 // private methods
38 
40  const std::string& gtSchema) {
41  std::string objectKey;
42 
43  if (!subsystemKey.empty()) {
44  // Execute SQL queries to get keys from OMDS.
45 
46  // SELECT GTFE_SETUP_FK FROM CMS_GT.GT_SETUP WHERE GT_SETUP.ID = MyKey
48  "GTFE_SETUP_FK", gtSchema, "GT_SETUP", "GT_SETUP.ID", m_omdsReader.singleAttribute(subsystemKey));
49 
50  // check if query was successful
51  if (objectKeyResults.queryFailed()) {
52  edm::LogError("L1-O2O") << "Problem with key for record L1GtParametersRcd: query failed ";
53  return objectKey;
54  } else if ((objectKeyResults.numberRows() != 1)) {
55  edm::LogError("L1-O2O") << "Problem with key for record L1GtParametersRcd: " << (objectKeyResults.numberRows())
56  << " rows were returned";
57  return objectKey;
58  }
59 
60  objectKeyResults.fillVariable(objectKey);
61  }
62 
63  return objectKey;
64 }
65 
67  const std::string& gtSchema) {
68  std::string objectKey;
69 
70  if (!subsystemKey.empty()) {
71  // Execute SQL queries to get keys from OMDS.
72 
73  // SELECT L1T_MENU_FK FROM CMS_GT.GT_SETUP WHERE GT_SETUP.ID = MyKey
75  "L1T_MENU_FK", gtSchema, "GT_SETUP", "GT_SETUP.ID", m_omdsReader.singleAttribute(subsystemKey));
76 
77  // check if query was successful
78  if (objectKeyResults.queryFailed()) {
79  edm::LogError("L1-O2O") << "Problem with key for record L1GtTriggerMenuRcd: query failed ";
80  return objectKey;
81  } else if ((objectKeyResults.numberRows() != 1)) {
82  edm::LogError("L1-O2O") << "Problem with key for record L1GtTriggerMenuRcd: " << (objectKeyResults.numberRows())
83  << " rows were returned";
84  return objectKey;
85  }
86 
87  objectKeyResults.fillVariable(objectKey);
88  }
89 
90  return objectKey;
91 }
92 
94  std::string objectKey;
95 
96  if (!subsystemKey.empty()) {
97  // no need to query OMDS, one uses the GT_SETUP key to get the individual PSB keys.
98  // the L1GtPsbSetup key is GT_SETUP key
99  objectKey = subsystemKey;
100  }
101 
102  return objectKey;
103 }
104 
105 // public methods
107  // kMYSUBSYSTEM = kCSCTF, kDTTF, kRPC, kGMT, kRCT, mkGCT, kGT, or kTSP0
108  // subsystemKey = TRIGGERSUP_CONF.{CSCTF_KEY, DTTF_KEY, RPC_KEY, GMT_KEY, RCT_KEY, GCT_KEY, GT_KEY}
109 
110  std::string subsystemKey = pL1TriggerKey->subsystemKey(L1TriggerKey::kGT);
111  const std::string gtSchema = "CMS_GT";
112 
113  //
115  const std::string& objectKey = keyL1GtParameters(subsystemKey, gtSchema);
116  if (!objectKey.empty()) {
117  pL1TriggerKey->add("L1GtParametersRcd", "L1GtParameters", objectKey);
118  }
119  }
120 
121  //
123  const std::string& objectKey = keyL1GtTriggerMenu(subsystemKey, gtSchema);
124  if (!objectKey.empty()) {
125  pL1TriggerKey->add("L1GtTriggerMenuRcd", "L1GtTriggerMenu", objectKey);
126  }
127  }
128 
129  //
130  if (m_enableL1GtPsbSetup) {
131  const std::string& objectKey = keyL1GtPsbSetup(subsystemKey, gtSchema);
132  if (!objectKey.empty()) {
133  pL1TriggerKey->add("L1GtPsbSetupRcd", "L1GtPsbSetup", objectKey);
134  }
135  }
136 }
137 
std::string keyL1GtPsbSetup(const std::string &subsystemKey, const std::string &gtSchema)
bool fillVariable(const std::string &columnName, T &outputVariable) const
Definition: OMDSReader.h:274
~L1GtTscObjectKeysOnlineProd() override
destructor
const QueryResults singleAttribute(const T &data) const
Definition: OMDSReader.h:259
std::unique_ptr< L1TriggerKey >::pointer FillType
L1GtTscObjectKeysOnlineProd(const edm::ParameterSet &)
constructor
Log< level::Error, false > LogError
std::string keyL1GtParameters(const std::string &subsystemKey, const std::string &gtSchema)
keys for individual objects
bool m_enableL1GtParameters
enable key search for each record
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
std::string keyL1GtTriggerMenu(const std::string &subsystemKey, const std::string &gtSchema)
#define DEFINE_FWK_EVENTSETUP_MODULE(type)
Definition: ModuleFactory.h:60
void fillObjectKeys(FillType pL1TriggerKey) override
public methods