From b9616b51fa563a0889238c97d257e24f35f759b0 Mon Sep 17 00:00:00 2001
From: lintao <lintao51@gmail.com>
Date: Fri, 14 May 2021 22:33:16 +0800
Subject: [PATCH] WIP: the provider in XML.

---
 .../src/GenericBFieldMapBrBzFactory.cpp         | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/Detector/MagneticFieldMap/src/GenericBFieldMapBrBzFactory.cpp b/Detector/MagneticFieldMap/src/GenericBFieldMapBrBzFactory.cpp
index 897d360a..41bd439f 100644
--- a/Detector/MagneticFieldMap/src/GenericBFieldMapBrBzFactory.cpp
+++ b/Detector/MagneticFieldMap/src/GenericBFieldMapBrBzFactory.cpp
@@ -1,6 +1,14 @@
 /*
  * In this file, the xml is parsed and the GenericBFieldMapBrBz object is created and configured.
- *
+ * 
+ * The properties for the GenericBFieldMapBrBz
+ * - provider
+ *   - [file, db]
+ * - source
+ *   - file path for the 'file' mode.
+ *   - DB ... for the 'db' mode.
+ * - rhoMin, rhoMax, zMin, zMax
+ * 
  * -- Tao Lin <lintao AT ihep.ac.cn>
  */
 #include "GenericBFieldMapBrBz.h"
@@ -26,6 +34,13 @@ static dd4hep::Ref_t create_GenericBFieldMapBrBz(dd4hep::Detector& ,
     // 1. retrieve the parameters from xml
     dd4hep::xml::Component xmlParameter(handle);
 
+    // - provider
+    bool hasProvider = xmlParameter.hasAttr(_Unicode(provider));
+    if (!hasProvider) {
+        std::string error_msg = "[ERROR] GenericBFieldMapBrBz: Must specify the 'provider'. ";
+        throw std::runtime_error(error_msg);
+    }
+
     // 2. create the CartesianField
     dd4hep::CartesianField obj;
     GenericBFieldMapBrBz* ptr = new GenericBFieldMapBrBz();
-- 
GitLab