ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches

Detailed Description

Detector material description and handling.

Topics

 Material mapping
 Projection procedure to derive mapped material properties.

Classes

class  Acts::AtlasBetheHeitlerApprox
 This class approximates the Bethe-Heitler distribution as a gaussian mixture. More...
class  Acts::BetheHeitlerApprox
class  Acts::BetheHeitlerApproxSingleCmp
 This class approximates the Bethe-Heitler with only one component. More...
class  Acts::BinnedSurfaceMaterial
 It extends the ISurfaceMaterial base class and is an array pf MaterialSlab. More...
class  Acts::ElementFraction
 Memory-efficient storage of the relative fraction of an element. More...
struct  Acts::GloballyIndexedMaterialAccessor
 This is an accessor for cases where the material is filled in a global material vector that is accessed from the different material grids. More...
struct  Acts::GridMaterialAccessor
 This is an accessor for cases where the material is directly stored in the grid, it simply forwards the grid entry in const and non-const way. More...
class  Acts::GridSurfaceMaterialT< grid_t, material_accessor_t >
 GridSurfaceMaterialT. More...
class  Acts::HomogeneousSurfaceMaterial
 It extends the ISurfaceMaterial virtual base class to describe a simple homogeneous material on a surface. More...
class  Acts::HomogeneousVolumeMaterial
 It extends the IVolumeMaterial base class to describe a simple homogeneous material in a volume. More...
struct  Acts::IGridMaterialAccessor
 Base class for material accessors, this is needed for the I/O of the different grid material types, in the actual implementation the material accessor is a template parameter. More...
class  Acts::IGridSurfaceMaterial< grid_value_t >
 Intermediate interface to the grid surface material given access to the grid and the material accessor. More...
class  Acts::IGridSurfaceMaterialBase
 Base class for the concrete templated grid surface material types. More...
class  Acts::IMaterialDecorator
 Virtual base class for decorators that allow to load material onto a TrackingGeometry. More...
struct  Acts::IndexedMaterialAccessor
 This is an accessor for cases where the material is filled in a vector and then indexed by the grid. More...
struct  Acts::InteractionVolume
 The Material interaction volume struct. More...
class  Acts::InterpolatedMaterialMap< Mapper_t >
 Interpolate material classification values from material values on a given grid. More...
class  Acts::ISurfaceMaterial
 Base class of all surface-based material description. More...
class  Acts::IVolumeMaterial
 Material associated with a Volume (homogeneous, binned, interpolated). More...
class  Acts::Material
 Material description for interactions with matter. More...
struct  Acts::MaterialMapLookup< G >
 Struct for mapping global 3D positions to material values. More...
class  Acts::MaterialSlab
 Material description for an object with defined thickness. More...
class  Acts::ProtoSurfaceMaterialT< BinningType >
 proxy to SurfaceMaterial hand over BinUtility or other suitable binning description More...
class  Acts::ProtoVolumeMaterial
 proxy to VolumeMaterial hand over BinUtility More...

Typedefs

template<typename grid_type>
using Acts::GloballyIndexedSurfaceMaterial
 Type alias for surface material indexed by global coordinates.
template<typename grid_type>
using Acts::GridSurfaceMaterial
 Type alias for grid-based surface material.
template<typename grid_type>
using Acts::IndexedSurfaceMaterial
 Type alias for surface material indexed by local coordinates.
using Acts::ProtoGridSurfaceMaterial
 Type alias for a prototype surface material using a grid of ProtoAxis A surface material implementation that uses a vector of ProtoAxis for grid-based binning.
using Acts::ProtoSurfaceMaterial = ProtoSurfaceMaterialT<Acts::BinUtility>
 Type alias for a prototype surface material using BinUtility A surface material implementation that uses BinUtility for binning.

Functions

AtlasBetheHeitlerApprox Acts::makeDefaultBetheHeitlerApprox (bool clampToRange=false)
 Creates a AtlasBetheHeitlerApprox object based on an ATLAS configuration, that are stored as static data in the source code.
MaterialMapLookup< Grid< Material::ParametersVector, Axis< Acts::AxisType::Equidistant >, Axis< Acts::AxisType::Equidistant > > > Acts::materialMapperRZ (const std::function< std::size_t(std::array< std::size_t, 2 > binsRZ, std::array< std::size_t, 2 > nBinsRZ)> &materialVectorToGridMapper, std::vector< double > rPos, std::vector< double > zPos, const std::vector< Acts::Material > &material, double lengthUnit=UnitConstants::mm)
 Method to setup the MaterialMapper.
MaterialMapLookup< Grid< Material::ParametersVector, Axis< Acts::AxisType::Equidistant >, Axis< Acts::AxisType::Equidistant >, Axis< Acts::AxisType::Equidistant > > > Acts::materialMapperXYZ (const std::function< std::size_t(std::array< std::size_t, 3 > binsXYZ, std::array< std::size_t, 3 > nBinsXYZ)> &materialVectorToGridMapper, std::vector< double > xPos, std::vector< double > yPos, std::vector< double > zPos, const std::vector< Material > &material, double lengthUnit=UnitConstants::mm)
 Method to setup the MaterialLookup.

Typedef Documentation

◆ GloballyIndexedSurfaceMaterial

template<typename grid_type>
using Acts::GloballyIndexedSurfaceMaterial
Initial value:
GridSurfaceMaterialT.
Definition GridSurfaceMaterial.hpp:215

Type alias for surface material indexed by global coordinates.

Surface material implementation that uses global coordinate indexing

◆ GridSurfaceMaterial

template<typename grid_type>
using Acts::GridSurfaceMaterial
Initial value:

Type alias for grid-based surface material.

Surface material implementation using a regular grid structure

◆ IndexedSurfaceMaterial

template<typename grid_type>
using Acts::IndexedSurfaceMaterial
Initial value:

Type alias for surface material indexed by local coordinates.

Surface material implementation that uses local coordinate indexing

Template Parameters
grid_typeThe type of grid used for material mapping

◆ ProtoGridSurfaceMaterial

Initial value:
proxy to SurfaceMaterial hand over BinUtility or other suitable binning description
Definition ProtoSurfaceMaterial.hpp:34

Type alias for a prototype surface material using a grid of ProtoAxis A surface material implementation that uses a vector of ProtoAxis for grid-based binning.

◆ ProtoSurfaceMaterial

Type alias for a prototype surface material using BinUtility A surface material implementation that uses BinUtility for binning.

Function Documentation

◆ makeDefaultBetheHeitlerApprox()

AtlasBetheHeitlerApprox Acts::makeDefaultBetheHeitlerApprox ( bool clampToRange = false)

Creates a AtlasBetheHeitlerApprox object based on an ATLAS configuration, that are stored as static data in the source code.

This may not be an optimal configuration, but should allow to run the GSF without the need to load files

Parameters
clampToRangeWhether to clamp values to the valid range
Returns
AtlasBetheHeitlerApprox with default ATLAS configuration parameters

◆ materialMapperRZ()

MaterialMapLookup< Grid< Material::ParametersVector, Axis< Acts::AxisType::Equidistant >, Axis< Acts::AxisType::Equidistant > > > Acts::materialMapperRZ ( const std::function< std::size_t(std::array< std::size_t, 2 > binsRZ, std::array< std::size_t, 2 > nBinsRZ)> & materialVectorToGridMapper,
std::vector< double > rPos,
std::vector< double > zPos,
const std::vector< Acts::Material > & material,
double lengthUnit = UnitConstants::mm )

Method to setup the MaterialMapper.

Parameters
[in]materialVectorToGridMapperFunction mapping the vector of material to the map of material values

e.g.: we have small grid with the values: r={2,3}, z ={4,5}, the corresponding indices are i (belonging to r) and j (belonging to z), the globalIndex is M (belonging to the values of the Material) and the map is:

r i z j M
2 0 4 0 0
2 0 5 1 1
3 1 4 0 2
3 1 5 1 3

In this case the function would look like:

[](std::array<std::size_t, 2> binsRZ, std::array<std::size_t, 2> nBinsRZ) {
return (binsRZ.at(0) * nBinsRZ.at(1) + binsRZ.at(1));
}
Parameters
[in]rPosValues of the grid points in r
Note
The values do not need to be sorted or unique (this will be done inside the function)
Parameters
[in]zPosValues of the grid points in z
Note
The values do not need to be sorted or unique (this will be done inside the function)
Parameters
[in]materialThe material classification values in r and z for all given grid points stored in a vector
Note
The function localToGlobalBin determines how the material was stored in the vector in respect to the grid values
Parameters
[in]lengthUnitThe unit of the grid points
Returns
A material mapper for RZ coordinate system with equidistant grid

◆ materialMapperXYZ()

MaterialMapLookup< Grid< Material::ParametersVector, Axis< Acts::AxisType::Equidistant >, Axis< Acts::AxisType::Equidistant >, Axis< Acts::AxisType::Equidistant > > > Acts::materialMapperXYZ ( const std::function< std::size_t(std::array< std::size_t, 3 > binsXYZ, std::array< std::size_t, 3 > nBinsXYZ)> & materialVectorToGridMapper,
std::vector< double > xPos,
std::vector< double > yPos,
std::vector< double > zPos,
const std::vector< Material > & material,
double lengthUnit = UnitConstants::mm )

Method to setup the MaterialLookup.

Parameters
[in]materialVectorToGridMapperFunction mapping the vector of material to the map of material values

e.g.: we have small grid with the values: x={2,3}, y={3,4}, z ={4,5}, the corresponding indices are i (belonging to x), j (belonging to y) and k (belonging to z), the globalIndex is M (belonging to the values of the Material) and the map is:

x i y j z k M
2 0 3 0 4 0 0
2 0 3 0 5 1 1
2 0 4 1 4 0 2
2 0 4 1 5 1 3
3 1 3 0 4 0 4
3 1 3 0 5 1 5
3 1 4 1 4 0 6
3 1 4 1 5 1 7

In this case the function would look like:

[](std::array<std::size_t, 3> binsXYZ, std::array<std::size_t, 3> nBinsXYZ)
{
return (binsXYZ.at(0) * (nBinsXYZ.at(1) * nBinsXYZ.at(2))
+ binsXYZ.at(1) * nBinsXYZ.at(2)
+ binsXYZ.at(2));
}
Parameters
[in]xPosValues of the grid points in x
Note
The values do not need to be sorted or unique (this will be done inside the function)
Parameters
[in]yPosValues of the grid points in y
Note
The values do not need to be sorted or unique (this will be done inside the function)
Parameters
[in]zPosValues of the grid points in z
Note
The values do not need to be sorted or unique (this will be done inside the function)
Parameters
[in]materialThe material classification values in x, y and z for all given grid points stored in a vector
Note
The function localToGlobalBin determines how the material was stored in the vector in respect to the grid values
Parameters
[in]lengthUnitThe unit of the grid points
Returns
A material mapper for XYZ coordinate system with equidistant grid