C++ code

From: Anton V. Bogomyagkov (A.V.Bogomyagkov@inp.nsk.su)
Date: Fri Dec 10 1999 - 08:55:23 MET


Hello,
I wrote a C++ code for drawing a function. I can compile it, but when I 
try to execute the program error appears on the line where I define a 
pointer to a TF1 class. However, canvas is drawing and function not. Below 
is a code of my program. So, can somebody of you help me and explain what 
is wrong there?
Thank you.

#include <stdio.h>
#include <math.h>
#include "TROOT.h"
//#include "TClass.h"
//#include "TClassTable.h"
//#include "TCollection.h"
//#include "TObject.h"
#include "TCanvas.h"
#include "TMath.h"
#include "TF1.h"
#include "TApplication.h"

extern void InitGui();
VoidFuncPtr_t initfuncs[]={InitGui, 0};
int Error;  //needed by Motif

TROOT root("hello","Hello World",initfuncs);


Double_t ring(Double_t *x, Double_t *p)
{
Double_t Pi=3.14, Dl=0.005;
Double_t f=0, fx, phi,y,z;
if(p[2]){
 for(y=p[2];y<=p[3];y+=Dl){
  z=(x[0]-y)/p[1];
  fx=exp(-0.5*z*z)*sqrt(p[3]*p[3]-y*y);
  f+=p[0]*fx*Dl;
 }

 for(y=-p[3];y<=-p[2];y+=Dl){
  z=(x[0]-y)/p[1];
  fx=exp(-0.5*z*z)*sqrt(p[3]*p[3]-y*y);
  f+=p[0]*fx*Dl;		
 }

 for(y=-p[2];y<=p[2];y+=Dl){
  z=(x[0]-y)/p[1];
  fx=exp(-0.5*z*z)*(sqrt(p[3]*p[3]-y*y)-sqrt(p[2]*p[2]-y*y));
  f+=p[0]*fx*Dl;		
 }	
}
return f;
}

int main(int argc, char **argv){

TApplication theApp("App",&argc,argv);

TCanvas *c1 = new TCanvas("c1","Function draw",10,10,600,450);
c1->Show();

TF1 *func = new TF1("ring",ring,-6,6,4);
func->SetParameters(1500,0.3,1.7,1.71);
func->Draw();
c1->Update();

theApp.Run(kTRUE);

theApp.Run();

return 0;
}
Антон.



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