Dear ROOTers,
I am trying to plot a graph given a TBranch *. So I derive
a class from TGraph which I call zGraph, that accepts a
TBranch * in the ctor of zGraph. I can then plot the
zGraph using a TMultiGraph. The problem is that I cannot
touch the zGraph anymore because it belongs to TMultiGraph
and I want to be able to use the same zGraph for futher
analysis and to keep the attributes.
So I thought of using something like
return new TGraph(*this); or
return new zGraph(*this)
in a method TGraph *zGraph::getGraph() or zGraph
*zGraph::getGraph(). If I try to plot a few copies of the
same graph (returned by zGraph::getGraph()), I obtain only
one graph. I wonder: is the copy constructor of TGraph
doing something strange or am I missing something about
the way the graphs are plotted?
Regards
michele
zGraph::getGraph() calls doGraph() and returns
if (doGraph())
return new TGraph(*this);
Int_t zGraph::doGraph()
{
delete [] fX;
delete [] fY;
fNpoints = 0;
if (!d_branch)
{
cerr << "branch = 0 in " << this->GetName() <<
endl;
return -1;
}
zData *data = new zData();
d_branch->SetAddress(&data);
fNpoints = (Int_t) d_branch->GetEntries();
if (fNpoints <= 0)
{
cerr << "fNpoints <= 0 in " << d_branch->GetName()
<< endl;
return -1;
}
fFunctions = new TList;
fX = new Double_t[fNpoints];
fY = new Double_t[fNpoints];
Int_t idx = 0;
while (d_branch->GetEntry(idx) > 0)
{
fX[idx] = data->getX();
fY[idx] = data->getY();
idx++;
}
delete data;
return 0;
}
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:05 MET