From 30bd35ec1ac1be6582dca2cf79c014aba5fac181 Mon Sep 17 00:00:00 2001 From: Eric Torrence <Eric.Torrence@cern.ch> Date: Tue, 14 Jun 2016 04:56:45 +0200 Subject: [PATCH] Change handling of muToLumi ERROR (LumiBlockComps-01-00-31) * Fix compliation errors in getLumi.cxx * Fix ERROR in LuminosityTool for muToLumi when lumi is invalid inayways * Tag as LumiBlockComps-01-00-31 2016-06-10 Will Buttinger <Will@cern.ch> * cmt/requirements: remove dependency of getLumi on GoodRunsLists (not needed) * Tag as LumiBlockComps-01-00-30 2016-05-30 Eric Torrence <torrence@cern.ch> * Change warning to error is muToLumi can't be found * Tag as LumiBlockComps-01-00-29 2016-05-26 Eric Torrence <torrence@cern.ch> * Change warning to error is muToLumi can't be found * Tag as LumiBlockComps-01-00-28 Former-commit-id: 800d18cbfa3937992816ca7b7968478c5665e143 --- LumiBlock/LumiBlockComps/CMakeLists.txt | 1 + LumiBlock/LumiBlockComps/cmt/requirements | 2 +- .../python/LuminosityToolDefault.py | 2 +- .../LumiBlockComps/src/LuminosityTool.cxx | 65 ++++++++++++------- LumiBlock/LumiBlockComps/util/getLumi.cxx | 3 +- 5 files changed, 46 insertions(+), 27 deletions(-) diff --git a/LumiBlock/LumiBlockComps/CMakeLists.txt b/LumiBlock/LumiBlockComps/CMakeLists.txt index 5ebe896b398..a31612e383b 100644 --- a/LumiBlock/LumiBlockComps/CMakeLists.txt +++ b/LumiBlock/LumiBlockComps/CMakeLists.txt @@ -58,3 +58,4 @@ atlas_add_executable( getLumi atlas_install_python_modules( python/*.py ) atlas_install_joboptions( share/*.py ) + diff --git a/LumiBlock/LumiBlockComps/cmt/requirements b/LumiBlock/LumiBlockComps/cmt/requirements index 1aac9304271..001c6d57003 100644 --- a/LumiBlock/LumiBlockComps/cmt/requirements +++ b/LumiBlock/LumiBlockComps/cmt/requirements @@ -50,6 +50,6 @@ end_private use_if tag=AthAnalysisBase pkg=xAODRootAccess ver=xAODRootAccess-* root=Control application getLumi ../util/getLumi.cxx -macro_append getLumi_dependencies " GoodRunsLists LumiBlockCompsLib " +macro_append getLumi_dependencies " LumiBlockCompsLib " diff --git a/LumiBlock/LumiBlockComps/python/LuminosityToolDefault.py b/LumiBlock/LumiBlockComps/python/LuminosityToolDefault.py index e7576467a52..63a477271d3 100644 --- a/LumiBlock/LumiBlockComps/python/LuminosityToolDefault.py +++ b/LumiBlock/LumiBlockComps/python/LuminosityToolDefault.py @@ -143,7 +143,7 @@ def LuminosityToolOfflineRun2(name="LuminosityTool"): folder = "/TRIGGER/LUMI/LBLB" if not conddb.folderRequested( folder ): conddb.addFolder('TRIGGER', folder) - mlog.info("LuminosityToolOfflineRun1 requested %s", folder) + mlog.info("LuminosityToolOfflineRun2 requested %s", folder) lumiTool.LBLBFolderName = folder diff --git a/LumiBlock/LumiBlockComps/src/LuminosityTool.cxx b/LumiBlock/LumiBlockComps/src/LuminosityTool.cxx index bb779609599..15d8bc87c06 100644 --- a/LumiBlock/LumiBlockComps/src/LuminosityTool.cxx +++ b/LumiBlock/LumiBlockComps/src/LuminosityTool.cxx @@ -430,7 +430,21 @@ LuminosityTool::recalculatePerBCIDLumi() // Clear the calibrated luminosity data m_LBInstLumi.assign(TOTAL_LHC_BCIDS, 0.); - // Update muToLumi + // Set some default values + m_MuToLumi = 0.; + + // Make some sanity checks that we have everyting we need + if (m_lumiFolderName.empty()) { + ATH_MSG_INFO( "LumiFolderName is empty in recalculatePerBCIDLumi()!"); + return; + } + + if (m_LBAvInstLumi <= 0.) { + ATH_MSG_INFO( "LBAvInstLumi is zero or negative in recalculatePerBCIDLumi():" << m_LBAvInstLumi); + return; + } + + // Update muToLumi (check value later) if (!m_onlineLumiCalibrationTool.empty()) { // This is the only correct way to do this! // The division below gives average mu (over all bunches) to total lumi @@ -440,37 +454,40 @@ LuminosityTool::recalculatePerBCIDLumi() if (m_MuToLumi < 0.) { ATH_MSG_INFO(" Found muToLumi = " << m_MuToLumi << " for channel " << m_calibChannel << ". Try backup channel..." ); m_MuToLumi = m_onlineLumiCalibrationTool->getMuToLumi(m_calibBackupChannel); - ATH_MSG_INFO(" Found muToLumi = " << m_MuToLumi << " for channel " << m_calibBackupChannel); - - if (m_MuToLumi < 0.) { - ATH_MSG_WARNING(" Found invalid muToLumi = " << m_MuToLumi << " for backup channel " << m_calibBackupChannel << "!"); - m_MuToLumi = 0.; - } - + ATH_MSG_INFO(" Found muToLumi = " << m_MuToLumi << " for backup channel " << m_calibBackupChannel); } - - //} else if (m_LBAvEvtsPerBX > 0.) { - //m_MuToLumi = m_LBAvInstLumi / m_LBAvEvtsPerBX; } else { - m_MuToLumi = 0.; - } - ATH_MSG_DEBUG(" Found muToLumi = " << m_MuToLumi << " for channel " << m_calibChannel ); - - // Make some sanity checks that we have everyting we need - if (m_lumiFolderName.empty()) { - ATH_MSG_INFO( "LumiFolderName is empty in recalculatePerBCIDLumi()!"); - return; + ATH_MSG_WARNING(" No onlineCalibrationTool found, can't set muToLumi!"); } + + // Check validity + bool isValid = true; int perBcidValid = (m_Valid/10) % 10; if ((m_Valid & 0x03) || (perBcidValid > 0)) { // Skip if either per-BCID or LBAv is invalid - ATH_MSG_WARNING( " Invalid per-BCID luminosity found: " << m_Valid << "!" ); - return; + isValid = false; + if (m_skipInvalid) { + ATH_MSG_WARNING( " Invalid per-BCID luminosity found: " << m_Valid << "!" ); + return; + } else { + ATH_MSG_WARNING( " Invalid per-BCID luminosity found: " << m_Valid << " continuing because skipInvalid == FALSE" ); + } } - if (m_LBAvInstLumi <= 0.) { - ATH_MSG_INFO( "LBAvInstLumi is zero or negative in recalculatePerBCIDLumi():" << m_LBAvInstLumi); - return; + + + // Now check muToLumi and report depending upon whether lumi is valid or not + if (m_MuToLumi < 0.) { + if (isValid) { + ATH_MSG_ERROR(" Found invalid muToLumi = " << m_MuToLumi << " for backup channel " << m_calibBackupChannel << "!"); + } else { + ATH_MSG_WARNING(" Found invalid muToLumi = " << m_MuToLumi << " for backup channel " << m_calibBackupChannel << "!"); + } + + // Don't keep negative values + m_MuToLumi = 0.; } + ATH_MSG_DEBUG(" Found muToLumi = " << m_MuToLumi << " for channel " << m_calibChannel ); + // Check here if we want to do this the Run1 way (hard) or the Run2 way (easy) diff --git a/LumiBlock/LumiBlockComps/util/getLumi.cxx b/LumiBlock/LumiBlockComps/util/getLumi.cxx index 65669a89406..838b04cd2d4 100644 --- a/LumiBlock/LumiBlockComps/util/getLumi.cxx +++ b/LumiBlock/LumiBlockComps/util/getLumi.cxx @@ -16,7 +16,8 @@ #include <iostream> #ifndef XAOD_ANALYSIS -int main(int argc, char* argv[]) { +//int main(int argc, char* argv[]) { +int main( int, char** ) { std::cout << " This application is currently only available in the analysis releases \n \ Please setup an AthAnalysisBase release to use this application." << std::endl; return 0; -- GitLab