Scenarios, either single or multiple are handled by Analysis.

Analysis objects are constructed by Simulator::run.

The Analysis constructor constructs a Scenario.

    Scenario objects provide access to

        - all parameters, either specified in 'analysis:' sections or read from
          the configuration file,

        - the error function, either as an 'Error &' or as a wrapper around
          Error::operator()

        - the Options object.

In Analysis::run() a Loop object is constructed.

Loop's constructor receives a Scenario object, and then
constructs all required objects, among which the Random and RandomPool
objects.

Loop's constructor sets Screening's d_beir7dose from d_modalities as the
first set of available dose-params. It's not clear why this procedure is used.


-----------------------------------------


The classes Analyses and Analysis are superfluous and are removed. Instead,
the Simulator::run function reads the next Scenario specifications and then
runs the Scenario simulation. See Simulator.run()

Using this setup multithreading can easily be implemented as well.

-----------------------------------------------------------------------------

    Scenarios are specified in the program's file argument, or (with option
    --one-scenario) a scenario is defined by the program's non-option
    arguments.

-> Analyses instead of Scenarios. An Analysis is run by the Simulator.
    the configuration parameters are provided in analysis: labeled sections

    Each Analysis constructs a std. Options object.

    The specifications from the analysis: section are stored in an
    FBB::Config object. This object is called Scenario as it specifies the
    details of the scenario used for this analysis

    Next, Scenario specifications are checked for (long) program option
    specification. If found then the Options object is altered accordingly,
    unless the options were specified at the command-line

    Next the configuraton file is read (ConfFile).

    Each object first obtains its parameters from Scenario. Those that were
    not specified at Scenario are obtained from ConfFile.








Scenarios are created and used along these steps:

    the Options object is constructed

    the scenario specifications are checked for (long) program option
    specifications, updating the non command-line specified options

    all objects required for the analysis are constructed

    the scenario specifications are passed to the objects depending on
    Conffile parameters updating their specifications

    the scenario runs passed to a Loop object, and the Loop's iterate function
    handles the iterations
