MinuitMigrad.h
Go to the documentation of this file.
1 /* -*- mode: c++ -*- */
2 
14 // for have minuit
15 #ifdef HAVE_CONFIG_H
16 #include "config.h"
17 #endif
18 
19 #ifndef _MinuitMigrad_H_
20 #define _MinuitMigrad_H_
21 
22 #include "Fitter.h"
23 
24 #ifdef HAVE_MINUIT
25 class MnMigrad;
26 #endif
27 
28 #ifdef HAVE_MINUIT2
29 namespace ROOT {
30  namespace Minuit2 {
31  class MnMigrad;
32  }
33 }
34 #endif
35 
36 namespace hippodraw {
37 
55 {
56 
57 private:
58 
61  MinuitMigrad ( const MinuitMigrad & );
62 
68  struct limit {
69  double lower;
70  double upper;
71  bool set;
72  };
73 
76  std::vector < limit > m_limits;
77 
80  void initLimits ();
81 
87 #ifdef HAVE_MINUIT
88  MnMigrad * m_minimizer;
89 #endif
90 #ifdef HAVE_MINUIT2
91  ROOT::Minuit2::MnMigrad * m_minimizer;
92 #endif
93 
96  void initialize ();
97 
100  void checkIndex ( unsigned int index );
101 
102 public:
103 
105  MinuitMigrad ( const char * name );
106 
107  virtual Fitter * clone () const;
108 
111  virtual void setLimits ( unsigned int i, double lower, double upper );
112 
115  virtual void setStepSize ( unsigned int i, double size );
116 
119  virtual bool calcBestFit ();
120 
122  virtual int calcCovariance ( std::vector< std::vector < double > >& cov );
123 
124 };
125 
126 } // namespace hippodraw
127 
128 #endif // _MinuitMigrad_H_

Generated for HippoDraw Class Library by doxygen