Gsim controls the run and event level actions. At the moment it passes the event level actions (via EndOfEventAction to the mainblock. A simple addition can also allow Gsim to pass BeginOfRunAction's to processors as well, this is really efficient for some processors that need to initialize variables based on the Run* conditions where doing so at every event is really slow, but doing so when initialized is impossible.
By the way, Gsim was always intended to run this way, and in SNO+ this is how EVERY processor works.
Gsim controls the run and event level actions. At the moment it passes the event level actions (via EndOfEventAction to the mainblock. A simple addition can also allow Gsim to pass BeginOfRunAction's to processors as well, this is really efficient for some processors that need to initialize variables based on the Run* conditions where doing so at every event is really slow, but doing so when initialized is impossible.
By the way, Gsim was always intended to run this way, and in SNO+ this is how EVERY processor works.