I a piece of software which worked fine under 5.34.00. After upgrading to a newer root version, at least for 5.34.03/5.34.04/5.34.05 it stops working.The reason seems to be, that objects initiated in Selector::SlaveBegin() are destroyed before the Terminate method is called. For instance I create an object like this:
fInfoRDMC = new TH1I( “InfoRDMC”, “InfoRDMC”, 2, -0.5, 1.5 );
fOutput->Add( fInfoRDMC );
Within the terminate method fInfoRDMC is set to the NULL pointer, while the entry in fOutput survives till the end.
Sorry for the very late reply. I thought I replied, but in fact I did not.
My guess is that the object is not destroyed but just not mapped to the pointer member of the local (client) selector object.
The Terminate method is executed on the client on the TSelector object instantiated on the client. Assuming that your fInfoRDMC pointer member is set to NULL in the constructor, it will stay as such unless the related object created during processing, merging the result of the workers, and delivered via the output list, is mapped / assigned to it.
PROOF has an automatic mapping technique. For some reason it does not seem to work in your case.
Can you switch on some debugging and inspect the logs for any messages related to your object?
before the run.
Post the logs that you get, if unsure.