Okay.
I will try this. I thought fReader.GetTree() always returns the current tree pointer.
I have little doubt regarding flow of calls to TSelector functions.
According to last post in https://root-forum.cern.ch/t/load-ttree-from-file-and-store-in-different-file/13130/11 GetTree() should return valid pointer only after
tree/ at least one entry of tree has been loaded. Now first call to fReader.SetLocalEntry(entry) after opening a new file in a TChain would only occur in Process(). So question is whether, tree/chain is already loaded before Notify() gets called ?