If the case has not yet left the simulation, then the member tt(Loop::screen)
simulates a screening at a given screening age.

At this point the modalities are considered. Each of the
modalities configured for the current screening age is considered in
turn. They are considered in their order of specification in the configuration
file. E.g., when specifying
    verb(
    screeningRound:     50  Mammo MRI
    screeningRound:     52  MRI Mammo
    )
    then Mammo is considered before MRI at screening age 50, and MRI is
considered before Mammo at screening age 52.

Modalities are made available by the tt(Modalities) member (tt(d_modalities),
cf. section ref(MODALITIES)). The tt(use) member of this member returns the
information of all modalities that have been configured for the current
screening round.

Whether a configured modality is actually going to be used at a particular
screening round is determined by chance. In the configuration file the
parameter tt(attendanceRate) defines the probability that a case attends a
screening round. If the next random value drawn from the uniform random
distribution exceeds the configured attendance rate then the screening round
for that modality is skipped for the current case.

If a case attends a screening round then the screening round's costs are
determined (cf. section ref(COSTS)) and are added to the costs so far
(cf. tt(Loop::addCost)): the costs are added to the case's accumulated cost
and to the accumulated costs of the current screening round.

In addition, if a tumor exists at a screening round then the tumor's
characteristics are determined for the current screening age.

Two factors determine whether a tumor may be detected or whether its detection
may be a false positive. One factor (factor-1) is the (apparent) presence of a
tumor, the other factor (factor-2) is whether the screening round's age is at
least equal to the age that the tumor can be detected.

If both factors are true, then the tumor may be detected. Otherwise there may
be a false positive tumor detection.

em(Maybe detecting the tumor (maybe a false negative conclusion):)

The member tt(maybeDetect) (cf. tt(Loop::maybeDetect)) is used to decide
whether a tumor may be found during the screening. A false negative screening
result is obtained if a random value exceeds the current modality's
sensitivity. The sensitivities of the various modalities are returned by the
tt(ModBase::sensitivity) member (which in turn call their derived class's
members tt(vSensitivity) returning the return values of the actually used
modality's overridden tt(vSensitivity) members.

If a false negative result isn't obtained then a tumor was detected: its
treatment costs are added to the accumulated costs and the dying age because
of the tumor is set to the age of the current screening round.

If the natural dying age is earlier than the dying age caused by the
cancer, then the case leaves the simulation (using status tt(LEFT_DURING)).
Otherwise the case leaves the simulation using status tt(TUMOR_DURING).

em(Maybe incorrectly detecting the tumor (maybe a false positive conclusion):)

Once a tumor has apparently been observed it may in fact not exist, in which
case a false positive observation was made. The memebr tt(maybeFalsePositive)
handles this situation.

The specificity of the used modality, given the current screening age is
compared to a random value from the uniform random distribution. If the
generated random value exceeds the modality's specificity then the simulation
has encountered a false positive tumor detection. The numbers of false
positive decisions for the modality and for the screening round are
incremented and tt(addCoist) is called with argument the biopsy costs at the
current screening age.
