The task is based on three classes: CcfConstituent, CalIndex, and CalIndexSet.
CcfConstituent is an abstract representation of a CCF constituent. Besides giving access to the attributes of a constituent, it defines operator<() for the class so that the sorting algorithm for CCF constituents is realized through the STL sort function on a list. A CCF constituent can be ``real'', with a corresponding dataset on disk, or ``virtual'', that is just an entry in a calibration index file. The correct type is instantiated by CcfConstituentFactory.
CalIndex represent a calibration index. The class knows that it can contain only one instance of a given CCF constituent. It also knows how to write itself to a dataset through an instance of CalIndexSet.
CalIndexSet is a calibration index dataset. It knows about the format of the dataset, and it is used to extract CcfConstituents from an existing dataset.