Logo ROOT  
Reference Guide
FumiliStandardMaximumLikelihoodFCN.h
Go to the documentation of this file.
1 // @(#)root/minuit2:$Id$
2 // Authors: M. Winkler, F. James, L. Moneta, A. Zsenei 2003-2005
3 
4 /**********************************************************************
5  * *
6  * Copyright (c) 2005 LCG ROOT Math team, CERN/PH-SFT *
7  * *
8  **********************************************************************/
9 
10 #ifndef ROOT_Minuit2_FumiliStandardMaximumLikelihoodFCN
11 #define ROOT_Minuit2_FumiliStandardMaximumLikelihoodFCN
12 
15 #include <vector>
16 
17 namespace ROOT {
18 
19 namespace Minuit2 {
20 
21 /**
22 
23 Class implementing the Elements member function for the standard
24 maximum likelihood method.
25 
26 @author Andras Zsenei and Lorenzo Moneta, Creation date: 4 Sep 2004
27 
28 @see FumiliMaximumLikelihoodFCN
29 
30 @ingroup Minuit
31 
32 */
33 
35 
36 public:
37  /**
38 
39  Constructor which initializes the measurement points for the one dimensional model function.
40 
41  @param modelFCN the model function used for describing the data.
42 
43  @param pos vector containing the x values corresponding to the
44  measurements
45 
46  */
47 
48  FumiliStandardMaximumLikelihoodFCN(const ParametricFunction &modelFCN, const std::vector<double> &pos)
49  {
50  this->SetModelFunction(modelFCN);
51  unsigned int n = pos.size();
52  fPositions.reserve(n);
53  std::vector<double> x(1);
54  for (unsigned int i = 0; i < n; ++i) {
55  x[0] = pos[i];
56  fPositions.push_back(x);
57  }
58  }
59 
60  /**
61 
62  Constructor which initializes the measurement points for the multi dimensional model function.
63 
64  @param modelFCN the model function used for describing the data.
65 
66  @param pos vector containing the x values corresponding to the
67  measurements
68 
69  */
70 
71  FumiliStandardMaximumLikelihoodFCN(const ParametricFunction &modelFCN, const std::vector<std::vector<double>> &pos)
72  {
73  this->SetModelFunction(modelFCN);
74  fPositions = pos;
75  }
76 
78 
79  /**
80 
81  Evaluates the model function for the different measurement points and
82  the Parameter values supplied.
83 
84  @param par vector of Parameter values to feed to the model function.
85 
86  @return A vector containing the model function evaluated
87  for each measurement point.
88 
89  */
90 
91  std::vector<double> Elements(const std::vector<double> &par) const;
92 
93  /**
94 
95  Accessor to the position of the measurement (x coordinate).
96 
97  @param Index Index of the measuerement the position of which to return.
98 
99  @return the position of the measurement.
100 
101  */
102 
103  virtual const std::vector<double> &GetMeasurement(int Index) const;
104 
105  /**
106 
107  Accessor to the number of measurements used for calculating
108  the maximum likelihood.
109 
110  @return the number of measurements.
111 
112  */
113 
114  virtual int GetNumberOfMeasurements() const;
115 
116  /**
117 
118  Evaluate function Value, Gradient and Hessian using Fumili approximation, for values of parameters p
119  The resul is cached inside and is return from the FumiliFCNBase::Value , FumiliFCNBase::Gradient and
120  FumiliFCNBase::Hessian methods
121 
122  @param par vector of parameters
123 
124  **/
125 
126  virtual void EvaluateAll(const std::vector<double> &par);
127 
128 private:
129  std::vector<std::vector<double>> fPositions;
130 };
131 
132 } // namespace Minuit2
133 
134 } // namespace ROOT
135 
136 #endif // ROOT_Minuit2_FumiliStandardMaximumLikelihoodFCN
n
const Int_t n
Definition: legend1.C:16
ROOT::Minuit2::FumiliMaximumLikelihoodFCN
Extension of the FCNBase for the Fumili method.
Definition: FumiliMaximumLikelihoodFCN.h:46
ROOT::Minuit2::ParametricFunction
Function which has parameters.
Definition: ParametricFunction.h:43
x
Double_t x[n]
Definition: legend1.C:17
ROOT::Minuit2::FumiliStandardMaximumLikelihoodFCN::EvaluateAll
virtual void EvaluateAll(const std::vector< double > &par)
Evaluate function Value, Gradient and Hessian using Fumili approximation, for values of parameters p ...
Definition: FumiliStandardMaximumLikelihoodFCN.cxx:57
ROOT::Minuit2::FumiliStandardMaximumLikelihoodFCN::Elements
std::vector< double > Elements(const std::vector< double > &par) const
Evaluates the model function for the different measurement points and the Parameter values supplied.
Definition: FumiliStandardMaximumLikelihoodFCN.cxx:20
ROOT::Minuit2::FumiliMaximumLikelihoodFCN::SetModelFunction
void SetModelFunction(const ParametricFunction &modelFCN)
Sets the model function for the data (for example gaussian+linear for a peak)
Definition: FumiliMaximumLikelihoodFCN.h:61
ROOT::Minuit2::FumiliStandardMaximumLikelihoodFCN::~FumiliStandardMaximumLikelihoodFCN
~FumiliStandardMaximumLikelihoodFCN()
Definition: FumiliStandardMaximumLikelihoodFCN.h:77
ROOT::Minuit2::FumiliStandardMaximumLikelihoodFCN::FumiliStandardMaximumLikelihoodFCN
FumiliStandardMaximumLikelihoodFCN(const ParametricFunction &modelFCN, const std::vector< double > &pos)
Constructor which initializes the measurement points for the one dimensional model function.
Definition: FumiliStandardMaximumLikelihoodFCN.h:48
ROOT::Minuit2::FumiliStandardMaximumLikelihoodFCN::GetMeasurement
virtual const std::vector< double > & GetMeasurement(int Index) const
Accessor to the position of the measurement (x coordinate).
Definition: FumiliStandardMaximumLikelihoodFCN.cxx:45
ROOT::Minuit2::FumiliStandardMaximumLikelihoodFCN::FumiliStandardMaximumLikelihoodFCN
FumiliStandardMaximumLikelihoodFCN(const ParametricFunction &modelFCN, const std::vector< std::vector< double >> &pos)
Constructor which initializes the measurement points for the multi dimensional model function.
Definition: FumiliStandardMaximumLikelihoodFCN.h:71
ROOT::Minuit2::FumiliStandardMaximumLikelihoodFCN::GetNumberOfMeasurements
virtual int GetNumberOfMeasurements() const
Accessor to the number of measurements used for calculating the maximum likelihood.
Definition: FumiliStandardMaximumLikelihoodFCN.cxx:51
FumiliMaximumLikelihoodFCN.h
ParametricFunction.h
RooFit::Index
RooCmdArg Index(RooCategory &icat)
Definition: RooGlobalFunc.cxx:98
ROOT::Minuit2::FumiliStandardMaximumLikelihoodFCN::fPositions
std::vector< std::vector< double > > fPositions
Definition: FumiliStandardMaximumLikelihoodFCN.h:129
ROOT
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...
Definition: EExecutionPolicy.hxx:4
ROOT::Minuit2::FumiliStandardMaximumLikelihoodFCN
Class implementing the Elements member function for the standard maximum likelihood method.
Definition: FumiliStandardMaximumLikelihoodFCN.h:34