Exemple #1
0
        vec_q               = np.zeros([vec_len])
        vec_size_x          = np.zeros([vec_len])
        vec_emittance_y     = np.zeros([vec_len])
        vec_emittance_z     = np.zeros([vec_len])
        vec_divergence_rms  = np.zeros([vec_len])

        for t in range(len(tsi)):
            print('file:\t',f,' \t timestep:\t',t)
            
            # energy distribution characteristics 
            energy_axis[f], vec_spectrum[t], vec_E_peak[t], vec_dQdE_max[t], vec_E_fwhm[t]  = l.getSpectrum(tmp,tsi[t], E_min=Emin, E_max = Emax, print_flag=False)

            # beam parameter filter around energy peak 
            if (vec_E_peak[t] == 0) or (vec_E_fwhm[t] == 0) :
                try:
                    param_dict = l.getBeamParam(tmp,tsi[t], E_min=Emin, E_max = Emax,print_flag=False)
                    
                    vec_E_mean[t]           = param_dict['energy_wmean']
                    vec_E_med[t]            = param_dict['energy_wmedian']
                    vec_E_std[t]            = param_dict['energy_rms']
                    vec_E_mad[t]            = param_dict['energy_wmad']
                    vec_E_peak[t]           = np.nan
                    vec_E_fwhm[t]           = np.nan
                    vec_dQdE_max[t]         = vec_spectrum.max()
                    vec_emittance_y[t]      = param_dict['emittance_y']
                    vec_emittance_z[t]      = param_dict['emittance_z']
                    vec_size_x[t]           =  param_dict['size_x_rms']
                    vec_divergence_rms[t]   = param_dict['divergence_rms']
                    vec_q[t]                = param_dict['charge']
                except TypeError :
                    vec_E_mean[t] = np.nan
        print(" ###################################################\n",
        '#\t  injection occured at:\t',ti[f],' \n',
        "###################################################")

        #  only the given the timestep value 
        # laser self-focusing
        x,a = l.getMaxinMovingWindow(tmp)
        a0_max[f] = a.max()
        x_a0_max[f] = x[a.argmax()]

        # energy distribution 
        energy_axis[f], spectrum[f], E_peak[f], dQdE_max[f], E_fwhm[f]  = l.getSpectrum(tmp,ts[timeStep], E_min=Emin, E_max = Emax, print_flag=False)

        # beam parameter filter around 
        if (E_peak[f] == 0) or (E_fwhm[f] == 0) :
            param_list = l.getBeamParam(tmp,ts[-1], E_min=Emin, E_max = Emax,print_flag=False)
            E_mean[f] = param_list['energy_wmean']
            E_med[f] = param_list['energy_wmedian']
            E_wstd[f] = param_list['energy_wrms']
            E_std[f] = param_list["energy_rms"]
            E_mad[f] = param_list['energy_wmad']
            E_peak[f] = np.nan
            E_fwhm[f] = np.nan
            dQdE_max[f] = spectrum.max()
            emittance_y[f] = param_list['emittancey']
            emittance_z[f] = param_list['emittancez']
            divergence_rms[f] = param_list['divergence_rms']
            q_end[f] = param_list['charge']

        else :