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::BetheHeitlerApprox
 Interface for Bethe-Heitler Gaussian mixture approximations. More...
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...
class  Acts::GridSurfaceMaterial
 Concrete, non-template surface material backed by a 2D grid. 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...
class  Acts::IMaterialDecorator
 Virtual base class for decorators that allow to load material onto a TrackingGeometry. 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::MergedMaterialMarker
 Sentinel surface material used by Portal::merge in its "keep going" mode. More...
class  Acts::PolynomialBetheHeitlerApprox
 This class approximates the Bethe-Heitler distribution as a gaussian mixture. 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

using Acts::ProtoGridSurfaceMaterial = ProtoSurfaceMaterialT<MultiAxisSpec2D>
 Type alias for a prototype surface material using a multi-axis binning description A surface material implementation that carries a MultiAxisSpec2D whose deferred axes are resolved against the surface during material mapping.
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

PolynomialBetheHeitlerApprox Acts::makeDefaultBetheHeitlerApprox (bool clampToRange=false)
 Creates a PolynomialBetheHeitlerApprox object based on a default configuration, 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 set up 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 set up the MaterialLookup.

Function Documentation

◆ makeDefaultBetheHeitlerApprox()

PolynomialBetheHeitlerApprox Acts::makeDefaultBetheHeitlerApprox ( bool clampToRange = false)

Creates a PolynomialBetheHeitlerApprox object based on a default configuration, stored as static data in the source code.

This may not be an optimal configuration, but allows running the GSF without loading external files.

Parameters
clampToRangeWhether to clamp values to the valid range
Returns
PolynomialBetheHeitlerApprox with default 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 set up 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 set up 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