private void spontaneousEmission() {
		if (spontaneousEmission == null)
			spontaneousEmission = new SpontaneousEmission(this);
		for (int i = 0; i < numberOfAtoms; i++) {
			if (!atom[i].isExcitable())
				continue;
			Photon p = spontaneousEmission.emit(atom[i]);
			if (p != null) {
				p.setModel(this);
				p.setAngle((float) ((-1 + 2 * Math.random()) * Math.PI));
				double x = atom[i].sigma * 0.51 * Math.cos(p.getAngle());
				double y = atom[i].sigma * 0.51 * Math.sin(p.getAngle());
				p.setX(p.getX() + (float) x);
				p.setY(p.getY() + (float) y);
				addPhoton(p);
				// notifyModelListeners(new ModelEvent(this, "Photon emitted", null, p));
				// postone to be handled by RectangularBoundary when the photon exits
			}
		}
	}