McCaffery signs seven-year contract as head basketball coach