Avoiding re-use of trained events during TMVA application

It is my understanding that when applying a TMVA method (using TMVA::Reader) in your larger analysis (limit setting, etc), you don’t want to re-use your training events. However, I see no easy way to determine which events were used for training. I realize you could use the TestTree, but having all backgrounds and signal in one tree is a rather inflexible situation.

I’ve written a python script to compare TrainTree to my original input Trees, and adding branches to them lableing the training events. This seems rather ad-hoc, however. Am I missing some feature of TMVA that would handle this for me?

Or is this not nessecary? Is it expected that I can use both the training and testing data in the larger analysis? I assume in this case, you’d have to be very careful about overtraining.

Thank you.