ATLAS Offline Software
KLGaussianMixtureReduction.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
16 #ifndef KLGaussianMixReductionUtils_H
17 #define KLGaussianMixReductionUtils_H
18 
20 //
21 #include <array>
22 #include <cstdint>
23 
24 namespace GSFUtils {
25 
30 {
31  double mean = 0.;
32  double cov = 0.;
33  double invCov = 1e10;
34  double weight = 0.;
35 };
42 {
46  int32_t numComponents = 0;
47 };
53 struct MergeArray
54 {
55  struct merge
56  {
57  int8_t To = 0;
58  int8_t From = 0;
59  };
60  std::array<merge, GSFConstants::maxComponentsAfterConvolution> merges{};
61  int32_t numMerges = 0;
62 };
63 
80 findMerges(const Component1DArray& componentsIn, const int8_t reducedSize);
81 
82 } // namespace KLGaussianMixtureReduction
83 
84 #endif
GSFUtils::Component1D::cov
double cov
Definition: KLGaussianMixtureReduction.h:32
GSFUtils::Component1D::weight
double weight
Definition: KLGaussianMixtureReduction.h:34
GSFUtils::MergeArray
struct representing an array or the merges.
Definition: KLGaussianMixtureReduction.h:54
GSFUtils::MergeArray::merge::To
int8_t To
Definition: KLGaussianMixtureReduction.h:57
GSFUtils::MergeArray::numMerges
int32_t numMerges
Definition: KLGaussianMixtureReduction.h:61
GSFConstants::maxComponentsAfterConvolution
constexpr int8_t maxComponentsAfterConvolution
The maximum size State x Bethe-Heitler components The typical number we use is the max 6x12 = 72 i....
Definition: GsfConstants.h:61
GSFConstants::alignment
constexpr size_t alignment
Alignment used for SIMD operations internally to GSF.
Definition: GsfConstants.h:68
lumiFormat.array
array
Definition: lumiFormat.py:98
GSFUtils::Component1D::invCov
double invCov
Definition: KLGaussianMixtureReduction.h:33
GSFUtils::Component1DArray::components
std::array< Component1D, GSFConstants::maxComponentsAfterConvolution > components
Definition: KLGaussianMixtureReduction.h:45
GSFUtils::Component1DArray::numComponents
int32_t numComponents
Definition: KLGaussianMixtureReduction.h:46
GSFUtils::MergeArray::merge::From
int8_t From
Definition: KLGaussianMixtureReduction.h:58
GSFUtils
Dynamic array fullfilling alignment requirements.
Definition: KLGaussianMixtureReduction.cxx:392
GsfConstants.h
GSFUtils::Component1D::mean
double mean
Definition: KLGaussianMixtureReduction.h:31
GSFUtils::Component1D
struct representing 1D component
Definition: KLGaussianMixtureReduction.h:30
merge
Definition: merge.py:1
GSFUtils::findMerges
MergeArray findMerges(const Component1DArray &componentsIn, const int8_t reducedSize)
Find the order in which the components need to be merged.
Definition: KLGaussianMixtureReduction.cxx:394
GSFUtils::Component1DArray
struct representing an array of 1D component.
Definition: KLGaussianMixtureReduction.h:42
GSFUtils::MergeArray::merges
std::array< merge, GSFConstants::maxComponentsAfterConvolution > merges
Definition: KLGaussianMixtureReduction.h:60