so preface this with these are opinions, different developers will do it different ways.
my suggestion would be to have separate controllers. you take a few minutes in the beginning to set them up, and then you never have to worry about it again. a variation on this would be that the super admin has access to a controller with the shared tools - and they alone have access to a controller with the 'super admin only' tools.
keep your controllers 'thin' - put the real work in the models, so then both controllers can call the common functions and you are not repeating code. however you are going to do your logged in validation - put that code in a model - and call it from the constructor of your controller or your my controller. instead of just confirming this is someone or a super admin that is logged in - return an object (or array) that you can then use for all your methods. for example if you return $this->superadmin in your constructor, then $this->superadmin will be available for all your controller methods, models and views. another bonus is then you don't have to mess with session code at all except for the initial check in. finally make a template so you aren't having to call headers and footers in your controllers.