File IndexedSurfacesJsonConverter.hpp

namespace Acts

Note

This file is foreseen for the Geometry module to replace Extent

namespace IndexedSurfacesJsonConverter

Functions

template<typename instance_type>
void convert(nlohmann::json &jIndexedSurfaces, const Experimental::SurfaceCandidatesUpdator &delegate, [[maybe_unused]] const instance_type &refInstance)

Convert the single delegate if it is of the type of the reference.

Note

It will do nothing if the type does not match

Parameters
  • jIndexedSurfaces – the json object to be filled

  • delegate – the delegate to be translated

  • refInstance – is a reference instance of potential type casting

template<typename index_grid>
nlohmann::json convertImpl(const index_grid &indexGrid)

The actual conversion method.

Experimental::SurfaceCandidatesUpdator fromJson(const nlohmann::json &jSurfaceNavigation)

Convert the single delegate if it is of the type of the reference.

Parameters

jSurfaceNavigation – the json file to read from

Returns

the surface navigation delegate

static inline nlohmann::json toJson(const Experimental::SurfaceCandidatesUpdator &delegate)

Convert a surface array into needed constituents.

Note

this is the entry point of the conversion, i.e. top of the unrolling loop

Parameters

delegate – the delegate to be translated

Returns

a collection of proto surface object and a grid, and associations

template<typename tuple_type, std::size_t... I>
void unrollConvert(nlohmann::json &jIndexedSurfaces, const Experimental::SurfaceCandidatesUpdator &delegate, const tuple_type &axesTuple, std::index_sequence<I...>)

Unrolling function for catching the right instance.

Note

parameters are as of the convertImpl method

Parameters
  • jIndexedSurfaces – the json object to be filled

  • delegate – the delegate to be translated

  • axesTuple – the tuple of axes to be unrolled

Variables

static auto s_possibleAxes = std::tuple<EqBound, EqOpen, EqClosed, VarBound, VarOpen, VarClosed, EqBoundEqBound, EqBoundEqOpen, EqBoundEqClosed, EqOpenEqBound, EqOpenEqOpen, EqOpenEqClosed, EqClosedEqBound, EqClosedEqOpen, EqClosedEqClosed, EqBoundVarBound, EqBoundVarOpen, EqBoundVarClosed, EqOpenVarBound, EqOpenVarOpen, EqOpenVarClosed, EqClosedVarBound, EqClosedVarOpen, EqClosedVarClosed, VarBoundEqBound, VarBoundEqOpen, VarBoundEqClosed, VarOpenEqBound, VarOpenEqOpen, VarOpenEqClosed, VarClosedEqBound, VarClosedEqOpen, VarClosedEqClosed, VarBoundVarBound, VarBoundVarOpen, VarBoundVarClosed, VarOpenVarBound, VarOpenVarOpen, VarOpenVarClosed, VarClosedVarBound, VarClosedVarOpen, VarClosedVarClosed>{}
namespace GridAxisGenerators