Particle swapping in multireference projects
A multireference project, by itself, just means that the project handles different reference channels, each with different templates. In the most general case, the different channels can even see different particles, and the channels don't interact with each other.
"Swapping" means that the multireferencing approach is being used for classification. In this setting, each template should be allowed to interact with all the particles. The score of each particle is computed, and each particle is assigned (at the end of each iteration) to a different template. The end result of the iteration (the averages) is computed so that only particles assigned to the same template are averaged together.
As the quality of the averages increases, the particles will be assigned to different channels.... they'll "swap", until a point where particle membership estabilizes from iteration to iteration. In this point, the particles are classified and can be averaged independently.