From 450277195c7e87b5ba01eb7f8f972d00fb34306d Mon Sep 17 00:00:00 2001 From: ddobrigk Date: Fri, 29 Jul 2022 14:30:33 +0200 Subject: [PATCH 1/2] fix GRP checks, capture all ccdb exceptions correctly (no forcing fatal, please) --- Common/TableProducer/multiplicityTable.cxx | 1 + PWGLF/TableProducer/cascadebuilder.cxx | 19 +++++++++++++++++-- PWGLF/TableProducer/lambdakzerobuilder.cxx | 19 +++++++++++++++++-- 3 files changed, 35 insertions(+), 4 deletions(-) diff --git a/Common/TableProducer/multiplicityTable.cxx b/Common/TableProducer/multiplicityTable.cxx index 61b0d4ef967..d690df739d0 100644 --- a/Common/TableProducer/multiplicityTable.cxx +++ b/Common/TableProducer/multiplicityTable.cxx @@ -67,6 +67,7 @@ struct MultiplicityTableTaskIndexed { ccdb->setURL("http://alice-ccdb.cern.ch"); ccdb->setCaching(true); ccdb->setLocalObjectValidityChecking(); + ccdb->setFatalWhenNull(false); //don't fatal, please - exception is caught explicitly (as it should) } void processRun2(aod::Run2MatchedSparse::iterator const& collision, soa::Join const& tracksExtra, aod::BCs const&, aod::Zdcs const&, aod::FV0As const& fv0as, aod::FV0Cs const& fv0cs, aod::FT0s const& ft0s) diff --git a/PWGLF/TableProducer/cascadebuilder.cxx b/PWGLF/TableProducer/cascadebuilder.cxx index 93406c32577..e35c408bc4e 100644 --- a/PWGLF/TableProducer/cascadebuilder.cxx +++ b/PWGLF/TableProducer/cascadebuilder.cxx @@ -45,6 +45,7 @@ #include "DetectorsBase/Propagator.h" #include "DetectorsBase/GeometryManager.h" #include "DataFormatsParameters/GRPObject.h" +#include "DataFormatsParameters/GRPMagField.h" #include #include @@ -93,6 +94,8 @@ struct cascadeBuilder { Configurable dcabachtopv{"dcabachtopv", .1, "DCA Bach To PV"}; Configurable tpcrefit{"tpcrefit", false, "demand TPC refit"}; Configurable v0radius{"v0radius", 0.9, "v0radius"}; + Configurable grpPath{"grpPath", "GLO/GRP/GRP", "Path of the grp file"}; + Configurable grpmagPath{"grpmagPath", "GLO/Config/GRPMagField", "CCDB path of the GRPMagField object"}; int mRunNumber; float d_bz; @@ -110,6 +113,7 @@ struct cascadeBuilder { ccdb->setURL("http://alice-ccdb.cern.ch"); ccdb->setCaching(true); ccdb->setLocalObjectValidityChecking(); + ccdb->setFatalWhenNull(false); auto lut = o2::base::MatLayerCylSet::rectifyPtrFromFile(ccdb->get("GLO/Param/MatLUT")); @@ -119,8 +123,19 @@ struct cascadeBuilder { /* but what happens if the run changes while doing the processing? */ constexpr long run3grp_timestamp = (1619781650000 + 1619781529000) / 2; - o2::parameters::GRPObject* grpo = ccdb->getForTimeStamp("GLO/GRP/GRP", run3grp_timestamp); - o2::base::Propagator::initFieldFromGRP(grpo); + o2::parameters::GRPObject* grpo = ccdb->getForTimeStamp(grpPath, run3grp_timestamp); + o2::parameters::GRPMagField* grpmag = 0x0; + if (!grpo) { + grpmag = ccdb->getForTimeStamp(grpmagPath, run3grp_timestamp); + if (!grpmag) { + LOG(fatal) << "Got nullptr from CCDB for path " << grpmagPath << " of object GRPMagField and " << grpPath << " of object GRPObject for timestamp " << run3grp_timestamp; + } + } + if(grpo){ + o2::base::Propagator::initFieldFromGRP(grpo); + }else{ + o2::base::Propagator::initFieldFromGRP(grpmag); + } o2::base::Propagator::Instance()->setMatLUT(lut); } } diff --git a/PWGLF/TableProducer/lambdakzerobuilder.cxx b/PWGLF/TableProducer/lambdakzerobuilder.cxx index 9859158521c..dbe32721308 100644 --- a/PWGLF/TableProducer/lambdakzerobuilder.cxx +++ b/PWGLF/TableProducer/lambdakzerobuilder.cxx @@ -45,6 +45,7 @@ #include "DetectorsBase/Propagator.h" #include "DetectorsBase/GeometryManager.h" #include "DataFormatsParameters/GRPObject.h" +#include "DataFormatsParameters/GRPMagField.h" #include #include @@ -129,6 +130,8 @@ struct lambdakzeroBuilder { Configurable v0radius{"v0radius", 5.0, "v0radius"}; Configurable useMatCorrType{"useMatCorrType", 0, "0: none, 1: TGeo, 2: LUT"}; Configurable rejDiffCollTracks{"rejDiffCollTracks", 0, "rejDiffCollTracks"}; + Configurable grpPath{"grpPath", "GLO/GRP/GRP", "Path of the grp file"}; + Configurable grpmagPath{"grpmagPath", "GLO/Config/GRPMagField", "CCDB path of the GRPMagField object"}; // for debugging #ifdef MY_DEBUG @@ -147,6 +150,7 @@ struct lambdakzeroBuilder { ccdb->setURL("http://alice-ccdb.cern.ch"); ccdb->setCaching(true); ccdb->setLocalObjectValidityChecking(); + ccdb->setFatalWhenNull(false); auto lut = o2::base::MatLayerCylSet::rectifyPtrFromFile(ccdb->get("GLO/Param/MatLUT")); @@ -156,8 +160,19 @@ struct lambdakzeroBuilder { /* but what happens if the run changes while doing the processing? */ constexpr long run3grp_timestamp = (1619781650000 + 1619781529000) / 2; - o2::parameters::GRPObject* grpo = ccdb->getForTimeStamp("GLO/GRP/GRP", run3grp_timestamp); - o2::base::Propagator::initFieldFromGRP(grpo); + o2::parameters::GRPObject* grpo = ccdb->getForTimeStamp(grpPath, run3grp_timestamp); + o2::parameters::GRPMagField* grpmag = 0x0; + if (!grpo) { + grpmag = ccdb->getForTimeStamp(grpmagPath, run3grp_timestamp); + if (!grpmag) { + LOG(fatal) << "Got nullptr from CCDB for path " << grpmagPath << " of object GRPMagField and " << grpPath << " of object GRPObject for timestamp " << run3grp_timestamp; + } + } + if(grpo){ + o2::base::Propagator::initFieldFromGRP(grpo); + }else{ + o2::base::Propagator::initFieldFromGRP(grpmag); + } o2::base::Propagator::Instance()->setMatLUT(lut); } From 453ea5c88622c8ee0c1dc95b6800d816a2519713 Mon Sep 17 00:00:00 2001 From: ddobrigk Date: Fri, 29 Jul 2022 14:34:08 +0200 Subject: [PATCH 2/2] Fix clang --- PWGLF/TableProducer/cascadebuilder.cxx | 4 ++-- PWGLF/TableProducer/lambdakzerobuilder.cxx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/PWGLF/TableProducer/cascadebuilder.cxx b/PWGLF/TableProducer/cascadebuilder.cxx index e35c408bc4e..3b0223f9644 100644 --- a/PWGLF/TableProducer/cascadebuilder.cxx +++ b/PWGLF/TableProducer/cascadebuilder.cxx @@ -131,9 +131,9 @@ struct cascadeBuilder { LOG(fatal) << "Got nullptr from CCDB for path " << grpmagPath << " of object GRPMagField and " << grpPath << " of object GRPObject for timestamp " << run3grp_timestamp; } } - if(grpo){ + if (grpo) { o2::base::Propagator::initFieldFromGRP(grpo); - }else{ + } else { o2::base::Propagator::initFieldFromGRP(grpmag); } o2::base::Propagator::Instance()->setMatLUT(lut); diff --git a/PWGLF/TableProducer/lambdakzerobuilder.cxx b/PWGLF/TableProducer/lambdakzerobuilder.cxx index dbe32721308..c7124c1621e 100644 --- a/PWGLF/TableProducer/lambdakzerobuilder.cxx +++ b/PWGLF/TableProducer/lambdakzerobuilder.cxx @@ -168,9 +168,9 @@ struct lambdakzeroBuilder { LOG(fatal) << "Got nullptr from CCDB for path " << grpmagPath << " of object GRPMagField and " << grpPath << " of object GRPObject for timestamp " << run3grp_timestamp; } } - if(grpo){ + if (grpo) { o2::base::Propagator::initFieldFromGRP(grpo); - }else{ + } else { o2::base::Propagator::initFieldFromGRP(grpmag); } o2::base::Propagator::Instance()->setMatLUT(lut);