laura is hosted by Hepforge, IPPP Durham
Laura++  v2r1
A maximum likelihood fitting package for performing Dalitz-plot analysis.
LauAbsFitter.hh
Go to the documentation of this file.
1 
2 // Copyright University of Warwick 2013 - 2013.
3 // Distributed under the Boost Software License, Version 1.0.
4 // (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5 
6 // Authors:
7 // Thomas Latham
8 // John Back
9 // Paul Harrison
10 
22 #ifndef LAU_ABS_FITTER
23 #define LAU_ABS_FITTER
24 
25 #include <utility>
26 #include <vector>
27 
28 #include "Rtypes.h"
29 #include "TMatrixDfwd.h"
30 
31 class LauFitObject;
32 class LauParameter;
33 
34 
35 class LauAbsFitter {
36 
37  public:
39  virtual ~LauAbsFitter() {}
40 
42 
46  virtual void initialise( LauFitObject* fitObj, const std::vector<LauParameter*>& parameters ) = 0;
47 
49  virtual LauFitObject* getFitObject() =0;
50 
52  virtual UInt_t nParameters() const = 0;
53 
55  virtual UInt_t nFreeParameters() const = 0;
56 
58  virtual Bool_t twoStageFit() const = 0;
59 
61 
71  virtual void twoStageFit(Bool_t doTwoStageFit) = 0;
72 
74  virtual Bool_t useAsymmFitErrors() const = 0;
75 
77 
80  virtual void useAsymmFitErrors(Bool_t useAsymmErrors) = 0;
81 
83 
86  virtual std::pair<Int_t,Double_t> minimise() = 0;
87 
89  virtual void fixFirstStageParameters() = 0;
90 
92  virtual void releaseFirstStageParameters() = 0;
93 
95  virtual void fixSecondStageParameters() = 0;
96 
98  virtual void releaseSecondStageParameters() = 0;
99 
101  virtual void updateParameters() = 0;
102 
104  virtual const TMatrixD& covarianceMatrix() const = 0;
105 
106  protected:
109 
110  private:
112  LauAbsFitter( const LauAbsFitter& );
113 
115  LauAbsFitter& operator=( const LauAbsFitter& rhs );
116 
118 };
119 
120 #endif
121 
virtual void updateParameters()=0
Update the values and errors of the parameters based on the fit minimum.
virtual ~LauAbsFitter()
Destructor.
Definition: LauAbsFitter.hh:39
virtual Bool_t twoStageFit() const =0
Determine whether the two-stage fit is enabled.
ClassDef(LauAbsFitter, 0)
virtual void initialise(LauFitObject *fitObj, const std::vector< LauParameter * > &parameters)=0
Initialise the fitter, setting the information on the parameters.
virtual std::pair< Int_t, Double_t > minimise()=0
Perform the minimisation of the fit function.
The abstract interface to the fitter.
Definition: LauAbsFitter.hh:35
virtual void fixFirstStageParameters()=0
Fix parameters marked as &quot;first stage&quot;.
virtual UInt_t nParameters() const =0
Get the total number of fit parameters.
virtual void releaseSecondStageParameters()=0
Release parameters marked as &quot;second stage&quot;.
Class for defining the fit parameter objects.
Definition: LauParameter.hh:33
virtual void fixSecondStageParameters()=0
Fix parameters marked as &quot;second stage&quot;.
virtual LauFitObject * getFitObject()=0
Get the object that controls the calculation of the likelihood.
virtual UInt_t nFreeParameters() const =0
Get the number of floating fit parameters.
virtual Bool_t useAsymmFitErrors() const =0
Determine whether calculation of asymmetric errors is enabled.
virtual void releaseFirstStageParameters()=0
Release parameters marked as &quot;first stage&quot;.
LauAbsFitter()
Constructor.
The abstract interface for the objects that control the calculation of the likelihood.
Definition: LauFitObject.hh:26
virtual const TMatrixD & covarianceMatrix() const =0
Retrieve the fit covariance matrix.
LauAbsFitter & operator=(const LauAbsFitter &rhs)
Copy assignment operator - private and not implemented.