[ROOT] Printing 2 pads with 2 fits of the same histo

From: Sabine Crepe-Renaudin (crepe@in2p3.fr)
Date: Tue Aug 06 2002 - 14:21:06 MEST


	Hello,


		I'm using something equivalent to the following routine
which simply fit an histo in two ranges and display each fit in 2 pads.
Everything is OK till I try to print the result.

	You can try the routine below to see the effect. If the print
command is commented, you see the 2 fits, if you uncomment the last line,
then the first fit is overwritten with the second and this is what is
saved in the postscript file ...

	Have I done something wrong ? is it possible to print the results
correctly without copying the histo in an other one and fit 2 different
histos ???

		Thanks in advance for any suggestion,

				Sabine.


{
   gROOT->Reset();
   const Int_t np = 49;
   Float_t x[np] = {1.913521, 1.953769, 2.347435, 2.883654, 3.493567,4.047560,4.337210, 4.364347, 4.563004, 5.054247,5.194183, 5.380521, 5.303213, 5.384578, 5.563983,5.728500, 5.685752, 5.080029, 4.251809, 3.372246,2.207432, 1.227541, 0.8597788,0.8220503,
0.8046592,0.7684097,0.7469761,0.8019787,0.8362375,0.8744895,0.9143721,0.9462768,0.9285364,0.8954604,0.8410891,0.7853871,0.7100883,0.6938808,0.7363682,0.7032954,0.6029015,0.5600163,0.7477068,1.188785, 1.938228,2.602717, 3.472962, 4.465014, 5.177035};

   h = new TH1F("g1","Example of several fits in subranges",np,85,134);
   h->SetMaximum(7);

   for (int i=0;i<np;i++) {
      h->SetBinContent(i+1,x[i]);
   }

   Double_t par[9];
   g1    = new TF1("g1","gaus",85,95);
   g2    = new TF1("g2","gaus",98,108);


   TCanvas *myc = new TCanvas("myc","myc_titre",0,0,360,520); 
   myc->Clear();
   myc->Divide(1,2);
   myc->cd(1);
   h->Fit("g1","","",85,95);
   myc->Update();
   myc->cd(2);
   h->Fit("g2","","",98,108);
   myc->Update();

// myc->Print("fit.eps");
}



  --------------------------------------------------------------------
      Sabine Crépé-Renaudin   
      Expérience D0 (Fermilab)              
      ISN                                       
  --------------------------------------------------------------------



{

   gROOT->Reset();
   const Int_t np = 49;
   Float_t x[np] = {1.913521, 1.953769, 2.347435, 2.883654, 3.493567,4.047560,4.337210, 4.364347, 4.563004, 5.054247,5.194183, 5.380521, 5.303213, 5.384578, 5.563983,5.728500, 5.685752, 5.080029, 4.251809, 3.372246,2.207432, 1.227541, 0.8597788,0.8220503,0.8046592,0.7684097,0.7469761,0.8019787,0.8362375,0.8744895,0.9143721,0.9462768,0.9285364,0.8954604,0.8410891,0.7853871,0.7100883,0.6938808,0.7363682,0.7032954,0.6029015,0.5600163,0.7477068,1.188785, 1.938228,2.602717, 3.472962, 4.465014, 5.177035};

   h = new TH1F("g1","Example of several fits in subranges",np,85,134);
   h->SetMaximum(7);

   for (int i=0;i<np;i++) {
      h->SetBinContent(i+1,x[i]);
   }

   Double_t par[9];
   g1    = new TF1("g1","gaus",85,95);
   g2    = new TF1("g2","gaus",98,108);


   TCanvas *myc = new TCanvas("myc","myc_titre",0,0,360,520); 
   myc->Clear();
   myc->Divide(1,2);
   myc->cd(1);
   h->Fit("g1","","",85,95);
   myc->Update();
   myc->cd(2);
   h->Fit("g2","","",98,108);
   myc->Update();

// myc->Print("fit.eps");
}



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:03 MET