GaussianEliminationAlg.h
Go to the documentation of this file.
1 #ifndef GAUSSIANELIMINATIONALG_H
2 #define GAUSSIANELIMINATIONALG_H
3 
4 /*!
5  * Title: GaussianEliminationAlg Class
6  * Author: Wes Ketchum (wketchum@lanl.gov)
7  *
8  * Description:
9  * Class that solves system of linear equations via Gaussian Elimination.
10  * Intended for use with RFFHitFitter
11  *
12 */
13 
14 #include <vector>
15 
16 namespace util{
17 
18  const float SQRT_TWO_PI = 2.506628;
19 
21 
22  public:
23  GaussianEliminationAlg(float, float);
24 
25  double GetDistance(float) const;
26  const std::vector<float>& SolveEquations(const std::vector<float>& meanVector,
27  const std::vector<float>& sigmaVector,
28  const std::vector<float>& heightVector);
29 
30  void FillAugmentedMatrix(const std::vector<float>& meanVector,
31  const std::vector<float>& sigmaVector,
32  const std::vector<float>& heightVector);
33  void GaussianElimination();
34  const std::vector<float>& GetSolutions() { return fSolutions; }
35  void Print();
36 
37  private:
38 
40  float fDistanceMax;
41  std::vector<double> fDistanceLookupTable;
42 
44 
45  std::vector< std::vector<double> > fMatrix;
46  std::vector<float> fSolutions;
47 
48  };
49 
50 }
51 
52 #endif
Namespace for general, non-LArSoft-specific utilities.
const float SQRT_TWO_PI
void FillAugmentedMatrix(const std::vector< float > &meanVector, const std::vector< float > &sigmaVector, const std::vector< float > &heightVector)
std::vector< std::vector< double > > fMatrix
const std::vector< float > & SolveEquations(const std::vector< float > &meanVector, const std::vector< float > &sigmaVector, const std::vector< float > &heightVector)
std::vector< double > fDistanceLookupTable
const std::vector< float > & GetSolutions()