|
ACTS
Experiment-independent tracking
|
This class approximates the Bethe-Heitler distribution as a gaussian mixture. More...
#include <Acts/TrackFitting/BetheHeitlerApprox.hpp>
Classes | |
| struct | PolyData |
Public Types | |
| using | Data = std::vector<PolyData> |
| Type alias for array of polynomial data for all components. | |
| Public Types inherited from Acts::BetheHeitlerApprox | |
| using | Component = detail::GaussianComponent |
Public Member Functions | |
| AtlasBetheHeitlerApprox (const Data &lowData, const Data &highData, bool lowTransform, bool highTransform, double lowLimit, double highLimit, bool clampToRange, double noChangeLimit, double singleGaussianLimit) | |
| Construct the Bethe-Heitler approximation description with two parameterizations, one for lower ranges, one for higher ranges. | |
| std::size_t | maxComponents () const override |
| Returns the number of components the returned mixture will have. | |
| std::span< Component > | mixture (double xOverX0, const std::span< Component > mixture) const override |
| Generates the mixture from the polynomials and reweights them, so that the sum of all weights is 1. | |
| bool | validXOverX0 (const double xOverX0) const override |
| Checks if an input is valid for the parameterization. | |
| Public Member Functions inherited from Acts::BetheHeitlerApprox | |
| virtual | ~BetheHeitlerApprox ()=default |
Static Public Member Functions | |
| static AtlasBetheHeitlerApprox | loadFromFiles (const std::string &low_parameters_path, const std::string &high_parameters_path, double lowLimit, double highLimit, bool clampToRange, double noChangeLimit, double singleGaussianLimit) |
| Loads a parameterization from a file according to the Atlas file description. | |
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.
| using Acts::AtlasBetheHeitlerApprox::Data = std::vector<PolyData> |
Type alias for array of polynomial data for all components.
| Acts::AtlasBetheHeitlerApprox::AtlasBetheHeitlerApprox | ( | const Data & | lowData, |
| const Data & | highData, | ||
| bool | lowTransform, | ||
| bool | highTransform, | ||
| double | lowLimit, | ||
| double | highLimit, | ||
| bool | clampToRange, | ||
| double | noChangeLimit, | ||
| double | singleGaussianLimit ) |
Construct the Bethe-Heitler approximation description with two parameterizations, one for lower ranges, one for higher ranges.
Is it assumed that the lower limit of the high-x/x0 data is equal to the upper limit of the low-x/x0 data.
| lowData | data for the lower x/x0 range |
| highData | data for the higher x/x0 range |
| lowTransform | whether the low data need to be transformed |
| highTransform | whether the high data need to be transformed |
| lowLimit | the upper limit for the low data |
| highLimit | the upper limit for the high data |
| clampToRange | whether to clamp the input x/x0 to the allowed range |
| noChangeLimit | limit below which no change is applied |
| singleGaussianLimit | limit below which a single Gaussian is used |
|
static |
Loads a parameterization from a file according to the Atlas file description.
| 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 |
| lowLimit | the upper limit for the low x/x0-data |
| highLimit | the upper limit for the high x/x0-data |
| clampToRange | forwarded to constructor |
| noChangeLimit | forwarded to constructor |
| singleGaussianLimit | forwarded to constructor |
|
overridevirtual |
Returns the number of components the returned mixture will have.
Implements Acts::BetheHeitlerApprox.
|
overridevirtual |
Generates the mixture from the polynomials and reweights them, so that the sum of all weights is 1.
| xOverX0 | pathlength in terms of the radiation length |
| mixture | preallocated array to store the result |
Implements Acts::BetheHeitlerApprox.
|
overridevirtual |
Checks if an input is valid for the parameterization.
| xOverX0 | pathlength in terms of the radiation length |
Implements Acts::BetheHeitlerApprox.