diff --git a/LumiBlock/LumiBlockComps/CMakeLists.txt b/LumiBlock/LumiBlockComps/CMakeLists.txt index 5ebe896b39802a63dd0b4157156378fde423c779..a31612e383bb235fb29b9f2876e74102d24906f1 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 1aac930427150885e11f9a19474d78b04391ffde..001c6d57003f6e17b28a4b51dc88b4545c74baf9 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 e7576467a52b77b54722db069917584c9273a30c..63a477271d39216d5d46000b9dbe650f9fdb616d 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 bb779609599ac232400d2796c0e030db8b133217..15d8bc87c065f48439a01fb851c7f7d347e3151d 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 65669a894062cc8aa8ef51c2514ececea942a682..838b04cd2d4fa904abad0672db317e2c2e2e0d0c 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;