MC propagation

Each simulation stage should only contain information from the previous one to avoid using MC information in a simulation stage where it will not be available later on with real data from the experiment. Nevertheless in many cases the MC information is important and a way to get access to the MC information from each simulation stage is needed.

The basis of the introduced MC propagation mechanism in FairRoot is that each stored data object contains the information which data was used to create it. For example each MC point knows from which MC track it was coming from or each reconstructed track knows which hit was used to create the track. Technically the information is stored in an array of FairLink objects. A FairLink is a pair of a branch ID, indicating from which data-branch the data is coming from, and an index, which indicates the position in the TCLonesArray of the data-branch. A FairLink uniquely identifies a data-object and allows the retrieving of the data-object from the root-file where it is stored in.

Following the FairLinks allows to get access from each simulation stage back to each previous stage to extract (not only) the MC information.
More information on how to use the FairLink data can be found here