Diego
1
_ROOT Version:6.12/04
_Platform:MacOS High Sierra - 10.13.6
Dear all,
When running the following simple code:
void readRoot()
{
TFile *myfile = new TFile("test.root","READ");
TTree *tree = (TTree*)myfile->Get("PartInfo");
std::vector<int> *process = 0;
tree->SetBranchAddress("CreatorProcessID",&process);
TH1I *hp = new TH1I("Process","",100,0,1100);
for (int i=0; i<tree->GetEntries(); i++)
{
tree->GetEntry(i);
hp->Fill(process->at(i));
}
hp->Draw();
}
I am having the following message:
libc++abi.dylib: terminating with uncaught exception of type std::out_of_range: vector
I don’t really understand why I cannot read this Branch. Any ideas?
Cheers,
Diego
test.root (774.6 KB)
tree->GetEntry(i);
for (unsigned j = 0; j < process->size(); j++) hp->Fill(process->at(j));
Diego
3
Hello, Thanks for you quick answer.
However, in this case the histogram is not filled. I am expecting the plot attached, done with New TBroser().
CreatorProcessID.pdf (13.5 KB)
TH1I *hp = new TH1I("Process", "", 1100, 0., 1100.);
Diego
5
Is that working for you? It does not for me…
pcanal
6
well … that works … i.e. you need to either use the automatic binning or set the binning right.
void readRoot()
{
TFile *myfile = new TFile("test.root","READ");
TTree *tree = (TTree*)myfile->Get("PartInfo");
std::vector<int> *process = 0;
tree->SetBranchAddress("CreatorProcessID",&process);
TH1I *hp = new TH1I("Process","",23,0,23);
for (int i=0; i<tree->GetEntries(); i++)
{
tree->GetEntry(i);
for (unsigned j = 0; j < process->size(); ++j) hp->Fill(process->at(j));
}
hp->Draw();
}
Diego
7
Ok, now I see the error! The first loop “for” missing. Thanks, it is working now.
Cheers,
Diego
system
Closed
8
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.