Separate rooted from nonrooted collectives in the core of the simulator. Currently the events are separate classes, but they are treated the same. This may not be accurate.