A Mover is a type of object in Rosetta that interacts with a Pose. Frequently, a Mover changes the Pose. It does not need to; the reference to a Pose that a Mover takes can be entirely ignored or merely analyzed. The reason that a Mover is frequently used for operations that do not even change the Pose is because Rosetta is built so strongly around Movers! There are many operations that take Movers, and specifically the JobDistributor functions by applying a Mover.
The sampling in question is generally organized in the apply() function, where other movers, protocols, and pose-altering functionality may be called:
virtual void apply(core::pose::Pose & pose);
The Mover is the second most important class in Rosetta, next to the Pose. The Pose contains a structure, and Movers are the best way to remodel that structure. Most Movers fit into one of six categories (these are descriptive but not reflected in the code):
Every Protocol is a Mover and is made of Movers: it's Movers all the way down.
In order to be functional in RosettaScripts, a Mover must implement a parse_my_tag function that interprets the XML tag, a fresh_instance function, and a clone function.