#ifndef PULSE_H
#define PULSE_H
#include<complex>
#include"Cvec.h"
typedef std::complex<double> Creal;

class Pulse {

private:
	double lambda;		// Wavelength
	double omega;		// Angular Frequency
	double E0;			// field strength
	double t0;			// time of maximum
	double FWHM;		// Full width at half maximum
	double tau;			// width
	double phi;			// phase
	double Up;			// ponderomotive energy

// ------- FUNCTIONS -------
public: 
	Pulse();
	
	// Init Pulse [a.u] with given parameters [SI]
	Pulse(double lambda_SI, double I0_SI, double t0_SI, double phi_SI, double FWHM_SI);
	~Pulse();
	
	double get_Up();
	// Calculate field for given pulse [a.u]
	double getField(double t_au);
	Cvec getField_vp(Cvec t_au);

};

#endif

