Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-07-26 08:21:57

0001 /** TRACCC library, part of the ACTS project (R&D line)
0002  *
0003  * (c) 2025 CERN for the benefit of the ACTS project
0004  *
0005  * Mozilla Public License Version 2.0
0006  */
0007 
0008 #pragma once
0009 
0010 namespace traccc {
0011 
0012 template <covfie::concepts::field_backend bfield_backend_t>
0013 magnetic_field::magnetic_field(covfie::field<bfield_backend_t>&& obj)
0014     : m_field(std::move(obj)) {}
0015 
0016 template <covfie::concepts::field_backend bfield_backend_t>
0017 void magnetic_field::set(covfie::field<bfield_backend_t>&& obj) {
0018   m_field = std::move(obj);
0019 }
0020 
0021 template <covfie::concepts::field_backend bfield_backend_t>
0022 bool magnetic_field::is() const {
0023   return (m_field.type() == typeid(covfie::field<bfield_backend_t>));
0024 }
0025 
0026 template <covfie::concepts::field_backend bfield_backend_t>
0027 typename covfie::field<bfield_backend_t>::view_t magnetic_field::as_view()
0028     const {
0029   return typename covfie::field<bfield_backend_t>::view_t{
0030       std::any_cast<const covfie::field<bfield_backend_t>&>(m_field)};
0031 }
0032 
0033 template <covfie::concepts::field_backend bfield_backend_t>
0034 const covfie::field<bfield_backend_t>& magnetic_field::as_field() const {
0035   return std::any_cast<const covfie::field<bfield_backend_t>&>(m_field);
0036 }
0037 
0038 }  // namespace traccc