def __init__(self, wavelength, focus_diameter, pulse_energy, profile_model=None, pulse_energy_variation=None, pulse_energy_spread=None, pulse_energy_variation_n=None, polarization="ignore"): self.photon = Photon(wavelength=wavelength) self.pulse_energy_mean = pulse_energy self.set_pulse_energy_variation(pulse_energy_variation, pulse_energy_spread, pulse_energy_variation_n) self.profile = Profile(model=profile_model, focus_diameter=focus_diameter) if polarization not in [ "vertical", "horizontal", "unpolarized", "ignore" ]: log_and_raise_error( logger, "polarization = \"%s\" is an invalid input for initialization of Source instance." ) return self.polarization = polarization log_debug(logger, "Source configured")