I have recently needed to define a RooMultiCategory from a RooMappedCategory and a RooThresholdCategory. All three of these inherit from RooAbsCategory. This is in contrast to RooSuperCategory, which inherits from RooAbsCategoryLValue.
Sadly, the iterator for RooMultiCategory and RooSuperCategory is the same class: RooMultiCatIter. However, this class expects to iterate over a sequence of RooAbsCategoryLValues, not RooAbsCategories. This means that once I create a RooMultiCategory, I cannot iterate over it using the intended iterator class.
Is this a mistake in the design, or is there a way around this? My current solution is to create a new class that expected RooAbsCategories and build that into RooFitCore.