Logo ROOT   6.14/05
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 
13 
16 #include <vector>
17 
18 namespace ROOT {
19 
20  namespace Minuit2 {
21 
22 
23 
24 
25 /**
26 
27 Class implementing the Elements member function for the standard
28 maximum likelihood method.
29 
30 @author Andras Zsenei and Lorenzo Moneta, Creation date: 4 Sep 2004
31 
32 @see FumiliMaximumLikelihoodFCN
33 
34 @ingroup Minuit
35 
36 */
37 
39 
40 public:
41 
42 
43  /**
44 
45  Constructor which initializes the measurement points for the one dimensional model function.
46 
47  @param modelFCN the model function used for describing the data.
48 
49  @param pos vector containing the x values corresponding to the
50  measurements
51 
52  */
53 
55  const std::vector<double>& pos)
56  {
57  this->SetModelFunction(modelFCN);
58  unsigned int n = pos.size();
59  fPositions.reserve( n );
60  std::vector<double> x(1);
61  for (unsigned int i = 0; i < n; ++i) {
62  x[0] = pos[i];
63  fPositions.push_back(x);
64  }
65  }
66 
67 
68 
69  /**
70 
71  Constructor which initializes the measurement points for the multi dimensional model function.
72 
73  @param modelFCN the model function used for describing the data.
74 
75  @param pos vector containing the x values corresponding to the
76  measurements
77 
78  */
79 
81  const std::vector<std::vector<double> >& pos) {
82  this->SetModelFunction(modelFCN);
83  fPositions = pos;
84 
85  }
86 
87 
88 
89 
91 
92 
93 
94 
95  /**
96 
97  Evaluates the model function for the different measurement points and
98  the Parameter values supplied.
99 
100  @param par vector of Parameter values to feed to the model function.
101 
102  @return A vector containing the model function evaluated
103  for each measurement point.
104 
105  */
106 
107  std::vector<double> Elements(const std::vector<double>& par) const;
108 
109 
110 
111 
112  /**
113 
114  Accessor to the position of the measurement (x coordinate).
115 
116  @param Index Index of the measuerement the position of which to return.
117 
118  @return the position of the measurement.
119 
120  */
121 
122  virtual const std::vector<double> & GetMeasurement(int Index) const;
123 
124 
125  /**
126 
127  Accessor to the number of measurements used for calculating
128  the maximum likelihood.
129 
130  @return the number of measurements.
131 
132  */
133 
134  virtual int GetNumberOfMeasurements() const;
135 
136  /**
137 
138  Evaluate function Value, Gradient and Hessian using Fumili approximation, for values of parameters p
139  The resul is cached inside and is return from the FumiliFCNBase::Value , FumiliFCNBase::Gradient and
140  FumiliFCNBase::Hessian methods
141 
142  @param par vector of parameters
143 
144  **/
145 
146  virtual void EvaluateAll( const std::vector<double> & par );
147 
148 
149  private:
150 
151  std::vector<std::vector<double> > fPositions;
152 };
153 
154  } // namespace Minuit2
155 
156 } // namespace ROOT
157 
158 #endif // ROOT_Minuit2_FumiliStandardMaximumLikelihoodFCN
Class implementing the Elements member function for the standard maximum likelihood method...
Namespace for new ROOT classes and functions.
Definition: StringConv.hxx:21
std::vector< double > Elements(const std::vector< double > &par) const
Evaluates the model function for the different measurement points and the Parameter values supplied...
Double_t x[n]
Definition: legend1.C:17
virtual void EvaluateAll(const std::vector< double > &par)
Evaluate function Value, Gradient and Hessian using Fumili approximation, for values of parameters p ...
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.
virtual const std::vector< double > & GetMeasurement(int Index) const
Accessor to the position of the measurement (x coordinate).
RooCmdArg Index(RooCategory &icat)
virtual int GetNumberOfMeasurements() const
Accessor to the number of measurements used for calculating the maximum likelihood.
Extension of the FCNBase for the Fumili method.
const Int_t n
Definition: legend1.C:16
void SetModelFunction(const ParametricFunction &modelFCN)
Sets the model function for the data (for example gaussian+linear for a peak)