00001
00017
00018 #include "L1TriggerConfig/L1GtConfigProducers/interface/L1GtRsObjectKeysOnlineProd.h"
00019
00020
00021
00022
00023 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00024
00025
00026 L1GtRsObjectKeysOnlineProd::L1GtRsObjectKeysOnlineProd(const edm::ParameterSet& parSet) :
00027 L1ObjectKeysOnlineProdBase(parSet),
00028 m_partitionNumber(
00029 parSet.getParameter<int> ("PartitionNumber")),
00030 m_enableL1GtPrescaleFactorsAlgoTrig(
00031 parSet.getParameter<bool> ("EnableL1GtPrescaleFactorsAlgoTrig")),
00032 m_enableL1GtPrescaleFactorsTechTrig(
00033 parSet.getParameter<bool> ("EnableL1GtPrescaleFactorsTechTrig")),
00034 m_enableL1GtTriggerMaskAlgoTrig(
00035 parSet.getParameter<bool> ("EnableL1GtTriggerMaskAlgoTrig")),
00036 m_enableL1GtTriggerMaskTechTrig(
00037 parSet.getParameter<bool> ("EnableL1GtTriggerMaskTechTrig")),
00038 m_enableL1GtTriggerMaskVetoTechTrig(
00039 parSet.getParameter<bool> ("EnableL1GtTriggerMaskVetoTechTrig")) {
00040
00041
00042 }
00043
00044
00045 L1GtRsObjectKeysOnlineProd::~L1GtRsObjectKeysOnlineProd() {
00046
00047
00048
00049 }
00050
00051
00052 std::string L1GtRsObjectKeysOnlineProd::keyL1GtPrescaleFactorsAlgoTrig(const std::string& gtSchema) {
00053
00054 std::string objectKey;
00055
00056
00057
00058 l1t::OMDSReader::QueryResults objectKeyResults =
00059 m_omdsReader.basicQueryGenericKey<int> ("GT_RUN_SETTINGS_FK",
00060 gtSchema, "GT_RUN_SETTINGS_KEY_CURRENT",
00061 "GT_RUN_SETTINGS_KEY_CURRENT.GT_PARTITION_NUMBER",
00062 m_omdsReader.singleAttribute(m_partitionNumber), "");
00063
00064
00065 if (objectKeyResults.queryFailed()) {
00066 edm::LogError("L1-O2O")
00067 << "Problem with key for record L1GtPrescaleFactorsAlgoTrigRcd: query failed ";
00068 return objectKey;
00069 } else if ( ( objectKeyResults.numberRows() != 1 )) {
00070 edm::LogError("L1-O2O") << "Problem with key for record L1GtPrescaleFactorsAlgoTrigRcd: "
00071 << ( objectKeyResults.numberRows() ) << " rows were returned";
00072 return objectKey;
00073 }
00074
00075 objectKeyResults.fillVariable(objectKey);
00076
00077
00078 if (edm::isDebugEnabled()) {
00079 LogTrace("L1GtRsObjectKeysOnlineProd")
00080 << "\nThe following GT_RUN_SETTINGS_FK key "
00081 << "was found for L1GtPrescaleFactorsAlgoTrigRcd: \n "
00082 << objectKey << "\nfor partition " << m_partitionNumber << "\n"
00083 << std::endl;
00084 }
00085
00086 return objectKey;
00087 }
00088
00089
00090 std::string L1GtRsObjectKeysOnlineProd::keyL1GtPrescaleFactorsTechTrig(const std::string& gtSchema) {
00091
00092 std::string objectKey;
00093
00094
00095
00096 l1t::OMDSReader::QueryResults objectKeyResults =
00097 m_omdsReader.basicQueryGenericKey<int> ("GT_RUN_SETTINGS_FK",
00098 gtSchema, "GT_RUN_SETTINGS_KEY_CURRENT",
00099 "GT_RUN_SETTINGS_KEY_CURRENT.GT_PARTITION_NUMBER",
00100 m_omdsReader.singleAttribute(m_partitionNumber), "");
00101
00102
00103 if (objectKeyResults.queryFailed()) {
00104 edm::LogError("L1-O2O")
00105 << "Problem with key for record L1GtPrescaleFactorsTechTrigRcd: query failed ";
00106 return objectKey;
00107 } else if ( ( objectKeyResults.numberRows() != 1 )) {
00108 edm::LogError("L1-O2O") << "Problem with key for record L1GtPrescaleFactorsTechTrigRcd: "
00109 << ( objectKeyResults.numberRows() ) << " rows were returned";
00110 return objectKey;
00111 }
00112
00113 objectKeyResults.fillVariable(objectKey);
00114
00115
00116 if (edm::isDebugEnabled()) {
00117 LogTrace("L1GtRsObjectKeysOnlineProd")
00118 << "\nThe following GT_RUN_SETTINGS_FK key "
00119 << "was found for L1GtPrescaleFactorsTechTrigRcd: \n "
00120 << objectKey << "\nfor partition " << m_partitionNumber << "\n"
00121 << std::endl;
00122 }
00123
00124 return objectKey;
00125 }
00126
00127
00128 std::string L1GtRsObjectKeysOnlineProd::keyL1GtTriggerMaskAlgoTrig(const std::string& gtSchema) {
00129
00130 std::string objectKey;
00131
00132
00133
00134
00135
00136 l1t::OMDSReader::QueryResults objectKeyResults = m_omdsReader.basicQuery(
00137 "FINOR_ALGO_FK", gtSchema, "GT_RUN_SETTINGS", "GT_RUN_SETTINGS.ID",
00138 m_omdsReader.basicQueryGenericKey<int> (
00139 "GT_RUN_SETTINGS_FK", gtSchema, "GT_RUN_SETTINGS_KEY_CURRENT",
00140 "GT_RUN_SETTINGS_KEY_CURRENT.GT_PARTITION_NUMBER",
00141 m_omdsReader.singleAttribute(m_partitionNumber), ""));
00142
00143
00144 if (objectKeyResults.queryFailed()) {
00145 edm::LogError("L1-O2O")
00146 << "Problem with key for record L1GtTriggerMaskAlgoTrigRcd: query failed ";
00147 return objectKey;
00148 } else if ( ( objectKeyResults.numberRows() != 1 )) {
00149 edm::LogError("L1-O2O") << "Problem with key for record L1GtTriggerMaskAlgoTrigRcd: "
00150 << ( objectKeyResults.numberRows() ) << " rows were returned";
00151 return objectKey;
00152 }
00153
00154 objectKeyResults.fillVariable(objectKey);
00155
00156
00157 if (edm::isDebugEnabled()) {
00158 LogTrace("L1GtRsObjectKeysOnlineProd")
00159 << "\nThe following key was found for L1GtTriggerMaskAlgoTrigRcd: \n " << objectKey
00160 << "\nfor partition " << m_partitionNumber << "\n" << std::endl;
00161 }
00162
00163 return objectKey;
00164 }
00165
00166 std::string L1GtRsObjectKeysOnlineProd::keyL1GtTriggerMaskTechTrig(const std::string& gtSchema) {
00167
00168 std::string objectKey;
00169
00170
00171
00172
00173
00174 l1t::OMDSReader::QueryResults objectKeyResults = m_omdsReader.basicQuery(
00175 "FINOR_TT_FK", gtSchema, "GT_RUN_SETTINGS", "GT_RUN_SETTINGS.ID",
00176 m_omdsReader.basicQueryGenericKey<int> (
00177 "GT_RUN_SETTINGS_FK", gtSchema, "GT_RUN_SETTINGS_KEY_CURRENT",
00178 "GT_RUN_SETTINGS_KEY_CURRENT.GT_PARTITION_NUMBER",
00179 m_omdsReader.singleAttribute(m_partitionNumber), ""));
00180
00181
00182 if (objectKeyResults.queryFailed()) {
00183 edm::LogError("L1-O2O")
00184 << "Problem with key for record L1GtTriggerMaskTechTrigRcd: query failed ";
00185 return objectKey;
00186 } else if ( ( objectKeyResults.numberRows() != 1 )) {
00187 edm::LogError("L1-O2O") << "Problem with key for record L1GtTriggerMaskTechTrigRcd: "
00188 << ( objectKeyResults.numberRows() ) << " rows were returned";
00189 return objectKey;
00190 }
00191
00192 objectKeyResults.fillVariable(objectKey);
00193
00194
00195 if (edm::isDebugEnabled()) {
00196 LogTrace("L1GtRsObjectKeysOnlineProd")
00197 << "\nThe following key was found for L1GtTriggerMaskTechTrigRcd: \n " << objectKey
00198 << "\nfor partition " << m_partitionNumber << "\n" << std::endl;
00199 }
00200
00201 return objectKey;
00202 }
00203
00204 std::string L1GtRsObjectKeysOnlineProd::keyL1GtTriggerMaskVetoTechTrig(const std::string& gtSchema) {
00205
00206 std::string objectKey;
00207
00208
00209
00210
00211
00212 l1t::OMDSReader::QueryResults objectKeyResults = m_omdsReader.basicQuery(
00213 "VETO_TT_FK", gtSchema, "GT_RUN_SETTINGS", "GT_RUN_SETTINGS.ID",
00214 m_omdsReader.basicQueryGenericKey<int> (
00215 "GT_RUN_SETTINGS_FK", gtSchema, "GT_RUN_SETTINGS_KEY_CURRENT",
00216 "GT_RUN_SETTINGS_KEY_CURRENT.GT_PARTITION_NUMBER",
00217 m_omdsReader.singleAttribute(m_partitionNumber), ""));
00218
00219
00220 if (objectKeyResults.queryFailed()) {
00221 edm::LogError("L1-O2O")
00222 << "Problem with key for record L1GtTriggerMaskVetoTechTrigRcd: query failed ";
00223 return objectKey;
00224 } else if ( ( objectKeyResults.numberRows() != 1 )) {
00225 edm::LogError("L1-O2O") << "Problem with key for record L1GtTriggerMaskVetoTechTrigRcd: "
00226 << ( objectKeyResults.numberRows() ) << " rows were returned";
00227 return objectKey;
00228 }
00229
00230 objectKeyResults.fillVariable(objectKey);
00231
00232
00233 if (edm::isDebugEnabled()) {
00234 LogTrace("L1GtRsObjectKeysOnlineProd")
00235 << "\nThe following key was found for L1GtTriggerMaskVetoTechTrigRcd: \n "
00236 << objectKey << "\nfor partition " << m_partitionNumber << "\n" << std::endl;
00237 }
00238
00239 return objectKey;
00240 }
00241
00242
00243 void L1GtRsObjectKeysOnlineProd::fillObjectKeys(ReturnType pL1TriggerKey) {
00244
00245 const std::string gtSchema = "CMS_GT";
00246
00247 if (m_enableL1GtPrescaleFactorsAlgoTrig) {
00248 const std::string& objectKey = keyL1GtPrescaleFactorsAlgoTrig(gtSchema);
00249 if (!objectKey.empty()) {
00250 pL1TriggerKey->add(
00251 "L1GtPrescaleFactorsAlgoTrigRcd", "L1GtPrescaleFactors", objectKey);
00252 }
00253 }
00254
00255 if (m_enableL1GtPrescaleFactorsTechTrig) {
00256 const std::string& objectKey = keyL1GtPrescaleFactorsTechTrig(gtSchema);
00257 if (!objectKey.empty()) {
00258 pL1TriggerKey->add(
00259 "L1GtPrescaleFactorsTechTrigRcd", "L1GtPrescaleFactors", objectKey);
00260 }
00261 }
00262
00263 if (m_enableL1GtTriggerMaskAlgoTrig) {
00264 const std::string& objectKey = keyL1GtTriggerMaskAlgoTrig(gtSchema);
00265 if (!objectKey.empty()) {
00266 pL1TriggerKey->add("L1GtTriggerMaskAlgoTrigRcd", "L1GtTriggerMask", objectKey);
00267 }
00268 }
00269
00270 if (m_enableL1GtTriggerMaskTechTrig) {
00271 const std::string& objectKey = keyL1GtTriggerMaskTechTrig(gtSchema);
00272 if (!objectKey.empty()) {
00273 pL1TriggerKey->add("L1GtTriggerMaskTechTrigRcd", "L1GtTriggerMask", objectKey);
00274 }
00275 }
00276
00277 if (m_enableL1GtTriggerMaskVetoTechTrig) {
00278 const std::string& objectKey = keyL1GtTriggerMaskVetoTechTrig(gtSchema);
00279 if (!objectKey.empty()) {
00280 pL1TriggerKey->add(
00281 "L1GtTriggerMaskVetoTechTrigRcd", "L1GtTriggerMask", objectKey);
00282 }
00283 }
00284
00285 }
00286
00287 DEFINE_FWK_EVENTSETUP_MODULE( L1GtRsObjectKeysOnlineProd);