diff --git a/DDCond/src/plugins/ConditionsRepositoryParser.cpp b/DDCond/src/plugins/ConditionsRepositoryParser.cpp index 2086fbd98044fbd7ca656ef7f8b1c824959943c4..5750f425de483d4d1060078263115a5f7f7c37a1 100644 --- a/DDCond/src/plugins/ConditionsRepositoryParser.cpp +++ b/DDCond/src/plugins/ConditionsRepositoryParser.cpp @@ -343,8 +343,8 @@ namespace DD4hep { xml_h child_rot, child_pos, child_piv; ConversionArg* arg = _param<ConversionArg>(); Condition con = create_condition(arg->detector, e); - Alignments::Delta& del = con.bind<Alignments::Delta>(); - XML::parse(e, del); + //Alignments::Delta& del = con.bind<Alignments::Delta>(); + XML::parse_delta(e, con->data); con->setFlag(Condition::ALIGNMENT); arg->manager.registerUnlocked(arg->pool, con); } diff --git a/DDCore/include/DD4hep/objects/ConditionsInterna.h b/DDCore/include/DD4hep/objects/ConditionsInterna.h index b01ee3f131d2d35e4f1a6a585059cd592770f281..b700d55e7bf221e605d4dbb7a2183c263cbd8a35 100644 --- a/DDCore/include/DD4hep/objects/ConditionsInterna.h +++ b/DDCore/include/DD4hep/objects/ConditionsInterna.h @@ -243,9 +243,6 @@ namespace DD4hep { #define DD4HEP_DEFINE_CONDITIONS_TYPE(x) \ namespace DD4hep { \ - template x& OpaqueDataBlock::bind<x>(); \ - template x& OpaqueDataBlock::bind<x>(const std::string& val); \ - template x& OpaqueDataBlock::set<x> (const std::string& val); \ namespace Conditions { \ template x& Condition::bind<x>(const std::string& val); \ template x& Condition::bind<x>(); \ diff --git a/DDCore/include/DD4hep/objects/OpaqueData_inl.h b/DDCore/include/DD4hep/objects/OpaqueData_inl.h index be035e98e2aba81df9b0f4eddf91b024fbef72f2..81dd36ff21061527fb035fb5a13c59ff2b082637 100644 --- a/DDCore/include/DD4hep/objects/OpaqueData_inl.h +++ b/DDCore/include/DD4hep/objects/OpaqueData_inl.h @@ -78,4 +78,12 @@ namespace DD4hep { } } /* End namespace DD4hep */ + +#define DD4HEP_DEFINE_OPAQUEDATA_TYPE(x) \ + namespace DD4hep { \ + template x& OpaqueDataBlock::bind<x>(); \ + template x& OpaqueDataBlock::bind<x>(const std::string& val); \ + template x& OpaqueDataBlock::set<x> (const std::string& val); \ + } + #endif /* DD4HEP_OPAQUEDATA_INL_H */ diff --git a/DDCore/src/AlignmentData.cpp b/DDCore/src/AlignmentData.cpp index a6fd9e1136f564edd09f20122a12ebd3c53d579b..793b7af6c686465f708effb0937669a57a480520 100644 --- a/DDCore/src/AlignmentData.cpp +++ b/DDCore/src/AlignmentData.cpp @@ -204,6 +204,8 @@ Alignment AlignmentData::nominal() const { #include "DD4hep/ToStream.h" #include "DD4hep/objects/ConditionsInterna.h" +DD4HEP_DEFINE_OPAQUEDATA_TYPE(Delta) +DD4HEP_DEFINE_OPAQUEDATA_TYPE(AlignmentData) DD4HEP_DEFINE_CONDITIONS_TYPE_DUMMY(Delta) DD4HEP_DEFINE_CONDITIONS_TYPE_DUMMY(AlignmentData)