Race Config with Rounds and Heats

The structure of Events, Races and Start Groups are meant to cater for the most complex configurations, typically for track events. This document explains how these constructs are used to cater for all types of events.

The most simple configuration

Most events have very simple configurations, but requires all the relevant entities to be populated to adhere to the design.

A simple configuration consist of an Event with a Race per EventCategory, with each Race having a single dedicated StartGroup. This is typical for a road race.

Each EventParticipant is allocated to one EventCategory based on the entry process. For each EventCategory a corresponding Race is created, and each EventParticipant is matched with one RaceParticipant. The latter is automatically added or updated based on changes in the EventParticipant’s EventCategory. A single StartGroup is created for each Race, with StartGroupParticipants being inferred, thus not being persisted, for simplicity.

In more advanced configurations one or more Race can be combined into a single StartGroup.

StartGroups represent Races that share a common configuration, which simplify the administrative tasks as changes to them, such as a start time, can be applied at StartGroup level and ripple down to each Race.

Match Sprint

The Match Sprint consist of a qualifier, followed by a number of rounds and heats. The exact number of rounds and heats are configured using one or more RaceTypeConfiguration.

A StartGroup is created for each Heat, where the StartGroup is linked to the appropriate Race and Round. The participants in each Heat is declared by linking StartGroupParticipants to the linked StartGroup, RoundParticipant and RaceParticipant. All RaceParticipants are initially added to the first Round and StartGroup, and the outcome of this first Round will determine which participants are copied as RoundParticipants to the next Round. The selection of RaceParticipants for each Heat is managed by assigning them to the relevant StartGroup.

StartGroup is equivalent to a Heat.

Results

Intermediate results (times, position) can be produced from the results in each start group.

The ultimate outcome of the race is determined by the results of the underlying rounds and heats.

Individual Time Trial (ITT)

All EventParticipants for an ITT will be grouped into one or more Races based on how the awards structure as RaceParticipants.

In a simple ITT, with no qualifiers, each pair of riders (for track) or each rider (for road) will be grouped into a StartGroup per start time. The StartGroup will define the (common) start time of the participants. StartGroupParticipants will be created to manage the mapping of RaceParticipant to StartGroup.

The times of all StartGroupParticipants in the race are combined to achieve the final awards.

Team Time Trial