An amazingly nice mountain bike loop in the Marin Headlands, just across the Golden Gate from San Francisco, is the Miwok trail - Marincello trail climb combination. The two are connected by the Old Springs trail descent with its fun series of modest steps. The return from the Marincello summit is the Bobcat Trail descent.
The grades omit the transitions at the bottom and top. Still, they don't do full justice to the difference. Miwok is an undulating grade, with a series of steeper portions, while Marincello is more of a steady grind with a brief recovery followed by a final short, steep bit at the end. Marincello is a smoother surface: there's some ruts on Miwok. But both trails are easily rideable on a road bike. The Old Springs descent is a bit rough going on a road bike but it's still not a problem.
This is an awesome loop and easily extendable with Coastal Trail from/to Conzelman for Golden Gate Bridge access, or to the north via the more technical portion of Miwok and the steeper trails surrounding.