TCanvas' ctor you are using, is not reading anything from file.
void cnv()
{
TFile *f = new TFile("canvas.root", "read"); TCanvas *c = (TCanvas *)f->Get("a"); if (c && c->GetListOfPrimitives()) {
c->GetListOfPrimitives()->Print();
}
}
I have a root file with TCanvas inside, canvas has a name "a", its list of primitives contains one object (TH1F, with name "aa"), output is:
root [0] .x cnv.C
Collection name='TList', class='TList', size=1
TH1.Print Name =h aa, Entries= 100000, Total sum= 100000.
I think, if you want to use objects from TCanvas, you'll also have to do something about objects' lifetime later.
On 02/13/12 21:47, Timur Pocheptsov wrote:
> Hi Adrian.
Hi Timur!!
> Read your canvas and ask it for a list of primitives?
>
> TCanvas * c = (TCanvas *)f->Get(.....);
> if (c) {
> ....
> TList *primitives = c->GetListOfPrimitives();
well i have this code :
TFile *f = new TFile("spectra_kaon_minus.root"); if (!f) return;
f->ls();
TCanvas *c = new TCanvas ("f:cCanvas_kaon_minus");
TList *p = c->GetListOfPrimitives();
p->Print();
and this is the output
root [0]
Processing test.C...
TFile** spectra_kaon_minus.root TFile* spectra_kaon_minus.root KEY: TCanvas cCanvas_kaon_minus;1
is there other way to investigate contents of the canvas?
Большое спасибо :),
Adrian
>
> ///iterate on this list.
>
> }
> ________________________________________
> From: owner-roottalk_at_root.cern.ch [owner-roottalk_at_root.cern.ch] on behalf of Adrian Sevcenco [Adrian.Sevcenco_at_cern.ch]
> Sent: 13 February 2012 20:24
> To: roottalk_at_root.cern.ch
> Subject: [ROOT] histograms embedded in TCanvas
>
> Hi! I have an root file that have an TCanvas saved inside.
> Inside in that TCanvas somehow there are a few histograms.
> How can i list and handle (access) those histograms?
>
> Thank you,
> Adrian
Received on Mon Feb 13 2012 - 22:25:50 CET
This archive was generated by hypermail 2.2.0 : Tue Feb 14 2012 - 11:50:02 CET