(no subject)

From: LAVAUD FRANCK (lavaud@ipno.in2p3.fr)
Date: Tue Nov 16 1999 - 20:57:27 MET


	Hello,

	I have a problem with FIT. I have written a very simple program 
to show you my problem: I considere 3 points: (x1,y1) (x2,y2) (x3,y3), 
and I fit with the 'pol1' on the interval x1 to x2 and with a other 'pol1' 
on the interval x2 to x3. In fact, It is very easy to find the solution 
(y=ax+b, then a=(y2-y1)/(x2-x1) and b=y2-a*x2=y1-a*x1) but Root don't 
arrive to find the good solution! I don't understand why it is a problem. 
It is may be a problem in my program but, if it is this case, I don't 
know where!

	Thank you by advance,


						Franck Lavaud

NB: I use root 2.23

-----------------------------------------------------------------------
                
                           LAVAUD FRANCK
			    			
               Institut de Physique Nucleaire - Bat. 102
                       Universite de Paris-Sud 
                         F91406 ORSAY Cedex
		 
     Tel.: (33) 01.69.15.72.43        E-Mail: Lavaud@ipno.in2p3.fr
                                              Lavaud@in2p3.fr
       
-----------------------------------------------------------------------


#include <stdlib.h>
#include <fstream.h>
#include <math.h>

#include <TROOT.h>
#include <TApplication.h>  
#include <TCanvas.h>
#include <TFile.h>
#include <TGraph.h>
#include <TGraphErrors.h>
#include <TH1.h>
#include <TF1.h>
#include <TF2.h>
#include <TKey.h>
#include <TLine.h>
#include <TList.h>
#include <TMath.h>
#include <TEnv.h>




ObjSuf        = o
SrcSuf        = cxx
ExeSuf        =
DllSuf        = so
EVENTLIB      = $(EVENTO)
OutPutOpt     = -o

ROOTCFLAGS    = $(shell root-config --cflags)
ROOTLIBS      = $(shell root-config --libs)
ROOTGLIBS     = $(shell root-config --glibs)

# Alpha/OSF with cxx6
CXX           = cxx
CXXFLAGS      = -O0
LD            = cxx
LDFLAGS       = -g
SOFLAGS       = -Wl,-expect_unresolved,* -call_shared


CXXFLAGS     += $(ROOTCFLAGS)
LIBS          = $(ROOTLIBS)
GLIBS         = $(ROOTGLIBS)

#------------------------------------------------------------------------------

totoO      = toto.$(ObjSuf)
totoS      = toto.$(SrcSuf)
toto       = toto$(ExeSuf)

OBJS          = $(totoO)

PROGRAMS      = $(toto)

all:            $(PROGRAMS)
		
$(toto):     $(totoO)
		$(LD) $(LDFLAGS) $(totoO) $(GLIBS) $(OutPutOpt) $(toto)
		@echo "$(toto) done"		

clean:
		@rm -f $(OBJS) *Dict.* core

.SUFFIXES: .$(SrcSuf)

###

.$(SrcSuf).$(ObjSuf):
	$(CXX) $(CXXFLAGS) -c $<

#include "incl.incl"

TCanvas *c1;

extern void InitGui(  );
VoidFuncPtr_t initfuncs[] = { InitGui, 0 };

TROOT root( "GUI", "GUI test environement", initfuncs );

int main( int argc, char **argv ) 
{
      
      TApplication theApp( "App", &argc, argv );
      c1 = new TCanvas( "c1", "Fenetre graphique", 564, 0, 700, 900 );
	
      float x[3];
      float y[3];
      float fit_a[ 3 ][ 100 ];

      x[0] = 2.000000e+00;	// <- Z=2 = z_start
      y[0] = 1.931110e-03;

      x[1] = 3.000000e+00;	// <- Z=3 = z_cut
      y[1] = -7.602538e-05;

      x[2] = 4.000000e+00;	// <- Z=4 = zmax
      y[2] = -6.408968e-05;

      int z_start = 1;
      int z_cut   = 3;
      int zmax    = 4;

      TGraph *graph0 = new TGraph( 3, x, y );

      TF1 *g01 = new TF1( "g01", "pol1", 2., 3. );
      g01 -> SetLineColor( 9 );
      g01 -> SetLineStyle( 2 );

      TF1 *g02 = new TF1( "g02", "pol1", 3., 4. );
      g02 -> SetLineColor( 3 );
      g02 -> SetLineStyle( 2 );

      graph0 -> Draw( "ALP" );

      graph0 -> Fit( "g01", "WQR+" );
      graph0 -> Fit( "g02", "WQR+" );

      for ( int k = 0; k <= 3 ; k++ ) 
      { 
	      if ( k <= 1 )
	      {
		      fit_a[ 0 ][ k ] = g01 -> GetParameter( k );
		      printf("  	      fit_a0( %d ) =%e \n", k, fit_a[ 0 ][ k ] );
	      }
	      else
	      {
		      fit_a[ 0 ][ k ] = g02 -> GetParameter( k-2 );
		      printf("  	      fit_a0( %d ) =%e \n", k, fit_a[ 0 ][ k ] );
	      }
      }

      c1 -> Update();
	
      theApp.Run();

      return 0;
}	



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:43 MET