RE: [ROOT] .cxx and .c files: problems to save histograms

From: Reinhardt Chamonal (chamonal@ph.ed.ac.uk)
Date: Wed Apr 03 2002 - 18:49:09 MEST


Ah ok sorry about that thanks...


On Wed, 3 Apr 2002, Philippe Canal wrote:


> Hi,
> 
> This problem is fixed in ROOT 3.03.03.  (See previous post on this subject).
> 
> Cheers,
> Philippe.
> 
> -----Original Message-----
> From: owner-roottalk@pcroot.cern.ch
> [mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Reinhardt Chamonal
> Sent: Wednesday, April 03, 2002 10:14 AM
> To: roottalk@pcroot.cern.ch
> Subject: [ROOT] .cxx and .c files: problems to save histograms
> 
> 
> Hi,
> I am having a "problem" to save my histogram in a root file.
> I tried first on a dummy.CXX  macro inspired from the tutorial and it 
> worked fine. When I decided to export it to my script.C macro it didn't 
> work anymore on version 3.01/05 and even 3.02/07. But it worked on the 
> older version 3.00/06.
> I then decided to change my srcipt.c for a script.cxx name and turned out 
> to work fine...
> Is it due to some libraries which have to be included ? Or I am doing 
> something fundamently wrong ?
> Here is the full but not so long macro:
> 
> #include <iostream.h> 
> Double_t tabCut[64];
> Double_t tabSignal[64]={31,81,90,80,70,42,24,13,13,
>   72,87,79,18,38,36,21,30,91,97,97,93,66,39,21,25,92,
>   95,97,96,86,57,32,92,98,99,96,86,54,28,14,82,93,95,
>   95,95,89,86,0,63,94,95,94,86,51,31,44,50,51,50,23,65,73,53,27};
> 
> void col(){
>   Double_t tabcol[8];
>   Double_t rowSignal=0;
>   Double_t tabvalue;
>   Int_t rowdiv=8;
>   Int_t rownb=0;
>   Int_t incr=0;
>   c1 = new TCanvas("zdemo2","LED Cluster Shower on MAPMT",10,40,400,450);
>   // ******************
>   TFile *hfile = gROOT->FindObject("hsimple.root"); if (hfile) 
> hfile->Close();
>   hfile = new TFile("hsimple.root","RECREATE","Demo ROOT file with 
> histograms");
>   //********************
>   hpx = new TH2F("hpx","Col population",100,0,9,100,0,0.4);
>   gBenchmark->Start("hsimple"); 
>   
>   for (Int_t i=0;i<=7;i++){
>     incr=i;
>     for(Int_t j=0;j<=7;j++){
>       cout << "tab["<<incr<<"]="<<tabSignal[incr]/100<<endl;
>       tabvalue=(tabSignal[incr]/1000);
> 	
>       // don't forget starting from 0 thus -1 to the channel
>     if (incr==12 ||incr==18) {
>       cout<<"cluster ignored"<<endl;
>       rowdiv=7;
>       tabvalue=0;
>     }
>     rowSignal+=tabvalue;
>     incr+=8;
>     }
>     
>   tabcol[rownb]=rowSignal/rowdiv;
>   hpx->Fill(rownb+1,rowSignal);
>   rowSignal=0;
>   cout << "row["<<rownb<<"]="<<tabcol[rownb]<<" and div="<< rowdiv<<endl;
>   rownb++;
>   rowdiv=8;
>   
>   }
> 
>  gStyle->SetDateX(0.95); 
>  gStyle->SetDateY(0.95); 
>  gStyle->SetOptStat(0);
>  gStyle->SetMarkerStyle(22);
>  
>  hpx->Draw();
>  cout<<"watch out try to save everything"<<endl;
>  gBenchmark->Show("hsimple");
>  c1->Update();
>  hfile->Write();  //************************
> }
> 
> 
> if someone could explain me the subtility here. 
> 
> Cheers
> 

-- 
------------------------------------------------------------
 Reinhardt CHAMONAL            The University of Edinburgh  
                               Dept. of Physics & Astronomy 
 email: chamonal@ph.ed.ac.uk   King's Buildings, JCMB, 5301 
                               Mayfield Road                
 phone: +44-131-650 5307       Edinburgh, EH9 3JZ           
 
 web: http://www.ph.ed.ac.uk/~chamonal/
      http://www.reuh.fr.st
------------------------------------------------------------



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