ANIMA  4.0
animaB1GMMDistributionIntegrand.h
Go to the documentation of this file.
1 #pragma once
2 #include "AnimaRelaxometryExport.h"
3 
5 #include <map>
6 
7 namespace anima
8 {
9 
14 class ANIMARELAXOMETRY_EXPORT B1GMMDistributionIntegrand
15 {
16 public:
17  using EPGVectorsMapType = std::map <double, anima::EPGSignalSimulator::RealVectorType>;
19  : m_EPGSimulator(sigSim), m_EPGVectors (val) {}
20 
21  void SetT1Value(double val) {m_T1Value = val;}
22  void SetFlipAngle(double val) {m_FlipAngle = val;}
23  void SetEchoNumber(unsigned int val) {m_EchoNumber = val;}
24 
25  void SetGaussianMean(double val) {m_GaussianMean = val;}
26  void SetGaussianVariance(double val) {m_GaussianVariance = val;}
27 
28  virtual double operator() (double const t);
29 
30 private:
32  anima::EPGSignalSimulator &m_EPGSimulator;
33 
34  double m_T1Value;
35  double m_FlipAngle;
36  unsigned int m_EchoNumber;
37 
39  EPGVectorsMapType &m_EPGVectors;
40 
41  double m_GaussianMean, m_GaussianVariance;
42 };
43 
44 } // end namespace anima
B1GMMDistributionIntegrand(anima::EPGSignalSimulator &sigSim, EPGVectorsMapType &val)
std::map< double, anima::EPGSignalSimulator::RealVectorType > EPGVectorsMapType
Integrand to compute the internal integral per distribution in B1GMMRelaxometryCostFunction.