Ejemplo n.º 1
0
        vec_E_mean          = np.zeros([vec_len])
        vec_E_med           = np.zeros([vec_len])
        vec_E_std           = np.zeros([vec_len])
        vec_E_mad           = np.zeros([vec_len])
        vec_spectrum        = np.zeros([vec_len,nbins])
        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']
Ejemplo n.º 2
0
                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)
                    print('timestep:\t', t)
                    # value and position of the max of a0
                    x, a = l.getMaxinMovingWindow(tmp)
                    vec_a0_max[t] = a.max()
                    vec_x_a0_max[t] = x[a.argmax()]
                    # 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=True)
                    # beam parameter filter around energy peak
                    if (vec_E_peak[t] == 0) or (vec_E_fwhm[t] == 0):
                        param_list = l.getBeamParam(tmp,
                                                    ts[t],
                                                    E_min=Emin,
                                                    E_max=Emax,
                                                    print_flag=True)
                        vec_E_std[t] = param_list[3]
                        vec_E_peak[t] = np.nan
                        vec_E_fwhm[t] = np.nan
                        vec_E_std[t] = param_list[3]
                        vec_dQdE_max[t] = spectrum.max()
                        vec_emittance_y[t] = param_list[5]

    else :
        injection_flag[f] = True
        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']
        vec_E_mad = np.zeros([vec_len])
        vec_spectrum = np.zeros([vec_len, nbins])
        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 tqdm(range(len(tsi)), leave=False):
            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_list = l.getBeamParam(tmp,
                                                tsi[t],
                                                E_min=Emin,
                                                E_max=Emax,
                                                print_flag=False)
                    #print('DEBUG :\n',param_list)
                    vec_E_mean[t] = param_list['energy_wmean']
                    vec_E_med[t] = param_list['energy_wmedian']
                    vec_E_std[t] = param_list['energy_rms']