Understanding And Simulating Sipms