ROOT   Reference Guide
Searching...
No Matches
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
17namespace ROOT {
18
19namespace Minuit2 {
20
21/**
22
23Class implementing the Elements member function for the standard
24maximum 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
36public:
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
128private:
129 std::vector<std::vector<double>> fPositions;
130};
131
132} // namespace Minuit2
133
134} // namespace ROOT
135
136#endif // ROOT_Minuit2_FumiliStandardMaximumLikelihoodFCN
Extension of the FCNBase for the Fumili method.
void SetModelFunction(const ParametricFunction &modelFCN)
Sets the model function for the data (for example gaussian+linear for a peak)
Class implementing the Elements member function for the standard maximum likelihood method.
virtual int GetNumberOfMeasurements() const
Accessor to the number of measurements used for calculating the maximum likelihood.
std::vector< double > Elements(const std::vector< double > &par) const
Evaluates the model function for the different measurement points and the Parameter values supplied.
virtual void EvaluateAll(const std::vector< double > &par)
Evaluate function Value, Gradient and Hessian using Fumili approximation, for values of parameters p ...
virtual const std::vector< double > & GetMeasurement(int Index) const
Accessor to the position of the measurement (x coordinate).
FumiliStandardMaximumLikelihoodFCN(const ParametricFunction &modelFCN, const std::vector< std::vector< double > > &pos)
Constructor which initializes the measurement points for the multi dimensional model function.
FumiliStandardMaximumLikelihoodFCN(const ParametricFunction &modelFCN, const std::vector< double > &pos)
Constructor which initializes the measurement points for the one dimensional model function.
Function which has parameters.
Double_t x[n]
Definition legend1.C:17
const Int_t n
Definition legend1.C:16
tbb::task_arena is an alias of tbb::interface7::task_arena, which doesn't allow to forward declare tb...