Using TTreePerfStats


I would like to use the class TTreePerfStats for the jobs that run in the proof slaves.
I saw there was an similar thread opened by Ana, but I couldnt arrive to a conclusion

What Im trying to do is to create a TTreePerfStats object in the Init function

   if (!tree) return;
   fChain = tree;

   m_ps = new TTreePerfStats("ioperf",fChain );

and in the SlaveTerminate I save it to a file locally, I didnt even try to added to fOutput. And when I do that

    m_ps->SaveAs( "/home/proof/DiskPerf.root" );

I get a segmentation fault:

TCanvas::MakeDefCanvas: created default TCanvas with name c1
14:55:09 10143 Wrk-0.0 | *** Break *: segmentation violation
Generating stack trace…
0x00002aaab0ada9ad in TTreePerfStats::SaveAs(char const
, char const
) const + 0x1d from /software/at3/root/root-5.26b_slc5_gcc4.1.2_x86-64_PROOF/lib/
0x00002aaab0e42f8c in ProofSelector::SlaveTerminate() + 0x1dc from /home/proof/cosuna/session-italler001-1277902482-7347/worker-0.0-italler005-1277902483-10143/./

while running the same job in a local machine, out of proof, it works and I can see the file generated by the class TTreePerfStats.

Should the TTreePerfStats works within proof jobs? anyway to make it working?

thanks, carlos

Hi all,

I could not manage to get it working, but I am still interested in this issue too.
Has anyone succeeded?

Ana Rodríguez.


What is the value of m_ps after Init and inside the SlaveTerminate? What is the value of fChain when creating the TTreePerfStats object?


Sorry to enter this discussion late.
As far as I know TTreePerfStats is only supposed to work with a single file (and some quantities are probably only correct for local files). If you run on a TChain you get the same error.
On the other hand, if the number of entries is sufficiently large there not much more that you can learn about the tree structure from running on more files.