Preheat oven to 350°F.
Prepare pasta according to package directions until just tender. Drain in colander or strainer and rinse well under cold water. Drain again. Set aside in a large bowl.
Add half-and-half to a heavy saucepan. Place over medium high heat and bring to a boil. Reduce heat and keep warm.
Add butter to another heavy saucepan. Place over medium heat and melt.
Add flour. Whisk over low heat for 5 minutes. Do not brown. Remove from the heat.
Add warm half-and-half to the flour mixture. Whisk well.
Add paprika.
Taste. Add salt and pepper, to taste.
Return pan to a low heat.
Add half of all of the cheeses. Stir until melted and well combined. Cook over medium heat, whisking constantly, until the mixture thickens, about 5 minutes.
Add sauce to the pasta. Toss well to coat completely.
Coat a large baking dish/casserole with olive oil.
Fill dish with 1/2 of the sauced pasta.
Sprinkle remaining cheese evenly over the pasta.
Pour remaining sauced pasta over top.
Place dish on a baking sheet. Place in preheated oven and bake until hot, lightly browned and bubbly, about 20 to 25 minutes.
Serve hot.