Newer
Older
/*
* 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"
#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);
// - 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();
obj.assign(ptr, xmlParameter.nameStr(), xmlParameter.typeStr());
return obj;
}
DECLARE_XMLELEMENT(GenericBFieldMapBrBz,create_GenericBFieldMapBrBz)