6#include "GaudiKernel/IClassIDSvc.h"
7#include "GaudiKernel/TypeNameString.h"
13 base_class(name, svc),
14 m_dataSvc(
"MuonCalibStreamDataProviderSvc", name) {
15 m_typeNames.push_back(
"Muon::MdtPrepDataContainer/MDT_DriftCircles");
30 return StatusCode::SUCCESS;
34 ATH_MSG_DEBUG(
" call MuonCalibStreamAddressProviderSvc::preLoadAddresses");
37 ATH_MSG_DEBUG(
"idp = " << idp <<
" != StoreID::EVENT_STORE; not creating TADs");
38 return StatusCode::SUCCESS;
40 ATH_MSG_DEBUG(
"idp = " << idp <<
" == StoreID::EVENT_STORE; Creating TADs for muon detectors!");
44 std::vector<std::string>::const_iterator it =
m_typeNames.begin();
45 std::vector<std::string>::const_iterator it_e =
m_typeNames.end();
47 SmartIF<IClassIDSvc> clidSvc{service(
"ClassIDSvc")};
50 for (; it != it_e; ++it) {
51 Gaudi::Utils::TypeNameString item(*it);
52 std::string t = item.type();
53 std::string nm = item.name();
56 ATH_CHECK(clidSvc->getIDOfTypeName(t,
id));
60 ATH_MSG_DEBUG(
" created TAD for (type,clid,name,TAD)" << t <<
" " <<
id <<
" " << nm);
65 return StatusCode::SUCCESS;
71 std::string nm = tad->
name();
74 if (it ==
m_clidKey.end())
return StatusCode::FAILURE;
76 if ((*it).second.count(nm) == 0)
return StatusCode::FAILURE;
82 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
uint32_t CLID
The Class ID type.
MuonCalibStreamAddressProviderSvc(const std::string &name, ISvcLocator *svcloc)
Standard constructor.
virtual StatusCode preLoadAddresses(StoreID::type id, tadList &tlist)
std::map< CLID, std::set< std::string > > m_clidKey
virtual ~MuonCalibStreamAddressProviderSvc()
Standard Destructor.
virtual StatusCode updateAddress(StoreID::type tp, SG::TransientAddress *tad, const EventContext &)
update an existing transient Address
virtual StatusCode initialize()
Initialize the service.
std::vector< std::string > m_typeNames
ServiceHandle< IMuonCalibStreamDataProviderSvc > m_dataSvc
CLID clID() const
Retrieve string key:
const std::string & name() const
Get the primary (hashed) SG key.
void setAddress(CxxUtils::RefCountedPtr< IOpaqueAddress > pAddress)
Retrieve primary clid.
bool add(const std::string &hname, TKey *tobj)