Emulated Class

I have got an error message on something that previously ran fine (like 6+ months ago). I am just hoping that someone can explain to me what is going on, probably the solution is to go and build our software on a previous version of ROOT.

One of the classes in my experiment library is
THaNeutronApp. In any case, when replay is being done and the root files are being generated it drops itself into the tree via
tree->GetUserInfo()->Add(this). This was good, and I have been
accessing it through the TList returned by:

(1) T->GetTree()->GetUserInfo()

where T is the chain of root files. Now this does not work, my error
message (which I don’t understand) is:

(2) Error in TBufferFile::ReadObject: trying to read an emulated
class (THaNeutronApp) to store in a compiled pointer (TObject)

I am pretty sure that (1) returns a pointer to a TList of TObjects. I
guess there has been a change of root so that it no longer allows
emulated class to be stored in this TList but am not sure because I am
not entirely sure what an emulated class is.

JM

Hi,

To solve this problem simply load a dictionary (and library) for the class THaNeutronApp. (If you do not have one you may be able to generate a simple version by using TFile::MakeProject).

Cheers,
Philippe.

Doh, there was another script that I would run first and it would work. The other script would load the library among other things.

Thanks for your time.

The error message isn’t very illuminating.

JM