The sequence in which the eimsim tasks are called, and the command relations between them, can be diagrammed as follows:
Other tasks from SAS packages other than eimsim are also called, as well as some ftools; but these `foreign' calls have not been listed here.
As described in the cookbook (subsection 4.1 above), the minimum procedure still requires the user to run three separate tasks, eimsimprep, eimsimbatch and eimsimreduce. Why three - why can't all these functions be bundled into a single script? The answer is that the functionality has been divided between these three tasks to make it easier to run the simulations times in order to generate an ensemble of statistically independent results. Some jobs need only to be done once: these are sequestered into eimsimprep or eimsimreduce as appropriate. Those jobs which need to be performed anew for each simulation run are performed by eimsimbatch. However, a glance at the eimsimbatch documentation will show that this task contains little more than a loop: at each iteration of the loop, eimsim is called. Thus eimsim performs the bulk of the simulation work, from generating a list of random sources to assaying the output of the detection procedure.