File BetheHeitlerApprox.hpp¶
-
namespace Acts
Note
This file is foreseen for the
Geometry
module to replaceExtent
-
namespace Experimental¶
Functions
-
auto makeDefaultBetheHeitlerApprox()¶
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
-
template<int NComponents, int PolyDegree>
class AtlasBetheHeitlerApprox - #include <Acts/TrackFitting/BetheHeitlerApprox.hpp>
This class approximates the Bethe-Heitler distribution as a gaussian mixture.
To enable an approximation for continuous input variables, the weights, means and variances are internally parametrized as a Nth order polynomial.
Public Types
-
using Data = std::array<PolyData, NComponents>
Public Functions
-
inline constexpr AtlasBetheHeitlerApprox(const Data &low_data, const Data &high_data, bool low_transform, bool high_transform)
Construct the Bethe-Heitler approximation description.
Additional to the coefficients of the polynomials, the information whether these values need to be transformed beforehand must be given (see ATLAS code).
- Parameters
low_data – data for the lower x/x0 range
high_data – data for the higher x/x0 range
low_transform – wether the low data need to be transformed
high_transform – wether the high data need to be transformed
-
inline auto mixture(ActsScalar x) const
Generates the mixture from the polynomials and reweights them, so that the sum of all weights is 1.
- Parameters
x – pathlength in terms of the radiation length
-
inline constexpr auto numComponents() const
Returns the number of components the returned mixture will have.
-
inline constexpr bool validXOverX0(ActsScalar x) const
Checks if an input is valid for the parameterization.
- Parameters
x – pathlength in terms of the radiation length
Public Static Functions
-
static inline auto loadFromFiles(const std::string &low_parameters_path, const std::string &high_parameters_path)
Loads a parameterization from a file according to the Atlas file description.
- Parameters
low_parameters_path – Path to the foo.par file that stores the parameterization for low x/x0
high_parameters_path – Path to the foo.par file that stores the parameterization for high x/x0
Public Static Attributes
-
static constexpr double higherLimit = 0.20
-
static constexpr double lowerLimit = 0.10
-
static constexpr double noChangeLimit = 0.0001
-
static constexpr double singleGaussianLimit = 0.002
-
struct PolyData
- #include <Acts/TrackFitting/BetheHeitlerApprox.hpp>
Public Members
-
std::array<ActsScalar, PolyDegree + 1> meanCoeffs
-
std::array<ActsScalar, PolyDegree + 1> varCoeffs
-
std::array<ActsScalar, PolyDegree + 1> weightCoeffs
-
std::array<ActsScalar, PolyDegree + 1> meanCoeffs
-
using Data = std::array<PolyData, NComponents>
-
struct BetheHeitlerApproxSingleCmp¶
- #include <Acts/TrackFitting/BetheHeitlerApprox.hpp>
This class approximates the Bethe-Heitler with only one component.
This is mainly inside AtlasBetheHeitlerApprox, but can also be used as the only component approximation (then probably for debugging)
Public Functions
-
inline constexpr auto numComponents() const¶
Returns the number of components the returned mixture will have.
-
inline constexpr bool validXOverX0(ActsScalar x) const¶
Checks if an input is valid for the parameterization.
The threshold for x/x0 is 0.002 and orientates on the values used in ATLAS
Public Static Functions
-
static inline auto mixture(const ActsScalar x)¶
Returns array with length 1 containing a 1-component-representation of the Bethe-Heitler-Distribution.
- Parameters
x – pathlength in terms of the radiation length
-
inline constexpr auto numComponents() const¶
-
auto makeDefaultBetheHeitlerApprox()¶
-
namespace Experimental¶