Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-07-16 08:00:42

0001 // This file is part of the ACTS project.
0002 //
0003 // Copyright (C) 2016 CERN for the benefit of the ACTS project
0004 //
0005 // This Source Code Form is subject to the terms of the Mozilla Public
0006 // License, v. 2.0. If a copy of the MPL was not distributed with this
0007 // file, You can obtain one at https://mozilla.org/MPL/2.0/.
0008 
0009 #pragma once
0010 
0011 // Set the Magnetic Field Context PLUGIN
0012 #ifdef ACTS_CORE_MAGFIELDCONTEXT_PLUGIN
0013 #include ACTS_CORE_MAGFIELDCONTEXT_PLUGIN
0014 #else
0015 
0016 #include "Acts/Utilities/detail/ContextType.hpp"
0017 
0018 namespace Acts {
0019 
0020 /// @ingroup context magnetic_field
0021 /// @brief Context object for lookup of magnetic field values
0022 ///
0023 /// The magnetic field context is an opaque type which contains experiment
0024 /// specific event context information. This can be used to supply event
0025 /// dependent data to the magnetic field instance, in case it is needed to
0026 /// provide correct field values. The library itself does not make any
0027 /// assumptions on the content of this context type (it is implemented using
0028 /// `std::any`), but passes a reference through the call-chain to the field
0029 /// implementation. An experiment specific field implementation is then expected
0030 /// to performa cast to the concrete type, and use the contents.
0031 ///
0032 /// An example use case of the context could be to look up conditions data /
0033 /// records for the value of the magnetic field at the time of the event.
0034 class MagneticFieldContext : public ContextType {
0035  public:
0036   /// Inherit all constructors
0037   using ContextType::ContextType;
0038   using ContextType::operator=;
0039 };
0040 
0041 }  // namespace Acts
0042 
0043 #endif