Branching strategies for mixed-integer programs containing logical constraints and decomposable structure