From 52d17121f6510d47f6df543b60974746821ec4da Mon Sep 17 00:00:00 2001 From: lintao <lintao51@gmail.com> Date: Fri, 14 May 2021 22:24:21 +0800 Subject: [PATCH] WIP: add the factory for Generic B-Field Map. --- Detector/MagneticFieldMap/CMakeLists.txt | 1 + .../src/GenericBFieldMapBrBzFactory.cpp | 39 +++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 Detector/MagneticFieldMap/src/GenericBFieldMapBrBzFactory.cpp diff --git a/Detector/MagneticFieldMap/CMakeLists.txt b/Detector/MagneticFieldMap/CMakeLists.txt index 4d5e608e..ac154c8a 100644 --- a/Detector/MagneticFieldMap/CMakeLists.txt +++ b/Detector/MagneticFieldMap/CMakeLists.txt @@ -4,6 +4,7 @@ gaudi_add_module(MagneticFieldMap SOURCES src/GenericBFieldMapBrBz.cpp + src/GenericBFieldMapBrBzFactory.cpp LINK Gaudi::GaudiKernel ${DD4hep_COMPONENT_LIBRARIES} ${ROOT_LIBRARIES} diff --git a/Detector/MagneticFieldMap/src/GenericBFieldMapBrBzFactory.cpp b/Detector/MagneticFieldMap/src/GenericBFieldMapBrBzFactory.cpp new file mode 100644 index 00000000..897d360a --- /dev/null +++ b/Detector/MagneticFieldMap/src/GenericBFieldMapBrBzFactory.cpp @@ -0,0 +1,39 @@ +/* + * In this file, the xml is parsed and the GenericBFieldMapBrBz object is created and configured. + * + * -- Tao Lin <lintao AT ihep.ac.cn> + */ +#include "GenericBFieldMapBrBz.h" + + +#include <DD4hep/Version.h> +#if DD4HEP_VERSION_GE(0,24) +#include <DD4hep/detail/Handle.inl> +#else +#include <DD4hep/Handle.inl> +#endif + +#include <DD4hep/FieldTypes.h> + + +#include <DD4hep/DetFactoryHelper.h> +#include <XML/Utilities.h> + + +static dd4hep::Ref_t create_GenericBFieldMapBrBz(dd4hep::Detector& , + dd4hep::xml::Handle_t handle ) { + + // 1. retrieve the parameters from xml + dd4hep::xml::Component xmlParameter(handle); + + // 2. create the CartesianField + dd4hep::CartesianField obj; + GenericBFieldMapBrBz* ptr = new GenericBFieldMapBrBz(); + + obj.assign(ptr, xmlParameter.nameStr(), xmlParameter.typeStr()); + + return obj; + +} + +DECLARE_XMLELEMENT(GenericBFieldMapBrBz,create_GenericBFieldMapBrBz) -- GitLab