File indexing completed on 2023-03-17 11:14:16
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #include "L1TriggerConfig/L1GtConfigProducers/interface/L1GtRsObjectKeysOnlineProd.h"
0017
0018
0019
0020
0021 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0022
0023
0024 L1GtRsObjectKeysOnlineProd::L1GtRsObjectKeysOnlineProd(const edm::ParameterSet& parSet)
0025 : L1ObjectKeysOnlineProdBase(parSet),
0026 m_partitionNumber(parSet.getParameter<int>("PartitionNumber")),
0027 m_enableL1GtPrescaleFactorsAlgoTrig(parSet.getParameter<bool>("EnableL1GtPrescaleFactorsAlgoTrig")),
0028 m_enableL1GtPrescaleFactorsTechTrig(parSet.getParameter<bool>("EnableL1GtPrescaleFactorsTechTrig")),
0029 m_enableL1GtTriggerMaskAlgoTrig(parSet.getParameter<bool>("EnableL1GtTriggerMaskAlgoTrig")),
0030 m_enableL1GtTriggerMaskTechTrig(parSet.getParameter<bool>("EnableL1GtTriggerMaskTechTrig")),
0031 m_enableL1GtTriggerMaskVetoTechTrig(parSet.getParameter<bool>("EnableL1GtTriggerMaskVetoTechTrig")) {
0032
0033 }
0034
0035
0036 L1GtRsObjectKeysOnlineProd::~L1GtRsObjectKeysOnlineProd() {
0037
0038 }
0039
0040
0041 std::string L1GtRsObjectKeysOnlineProd::keyL1GtPrescaleFactorsAlgoTrig(const std::string& gtSchema) {
0042 std::string objectKey;
0043
0044
0045
0046 l1t::OMDSReader::QueryResults objectKeyResults =
0047 m_omdsReader.basicQueryGenericKey<int>("GT_RUN_SETTINGS_FK",
0048 gtSchema,
0049 "GT_RUN_SETTINGS_KEY_CURRENT",
0050 "GT_RUN_SETTINGS_KEY_CURRENT.GT_PARTITION_NUMBER",
0051 m_omdsReader.singleAttribute(m_partitionNumber),
0052 "");
0053
0054
0055 if (objectKeyResults.queryFailed()) {
0056 edm::LogError("L1-O2O") << "Problem with key for record L1GtPrescaleFactorsAlgoTrigRcd: query failed ";
0057 return objectKey;
0058 } else if ((objectKeyResults.numberRows() != 1)) {
0059 edm::LogError("L1-O2O") << "Problem with key for record L1GtPrescaleFactorsAlgoTrigRcd: "
0060 << (objectKeyResults.numberRows()) << " rows were returned";
0061 return objectKey;
0062 }
0063
0064 objectKeyResults.fillVariable(objectKey);
0065
0066
0067 if (edm::isDebugEnabled()) {
0068 LogTrace("L1GtRsObjectKeysOnlineProd") << "\nThe following GT_RUN_SETTINGS_FK key "
0069 << "was found for L1GtPrescaleFactorsAlgoTrigRcd: \n " << objectKey
0070 << "\nfor partition " << m_partitionNumber << "\n"
0071 << std::endl;
0072 }
0073
0074 return objectKey;
0075 }
0076
0077 std::string L1GtRsObjectKeysOnlineProd::keyL1GtPrescaleFactorsTechTrig(const std::string& gtSchema) {
0078 std::string objectKey;
0079
0080
0081
0082 l1t::OMDSReader::QueryResults objectKeyResults =
0083 m_omdsReader.basicQueryGenericKey<int>("GT_RUN_SETTINGS_FK",
0084 gtSchema,
0085 "GT_RUN_SETTINGS_KEY_CURRENT",
0086 "GT_RUN_SETTINGS_KEY_CURRENT.GT_PARTITION_NUMBER",
0087 m_omdsReader.singleAttribute(m_partitionNumber),
0088 "");
0089
0090
0091 if (objectKeyResults.queryFailed()) {
0092 edm::LogError("L1-O2O") << "Problem with key for record L1GtPrescaleFactorsTechTrigRcd: query failed ";
0093 return objectKey;
0094 } else if ((objectKeyResults.numberRows() != 1)) {
0095 edm::LogError("L1-O2O") << "Problem with key for record L1GtPrescaleFactorsTechTrigRcd: "
0096 << (objectKeyResults.numberRows()) << " rows were returned";
0097 return objectKey;
0098 }
0099
0100 objectKeyResults.fillVariable(objectKey);
0101
0102
0103 if (edm::isDebugEnabled()) {
0104 LogTrace("L1GtRsObjectKeysOnlineProd") << "\nThe following GT_RUN_SETTINGS_FK key "
0105 << "was found for L1GtPrescaleFactorsTechTrigRcd: \n " << objectKey
0106 << "\nfor partition " << m_partitionNumber << "\n"
0107 << std::endl;
0108 }
0109
0110 return objectKey;
0111 }
0112
0113 std::string L1GtRsObjectKeysOnlineProd::keyL1GtTriggerMaskAlgoTrig(const std::string& gtSchema) {
0114 std::string objectKey;
0115
0116
0117
0118
0119
0120 l1t::OMDSReader::QueryResults objectKeyResults =
0121 m_omdsReader.basicQuery("FINOR_ALGO_FK",
0122 gtSchema,
0123 "GT_RUN_SETTINGS",
0124 "GT_RUN_SETTINGS.ID",
0125 m_omdsReader.basicQueryGenericKey<int>("GT_RUN_SETTINGS_FK",
0126 gtSchema,
0127 "GT_RUN_SETTINGS_KEY_CURRENT",
0128 "GT_RUN_SETTINGS_KEY_CURRENT.GT_PARTITION_NUMBER",
0129 m_omdsReader.singleAttribute(m_partitionNumber),
0130 ""));
0131
0132
0133 if (objectKeyResults.queryFailed()) {
0134 edm::LogError("L1-O2O") << "Problem with key for record L1GtTriggerMaskAlgoTrigRcd: query failed ";
0135 return objectKey;
0136 } else if ((objectKeyResults.numberRows() != 1)) {
0137 edm::LogError("L1-O2O") << "Problem with key for record L1GtTriggerMaskAlgoTrigRcd: "
0138 << (objectKeyResults.numberRows()) << " rows were returned";
0139 return objectKey;
0140 }
0141
0142 objectKeyResults.fillVariable(objectKey);
0143
0144
0145 if (edm::isDebugEnabled()) {
0146 LogTrace("L1GtRsObjectKeysOnlineProd") << "\nThe following key was found for L1GtTriggerMaskAlgoTrigRcd: \n "
0147 << objectKey << "\nfor partition " << m_partitionNumber << "\n"
0148 << std::endl;
0149 }
0150
0151 return objectKey;
0152 }
0153
0154 std::string L1GtRsObjectKeysOnlineProd::keyL1GtTriggerMaskTechTrig(const std::string& gtSchema) {
0155 std::string objectKey;
0156
0157
0158
0159
0160
0161 l1t::OMDSReader::QueryResults objectKeyResults =
0162 m_omdsReader.basicQuery("FINOR_TT_FK",
0163 gtSchema,
0164 "GT_RUN_SETTINGS",
0165 "GT_RUN_SETTINGS.ID",
0166 m_omdsReader.basicQueryGenericKey<int>("GT_RUN_SETTINGS_FK",
0167 gtSchema,
0168 "GT_RUN_SETTINGS_KEY_CURRENT",
0169 "GT_RUN_SETTINGS_KEY_CURRENT.GT_PARTITION_NUMBER",
0170 m_omdsReader.singleAttribute(m_partitionNumber),
0171 ""));
0172
0173
0174 if (objectKeyResults.queryFailed()) {
0175 edm::LogError("L1-O2O") << "Problem with key for record L1GtTriggerMaskTechTrigRcd: query failed ";
0176 return objectKey;
0177 } else if ((objectKeyResults.numberRows() != 1)) {
0178 edm::LogError("L1-O2O") << "Problem with key for record L1GtTriggerMaskTechTrigRcd: "
0179 << (objectKeyResults.numberRows()) << " rows were returned";
0180 return objectKey;
0181 }
0182
0183 objectKeyResults.fillVariable(objectKey);
0184
0185
0186 if (edm::isDebugEnabled()) {
0187 LogTrace("L1GtRsObjectKeysOnlineProd") << "\nThe following key was found for L1GtTriggerMaskTechTrigRcd: \n "
0188 << objectKey << "\nfor partition " << m_partitionNumber << "\n"
0189 << std::endl;
0190 }
0191
0192 return objectKey;
0193 }
0194
0195 std::string L1GtRsObjectKeysOnlineProd::keyL1GtTriggerMaskVetoTechTrig(const std::string& gtSchema) {
0196 std::string objectKey;
0197
0198
0199
0200
0201
0202 l1t::OMDSReader::QueryResults objectKeyResults =
0203 m_omdsReader.basicQuery("VETO_TT_FK",
0204 gtSchema,
0205 "GT_RUN_SETTINGS",
0206 "GT_RUN_SETTINGS.ID",
0207 m_omdsReader.basicQueryGenericKey<int>("GT_RUN_SETTINGS_FK",
0208 gtSchema,
0209 "GT_RUN_SETTINGS_KEY_CURRENT",
0210 "GT_RUN_SETTINGS_KEY_CURRENT.GT_PARTITION_NUMBER",
0211 m_omdsReader.singleAttribute(m_partitionNumber),
0212 ""));
0213
0214
0215 if (objectKeyResults.queryFailed()) {
0216 edm::LogError("L1-O2O") << "Problem with key for record L1GtTriggerMaskVetoTechTrigRcd: query failed ";
0217 return objectKey;
0218 } else if ((objectKeyResults.numberRows() != 1)) {
0219 edm::LogError("L1-O2O") << "Problem with key for record L1GtTriggerMaskVetoTechTrigRcd: "
0220 << (objectKeyResults.numberRows()) << " rows were returned";
0221 return objectKey;
0222 }
0223
0224 objectKeyResults.fillVariable(objectKey);
0225
0226
0227 if (edm::isDebugEnabled()) {
0228 LogTrace("L1GtRsObjectKeysOnlineProd") << "\nThe following key was found for L1GtTriggerMaskVetoTechTrigRcd: \n "
0229 << objectKey << "\nfor partition " << m_partitionNumber << "\n"
0230 << std::endl;
0231 }
0232
0233 return objectKey;
0234 }
0235
0236
0237 void L1GtRsObjectKeysOnlineProd::fillObjectKeys(FillType pL1TriggerKey) {
0238 const std::string gtSchema = "CMS_GT";
0239
0240 if (m_enableL1GtPrescaleFactorsAlgoTrig) {
0241 const std::string& objectKey = keyL1GtPrescaleFactorsAlgoTrig(gtSchema);
0242 if (!objectKey.empty()) {
0243 pL1TriggerKey->add("L1GtPrescaleFactorsAlgoTrigRcd", "L1GtPrescaleFactors", objectKey);
0244 }
0245 }
0246
0247 if (m_enableL1GtPrescaleFactorsTechTrig) {
0248 const std::string& objectKey = keyL1GtPrescaleFactorsTechTrig(gtSchema);
0249 if (!objectKey.empty()) {
0250 pL1TriggerKey->add("L1GtPrescaleFactorsTechTrigRcd", "L1GtPrescaleFactors", objectKey);
0251 }
0252 }
0253
0254 if (m_enableL1GtTriggerMaskAlgoTrig) {
0255 const std::string& objectKey = keyL1GtTriggerMaskAlgoTrig(gtSchema);
0256 if (!objectKey.empty()) {
0257 pL1TriggerKey->add("L1GtTriggerMaskAlgoTrigRcd", "L1GtTriggerMask", objectKey);
0258 }
0259 }
0260
0261 if (m_enableL1GtTriggerMaskTechTrig) {
0262 const std::string& objectKey = keyL1GtTriggerMaskTechTrig(gtSchema);
0263 if (!objectKey.empty()) {
0264 pL1TriggerKey->add("L1GtTriggerMaskTechTrigRcd", "L1GtTriggerMask", objectKey);
0265 }
0266 }
0267
0268 if (m_enableL1GtTriggerMaskVetoTechTrig) {
0269 const std::string& objectKey = keyL1GtTriggerMaskVetoTechTrig(gtSchema);
0270 if (!objectKey.empty()) {
0271 pL1TriggerKey->add("L1GtTriggerMaskVetoTechTrigRcd", "L1GtTriggerMask", objectKey);
0272 }
0273 }
0274 }
0275
0276 DEFINE_FWK_EVENTSETUP_MODULE(L1GtRsObjectKeysOnlineProd);