source: Sophya/trunk/SophyaLib/NTools/objfitter.h@ 1110

Last change on this file since 1110 was 1110, checked in by ansari, 25 years ago

on vire imageop.o de objlis.list
instanciations GNU des fct de dynccd.cc Noise... etc...
des fct passees en const dans GeneralFitData
objfitter prend les Histo/Histo2D/HProf/GeneralFitData

cmv 28/7/00

File size: 3.5 KB
Line 
1// This may look like C code, but it is really -*- C++ -*-
2//
3// Methode d'ajustement non-lineaire sur des objets
4// R. Ansari 02/2000
5
6#ifndef OBJFITTER_SEEN
7#define OBJFITTER_SEEN
8
9#include "machdefs.h"
10
11#include "tmatrix.h"
12#include "tvector.h"
13#include "histos.h"
14#include "histos2.h"
15#include "hisprof.h"
16#include "generalfit.h"
17
18
19namespace SOPHYA {
20
21class ObjectFitter {
22public:
23 // Residus et fonction fittees sur matrix
24 static TMatrix<r_4> FitResidus(TMatrix<r_4> const & mtx, GeneralFit& gfit,
25 double xorg=0.,double yorg=0.,double dx=1.,double dy=1.);
26 static TMatrix<r_8> FitResidus(TMatrix<r_8> const & mtx, GeneralFit& gfit,
27 double xorg=0.,double yorg=0.,double dx=1.,double dy=1.);
28 static TMatrix<r_4> FitFunction(TMatrix<r_4> const & mtx, GeneralFit& gfit,
29 double xorg=0.,double yorg=0.,double dx=1.,double dy=1.);
30 static TMatrix<r_8> FitFunction(TMatrix<r_8> const & mtx, GeneralFit& gfit,
31 double xorg=0.,double yorg=0.,double dx=1.,double dy=1.);
32 // Residus et fonction fittees sur vecteurs
33 static TVector<r_4> FitResidus(TVector<r_4> const & vec, GeneralFit& gfit,
34 double xorg=0.,double dx=1.);
35 static TVector<r_8> FitResidus(TVector<r_8> const & vec, GeneralFit& gfit,
36 double xorg=0.,double dx=1.);
37 static TVector<r_4> FitFunction(TVector<r_4> const & vec, GeneralFit& gfit,
38 double xorg=0.,double dx=1.);
39 static TVector<r_8> FitFunction(TVector<r_8> const & vec, GeneralFit& gfit,
40 double xorg=0.,double dx=1.);
41 // Residus et fonction fittees sur Histo
42 static Histo FitResidus(Histo const& h, GeneralFit& gfit);
43 static Histo FitFunction(Histo const& h, GeneralFit& gfit);
44 static int_4 Fit(Histo const & h, GeneralFit& gfit,unsigned short typ_err=0);
45 // Residus et fonction fittees sur Histo2D
46 static Histo2D FitResidus(Histo2D const& h, GeneralFit& gfit);
47 static Histo2D FitFunction(Histo2D const& h, GeneralFit& gfit);
48 static int_4 Fit(Histo2D const & h, GeneralFit& gfit,unsigned short typ_err=0);
49 // Residus et fonction fittees sur HProf
50 static inline Histo FitResidus(HProf const& h, GeneralFit& gfit)
51 {h.UpdateHisto(); return FitResidus((Histo const&) h,gfit);}
52 static inline Histo FitFunction(HProf const& h, GeneralFit& gfit)
53 {h.UpdateHisto(); return FitFunction((Histo const&) h,gfit);}
54 static int_4 Fit(HProf const & h, GeneralFit& gfit)
55 {h.UpdateHisto(); return Fit((Histo const&) h,gfit,0);}
56 // Residus et fonction fittees sur GeneralFitData
57 static inline GeneralFitData FitResidus(GeneralFitData const& g, GeneralFit& gfit)
58 {return g.FitResidus(gfit);}
59 static inline GeneralFitData FitFunction(GeneralFitData const& g, GeneralFit& gfit)
60 {return g.FitFunction(gfit);}
61};
62
63// Classe template pour ajustement sur tableaux (Vecteurs, Matrices)
64template <class T>
65class ArrayFitter {
66public:
67 // Residus et fonction fittees sur matrix
68 static TMatrix<T> FitResidus(TMatrix<T> const & mtx, GeneralFit& gfit,
69 double xorg=0.,double yorg=0.,double dx=1.,double dy=1.);
70 static TMatrix<T> FitFunction(TMatrix<T> const & mtx, GeneralFit& gfit,
71 double xorg=0.,double yorg=0.,double dx=1.,double dy=1.);
72 // Residus et fonction fittees sur vecteurs
73 static TVector<T> FitResidus(TVector<T> const & vec, GeneralFit& gfit,
74 double xorg=0.,double dx=1.);
75 static TVector<T> FitFunction(TVector<T> const & vec, GeneralFit& gfit,
76 double xorg=0.,double dx=1.);
77};
78
79} // Fin du namespace
80
81
82#endif // OBJFITTER_SEEN
Note: See TracBrowser for help on using the repository browser.