Hello Rene,
In fact it's what I've done through the following method I wrote and which
is called in my analysis code while a file is opened (i.e is the current
dir).
Plot2in1(hJetStudy109,hJetStudy116,1,0,0,"",111111,5,2) ; // in the ana.
code , and :
void Plot2in1(TH1* hist1, TH1* hist2,
Bool_t logy = 0, Bool_t logx = 0, Bool_t grid = 0,
TString fit = "",
Int_t stati = 111111,Int_t histo1color =0 ,Int_t histo2color
= 0)
{
TCanvas *c1 = (TCanvas*)gROOT->FindObject("c1");
if (c1) {c1->Clear();}
else {c1 = new TCanvas("c1");}
sebstyle(); // this method sets my default canvas, pad, texts ,etc .. style
TPad* pad1 = new TPad("pad1","pad",0.03,0.03,0.98,0.98);
pad1->Draw();
if (logy) pad1->SetLogy();
if (logx) pad1->SetLogx();
pad1->cd();
// pad1->SetGrid();
if(stati != 111111) gStyle->SetOptStat(stati);
if(histo1color !=0 ) hist1->SetFillColor(histo1color);
if(histo2color !=0 ) hist2->SetFillColor(histo2color);
if (fit != "") {
hist1->Fit(fit);
hist2->Fit(fit);}
TString name1 = hist1->GetName();
TString name2 = hist2->GetName();
TString newname = name1+"and"+name2;
hist1->Draw();
// hist1->Write(); // is in fact here not neede here since I also wrote a
quite similar method for one histo
hist2->Draw("SAME");
hist2->Write(newname);
c1->Update();
}
Moreover, when I set the log scale (by putting the 3rd argument to 1 when
calling the method, this is not retained in the root file, I guess it's
due to the TPad ownership of SetLogy as you already told me and which is
not retained when the command histo->Write() is called, but this is not
the important point here)
I don't do f->Write() since I only want some specified histos to be
written in the root file.
Cheers,
seb.
(I'm using 3.02.07 on Linux RedHat)
On Fri, 26 Apr 2002, Rene Brun wrote:
> It could be that I misunderstand your question, but why not simply do:
>
> TFile *f = new TFile("myfile.root","recreate");
> ...
> h1->Draw();
> h1->Write();
> h2->Draw("SAME");
> h2->Write();
> h3->Draw("SAME");
> h3->Write();
> ...
>
> doing f->Write();
> will write all histograms created with f being the current dir to the file.
> See Users Guide for more details.
>
> Rene Brun
>
> Sebastien Greder wrote:
> >
> > Hello Rooters,
> >
> > I just have a short question ; I'm running some code to fill histos and
> > want them to be then stored in a root file.
> > To store one histo is obvious but I'd like to superpose several histos and
> > store the final superposed histo in the root file (it would be more
> > practical than superposing after having stored all the histos in
> > the root file).
> > To sum up, I would like to do the same operation like :
> >
> > h1->Draw();
> > h2->Draw("SAME");
> > h3->Draw("SAME");
> > ...
> >
> > but while writing the histo in a root file.
> > I can't find out how.
> > Could someone give me some advices about this ??
> >
> > Thanks in advance,
> >
> > seb.
>
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:51 MET