Problem reading a TopTree

I am trying to just gain access to some of the leaves of a root tree. Just for quick and dirty looks I just always create a TChain and then add the root file and load an entry. This always worked before but now it is not working. The following the output from root when I do this…

  *******************************************
  *                                         *
  *        W E L C O M E  to  R O O T       *
  *                                         *
  *   Version   4.04/02   7 November 2005   *
  *                                         *
  *  You are welcome to visit our Web site  *
  *          http://root.cern.ch            *
  *                                         *
  *******************************************

FreeType Engine v2.1.3 used to render TrueType fonts.
Compiled for linux with thread support.

CINT/ROOT C/C++ Interpreter version 5.15.169, Mar 14 2005
Type ? for help. Commands must be C++ statements.
Enclose multiple statements between { }.
root [0] TChain testchain("TopTree");
root [1] testchain.Add("o
output_00.root
one.jpg
root [1] testchain.Add("output_00.root");
root [2] testchain.GetEntries()
Warning in <TClass::TClass>: no dictionary for class TheEventClass is available
Warning in <TClass::TClass>: no dictionary for class TheExecutableVersionClass is available
Warning in <TClass::TClass>: no dictionary for class TheL3NameClass is available
Warning in <TClass::TClass>: no dictionary for class TheL2NameClass is available
Warning in <TClass::TClass>: no dictionary for class TheL1NameClass is available
Warning in <TClass::TClass>: no dictionary for class TheIntClass is available
Warning in <TClass::TClass>: no dictionary for class TheObjectClass is available
Warning in <TClass::TClass>: no dictionary for class TheMuonClass is available
Warning in <TClass::TClass>: no dictionary for class TheElectronClass is available
Warning in <TClass::TClass>: no dictionary for class TheSoftElectronClass is available
Warning in <TClass::TClass>: no dictionary for class TheJetClass is available
Warning in <TClass::TClass>: no dictionary for class TheVertexClass is available
Warning in <TClass::TClass>: no dictionary for class TheCellClass is available
Warning in <TClass::TClass>: no dictionary for class TheTrackClass is available
Warning in <TClass::TClass>: no dictionary for class TheTrackClusterClass is available
Warning in <TClass::TClass>: no dictionary for class TheMCParticleClass is available
Warning in <TClass::TClass>: no dictionary for class TheMCVertexClass is available
Warning in <TClass::TClass>: no dictionary for class TheTrackJetClass is available
Warning in <TClass::TClass>: no dictionary for class TheSecondaryVertexClass is available
Warning in <TClass::TClass>: no dictionary for class TheSVPROBClass is available
Warning in <TClass::TClass>: no dictionary for class ThePreShowerClass is available
Warning in <TClass::TClass>: no dictionary for class TheTauClass is available
Warning in <TClass::TClass>: no dictionary for class TheTrackCalJetClass is available
Warning in <TClass::TClass>: no dictionary for class TheMissingEtClass is available
Warning in <TClass::TClass>: no dictionary for class ThePropertyClass is available
Warning in <TClass::TClass>: no dictionary for class TheTopFitClass is available
Warning in <TClass::TClass>: no dictionary for class TheTriggerClass is available
Warning in <TClass::TClass>: no dictionary for class TheL1CalClass is available
Warning in <TClass::TClass>: no dictionary for class TheL2JetClass is available
Warning in <TClass::TClass>: no dictionary for class TheL2GlblJetClass is available
Warning in <TClass::TClass>: no dictionary for class TheL2EMClass is available
Warning in <TClass::TClass>: no dictionary for class TheL2GlblEMClass is available
Warning in <TClass::TClass>: no dictionary for class TheL2MuonClass is available
Warning in <TClass::TClass>: no dictionary for class TheL2GlblMuonClass is available
Warning in <TClass::TClass>: no dictionary for class TheL2TrackClass is available
Warning in <TClass::TClass>: no dictionary for class TheL3JetClass is available
Warning in <TClass::TClass>: no dictionary for class TheL3ToolClass is available
Warning in <TClass::TClass>: no dictionary for class TheL3EMClass is available
Warning in <TClass::TClass>: no dictionary for class TheL3MuonClass is available
Warning in <TClass::TClass>: no dictionary for class TheL3MEtClass is available
Warning in <TClass::TClass>: no dictionary for class TheL3TrackClass is available
Warning in <TClass::TClass>: no dictionary for class TheEJetsClass is available
Warning in <TClass::TClass>: no dictionary for class TheMuJetsClass is available
Warning in <TClass::TClass>: no dictionary for class TheEMUClass is available
Warning in <TClass::TClass>: no dictionary for class TheDiMuonClass is available
Warning in <TClass::TClass>: no dictionary for class TheDiEMClass is available
Warning in <TClass::TClass>: no dictionary for class TheAllJetsClass is available
(const Long64_t)500
root [3] testchain.GetEntry(0);

 *** Break *** segmentation violation

Now, I have tried this on my local machine and the root that is setup for p18.03.00 version of the D0RunII environment. Now I know that I have not setup any variables to accept the branch addresses but I did not have to do that before. I could always just find the leaf and grab the value that I wanted. The file, if you have access to a clued0 node at Fermilab is at the following location:

/rooms/cafe/MONTECARLO/singletop/Ipanema_updated/enbb_p14.05.01/enbb_1.list_dir/output_00.root

I know that it is listed under a cafe directory but it looks to be in the TopTree format. Any help on this would be great. Thanks in advance.

Justace

So, I was talking to a friend of mine about this problem and he suggested to use an older version of root. So we setup D0RunII p14.07.00 which points to root version 3.05, and it worked fine. Can anybody shed some light as to why this tree only works with an older version of root and what I might do to fix the problem. Thanks in advance.

Justace

Hi,

The emulation of a couple of class is failing (our bug). To work around the problem, either load the library defintion TheJetClass and TheExecutableVersionClass, either disable those branches with:

TopTree->SetBranchStatus("ExecutableVersionArray*",kFALSE); TopTree->SetBranchStatus("JetArray*",kFALSE);More specifically, TheExecutableVersionClass for example contains:

StreamerInfo for class: TheExecutableVersionClass, version=1 TObject BASE offset= 0 type=66 Basic ROOT object Int_t executable[5] offset= 12 type=23 Int_t version[5] offset= 16 type=23 i= 0, TObject type= 66, offset= 0, len=1, method=0 i= 1, executable type= 23, offset= 12, len=5, method=0 i= 2, version type= 23, offset= 16, len=5, method=0 and as you can see the offset calculation for executable[5] and version[5] are wrong.
This is in part due to the fact that the file has been written by an old version of ROOT (3.05/00) where the TStreamerInfo information in this case was incorrectly saved.

Cheers,
Philippe.

Hi,

This problem is now solved in the CVS repository. This bug is likely to be affecting the reading in emulated mode (without the shared library) of some files created by ROOT 3. The fix could straighforwardly be backported to older production releases if needed.

Cheers,
Philippe

Thanks for the help and looking into this.