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 
21 //
22 #include <vector>
23 #include <cstdint>
24 
25 namespace GSFUtils {
26 
31 {
32  double mean = 0.;
33  double cov = 0.;
34  double invCov = 1e10;
35  double weight = 0.;
36 };
43 struct Merge {
44  int To = 0;
45  int From = 0;
46 };
47 using MergeArray = std::vector<Merge>;
48 
64 findMerges(Component1DArray&& componentsIn, const int reducedSize);
65 
66 } // namespace KLGaussianMixtureReduction
67 
68 #endif
GSFUtils::Component1D::cov
double cov
Definition: KLGaussianMixtureReduction.h:33
GSFUtils::Component1D::weight
double weight
Definition: KLGaussianMixtureReduction.h:35
GSFUtils::Merge::From
int From
Definition: KLGaussianMixtureReduction.h:45
GSFUtils::MergeArray
std::vector< Merge > MergeArray
Definition: KLGaussianMixtureReduction.h:47
GSFUtils::Merge
struct representing an array or the merges.
Definition: KLGaussianMixtureReduction.h:43
AlignedDynArray.h
GSFUtils::Merge::To
int To
Definition: KLGaussianMixtureReduction.h:44
GSFUtils::Component1D::invCov
double invCov
Definition: KLGaussianMixtureReduction.h:34
GSFUtils::findMerges
MergeArray findMerges(Component1DArray &&componentsIn, const int reducedSize)
Return which components need to be merged.
Definition: KLGaussianMixtureReduction.cxx:305
GSFUtils
Dynamic array fullfilling alignment requirements.
Definition: KLGaussianMixtureReduction.cxx:300
GsfConstants.h
GSFUtils::Component1D::mean
double mean
Definition: KLGaussianMixtureReduction.h:32
GSFUtils::Component1D
struct representing 1D component
Definition: KLGaussianMixtureReduction.h:31
GSFUtils::AlignedDynArray
A wrapper around std::aligned_alloc.
Definition: AlignedDynArray.h:30