Contrary to what I told you during the calib.review meeting, the finaliseCCDB callback for each object is triggered by the ctx.inputs().get<...>(spec) call for corresponding object. This was mentioned in the fixed version of the presentation: CCDB_intro - Google Präsentationen
As the slide says, at the moment there is a problem with triggering the callback when only DataRef is extracted, i.e. ctx.inputs().get<...>(spec) and unfortunately, the access to std containers works only via such call, e.g.
const auto align = o2::framework::DataRefUtils::as<CCDBSerialized<vector<o2::detectors::AlignParam>> (ctx.inputs().get("itsalg"));
so, in this case the finaliseCCDB will not be called. @eulisse is aware of the problem.
but I am getting an error during the building of o2: /Users/matthias/alice/sw/SOURCES/O2/idc_debug/0/Framework/Core/include/Framework/SerializationMethods.h:56:3: error: static_assert failed due to requirement 'std::is_pointer<std::__1::unordered_map<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, o2::tpc::CalDet<float>, std::__1::hash<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::equal_to<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>>, std::__1::allocator<std::__1::pair<const std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, o2::tpc::CalDet<float>>>> *>::value == false' "wrapped type can not be a pointer" static_assert(std::is_pointer<T>::value == false, "wrapped type can not be a pointer");
Loading the object via const auto thresholdMapMap = o2::framework::DataRefUtils::as<CCDBSerialized<std::unordered_map<std::string, o2::tpc::CalDet<float>>>>(pc.inputs().get("tpcthreshold")); seems to work.