I am having problems in reading files output from Delphes in root 5, something that does not happen in my laptop with ubuntu 18.04. when I try to open a file i get the following output:
root [0]
Attaching file tag_1_events_delphes_card_ATLAS.root as _file0…
Warning in TClass::TClass: no dictionary for class LHEFEvent is available
Warning in TClass::TClass: no dictionary for class Event is available
Warning in TClass::TClass: no dictionary for class GenParticle is available
Warning in TClass::TClass: no dictionary for class SortableObject is available
Warning in TClass::TClass: no dictionary for class Track is available
Warning in TClass::TClass: no dictionary for class Tower is available
Warning in TClass::TClass: no dictionary for class Jet is available
Warning in TClass::TClass: no dictionary for class MissingET is available
Warning in TClass::TClass: no dictionary for class Electron is available
Warning in TClass::TClass: no dictionary for class Photon is available
Warning in TClass::TClass: no dictionary for class Muon is available
Warning in TClass::TClass: no dictionary for class ScalarHT is available
root [1]
It is supposed that I have a fresh installation of root5 in a cluster CentOS Linux 7, and I can read Classes in other files except those coming from Delphes. The installation of root was quite typical from a source file:
./configure
make
That at the end said everything was installed successfully. I even installed Delphes with the same Root and still get this error.
ROOT Version: 5.34/38 12 March 2018 Platform: Cluster CentOS Linux 7 Compiler: gcc 4.8.5
I’m sorry but what do you mean by the corresponding library?
I am getting this after running the .C file and calling the file inside the interface:
Warning in <TStreamerInfo::BuildCheck>:
The StreamerInfo of class Track read from file /lstore/titan/atlas/emogollon/MG5_aMC_v3_1_1/bin/mediator_production_14tev_no_decay/dm_simp_mass0gev_spin_1_minus_dileptonic/Events/run_01_decayed_1/tag_1_events_delphes_card_ATLAS.root
has the same version (=3) as the active class but a different checksum.
You should update the version to ClassDef(Track,4).
Do not try to write objects with the current class definition,
the files will not be readable.
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float C; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float Mass; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float EtaOuter; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float PhiOuter; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float T; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float X; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float Y; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float Z; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float TOuter; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float XOuter; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float YOuter; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float ZOuter; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float Xd; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float Yd; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float Zd; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float L; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float D0; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float DZ; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float Nclusters; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float dNdx; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float ErrorP; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float ErrorPT; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float ErrorPhi; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float ErrorCtgTheta; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float ErrorT; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float ErrorD0; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float ErrorDZ; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float ErrorC; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float ErrorD0Phi; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float ErrorD0C; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float ErrorD0DZ; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float ErrorD0CtgTheta; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float ErrorPhiC; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float ErrorPhiDZ; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float ErrorPhiCtgTheta; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float ErrorCDZ; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float ErrorCCtgTheta; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
float ErrorDZCtgTheta; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
TRef Particle; //
Warning in <TStreamerInfo::CompareContent>: The following data member of
the in-memory layout version 3 of class 'Track' is missing from
the on-file layout version 3:
int VertexIndex; //
I am not sure what you mean by talking with class Track maintainers.
In any terms, It is not clear to me how the same version of root in my laptop can load properly this file but using this installation it is not possible.
It seems something is wrong with TStreamerInfo::BuildCheck but I have no idea how to fix it.
Any guesses?
I have the same version in both installations, that’s why I don’t understand why this is happening, the only thing very different is that the broken code is working in a cluster. I also do not understand why a different computer can access these files without any warnings.
Well, I checked both classes in Delphes where the Track is defined and they both agree. DelphesClasses.h
I even updated the class to 4 as the warning suggests but after that, I cannot read the events (which makes sense but I don’t understand why root give me the wrong advice to access the data in the class).
On the other hand, I don’t have the macro rootlogon.C in any of both installations, how I can get the list of the automatically executed files in root?
There is another detail I forgot to mention: we have created a Virtual machine with the same details of installation (centos7, root 5.34/38, delphes 3.4.1) as in the cluster, which is where I am trying to read this information, and I get the same errors despite the virtual machine has everything new.
Is there any known bug in root 5 with centos installations that don’t allow to access Delphes classes inside the root tuples?
The list of files automatically executed by ROOT is in the link in my previous post.
Try to run (note: you will get all “no dictionary” warnings, of course): root -b -n your_file.root
Then execute: gFile->MakeProject("AllClasses", "*", "recreate++")
and inspect the generated source code for classes (see their data members).
Try to attach your root file for inspection.
Try to talk to the people who maintain the software on your cluster (they should be able to tell you how to build and setup the required software).
Well, it seems you need to talk to the Delphes maintainers.
It looks like the “pure” ROOT properly sees the classes (why it has “ClassDef(Track,4);” instead of “3”?), but as soon as you load the Delphes library, it breaks: