def setup(self): super(BC11Section, self).setup() aperature = srwlib.SRWLOptA('c', 'a', self.detector_edge_length, 0, 0, 0) aperature_params = [0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0] lens = srwlib.SRWLOptL(self.focal_length, self.focal_length) lens_params = [0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0] drift = srwlib.SRWLOptD(self.focal_length) drift_params = [0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0] self.__optics = srwlib.SRWLOptC( [aperature, lens, drift], [aperature_params, lens_params, drift_params])
def set_optics(v=None): el = [] el.append(srwlib.SRWLOptA("r", "a", 0.0002, 0.001, 0.0, 0.0)) el.append(srwlib.SRWLOptD(6.9)) ifnMirror1 = "mirror_1d.dat" if ifnMirror1: hProfDataMirror1 = srwlib.srwl_uti_read_data_cols(ifnMirror1, "\t", 0, 1) el.append(srwlib.srwl_opt_setup_surf_height_1d(hProfDataMirror1, _dim="x", _ang=0.0031415926, _amp_coef=1.0, _size_x=0.00094, _size_y=0.001)) el.append(srwlib.SRWLOptD(2.5)) el.append(srwlib.SRWLOptA("r", "a", 0.0002, 0.001, 0.0, 0.0)) el.append(srwlib.SRWLOptD(4.4)) el.append(srwlib.SRWLOptA("r", "a", 5e-05, 0.001, 0.0, 0.0)) el.append(srwlib.SRWLOptD(1.1)) el.append(srwlib.srwl_opt_setup_CRL(2, 4.20756805e-06, 0.00731294, 1, 0.001, 0.0024, 0.0015, 1, 8e-05, 0, 0)) el.append(srwlib.srwl_opt_setup_CRL(2, 4.20756805e-06, 0.00731294, 1, 0.001, 0.0014, 0.0005, 6, 8e-05, 0, 0)) el.append(srwlib.SRWLOptD(9.1)) el.append(srwlib.SRWLOptA("r", "a", 0.0014, 0.0002, 0.0, 0.0)) el.append(srwlib.SRWLOptL(3.24479, 1e+23, 0.0, 0.0)) el.append(srwlib.SRWLOptD(3.5)) el.append(srwlib.SRWLOptA("r", "a", 1e-05, 1e-05, 0.0, 0.0)) el.append(srwlib.SRWLOptD(0.7)) pp = [] pp.append([0, 0, 1.0, 0, 0, 2.5, 5.0, 1.5, 2.5]) pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0]) if ifnMirror1: pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0]) pp.append([0, 0, 1.0, 0, 0, 0.3, 2.0, 0.5, 1.0]) return srwlib.SRWLOptC(el, pp)
def _createABCDbeamline(A, B, C, D): """ #Use decomposition of ABCD matrix into kick-drift-kick Pei-Huang 2017 (https://arxiv.org/abs/1709.06222) #Construct corresponding SRW beamline container object #A,B,C,D are 2x2 matrix components. """ f1 = B / (1 - A) L = B f2 = B / (1 - D) optLens1 = srwlib.SRWLOptL(f1, f1) optDrift = srwlib.SRWLOptD(L) optLens2 = srwlib.SRWLOptL(f2, f2) propagParLens1 = [0, 0, 1., 0, 0, 1, 1, 1, 1, 0, 0, 0] propagParDrift = [0, 0, 1., 0, 0, 1, 1, 1, 1, 0, 0, 0] propagParLens2 = [0, 0, 1., 0, 0, 1, 1, 1, 1, 0, 0, 0] return srwlib.SRWLOptC( [optLens1, optDrift, optLens2], [propagParLens1, propagParDrift, propagParLens2])
def __init__(self, f): self.length = 0 self._srwc = srwlib.SRWLOptC( [srwlib.SRWLOptL(f, f)], [[0, 0, 1., 0, 0, 1., 1., 1., 1., 0, 0, 0]])
def set_optics(v=None): el = [] pp = [] names = ['S0', 'S0_HDM', 'HDM', 'HDM_S1', 'S1', 'S1_S2', 'S2', 'S2_CRL1', 'CRL1', 'CRL2', 'CRL2_KLA', 'KLA', 'KL', 'KL_S3', 'S3', 'S3_Sample', 'Sample'] for el_name in names: if el_name == 'S0': # S0: aperture 20.5m el.append(srwlib.SRWLOptA( _shape=v.op_S0_shape, _ap_or_ob='a', _Dx=v.op_S0_Dx, _Dy=v.op_S0_Dy, _x=v.op_S0_x, _y=v.op_S0_y, )) pp.append(v.op_S0_pp) elif el_name == 'S0_HDM': # S0_HDM: drift 20.5m el.append(srwlib.SRWLOptD( _L=v.op_S0_HDM_L, )) pp.append(v.op_S0_HDM_pp) elif el_name == 'HDM': # HDM: mirror 27.4m mirror_file = v.op_HDM_hfn assert os.path.isfile(mirror_file), \ 'Missing input file {}, required by HDM beamline element'.format(mirror_file) el.append(srwlib.srwl_opt_setup_surf_height_1d( srwlib.srwl_uti_read_data_cols(mirror_file, "\t", 0, 1), _dim=v.op_HDM_dim, _ang=v.op_HDM_ang, _amp_coef=v.op_HDM_amp_coef, _size_x=v.op_HDM_size_x, _size_y=v.op_HDM_size_y, )) pp.append(v.op_HDM_pp) elif el_name == 'HDM_S1': # HDM_S1: drift 27.4m el.append(srwlib.SRWLOptD( _L=v.op_HDM_S1_L, )) pp.append(v.op_HDM_S1_pp) elif el_name == 'S1': # S1: aperture 29.9m el.append(srwlib.SRWLOptA( _shape=v.op_S1_shape, _ap_or_ob='a', _Dx=v.op_S1_Dx, _Dy=v.op_S1_Dy, _x=v.op_S1_x, _y=v.op_S1_y, )) pp.append(v.op_S1_pp) elif el_name == 'S1_S2': # S1_S2: drift 29.9m el.append(srwlib.SRWLOptD( _L=v.op_S1_S2_L, )) pp.append(v.op_S1_S2_pp) elif el_name == 'S2': # S2: aperture 34.3m el.append(srwlib.SRWLOptA( _shape=v.op_S2_shape, _ap_or_ob='a', _Dx=v.op_S2_Dx, _Dy=v.op_S2_Dy, _x=v.op_S2_x, _y=v.op_S2_y, )) pp.append(v.op_S2_pp) elif el_name == 'S2_CRL1': # S2_CRL1: drift 34.3m el.append(srwlib.SRWLOptD( _L=v.op_S2_CRL1_L, )) pp.append(v.op_S2_CRL1_pp) elif el_name == 'CRL1': # CRL1: crl 35.4m el.append(srwlib.srwl_opt_setup_CRL( _foc_plane=v.op_CRL1_foc_plane, _delta=v.op_CRL1_delta, _atten_len=v.op_CRL1_atten_len, _shape=v.op_CRL1_shape, _apert_h=v.op_CRL1_apert_h, _apert_v=v.op_CRL1_apert_v, _r_min=v.op_CRL1_r_min, _n=v.op_CRL1_n, _wall_thick=v.op_CRL1_wall_thick, _xc=v.op_CRL1_x, _yc=v.op_CRL1_y, )) pp.append(v.op_CRL1_pp) elif el_name == 'CRL2': # CRL2: crl 35.4m el.append(srwlib.srwl_opt_setup_CRL( _foc_plane=v.op_CRL2_foc_plane, _delta=v.op_CRL2_delta, _atten_len=v.op_CRL2_atten_len, _shape=v.op_CRL2_shape, _apert_h=v.op_CRL2_apert_h, _apert_v=v.op_CRL2_apert_v, _r_min=v.op_CRL2_r_min, _n=v.op_CRL2_n, _wall_thick=v.op_CRL2_wall_thick, _xc=v.op_CRL2_x, _yc=v.op_CRL2_y, )) pp.append(v.op_CRL2_pp) elif el_name == 'CRL2_KLA': # CRL2_KLA: drift 35.4m el.append(srwlib.SRWLOptD( _L=v.op_CRL2_KLA_L, )) pp.append(v.op_CRL2_KLA_pp) elif el_name == 'KLA': # KLA: aperture 44.5m el.append(srwlib.SRWLOptA( _shape=v.op_KLA_shape, _ap_or_ob='a', _Dx=v.op_KLA_Dx, _Dy=v.op_KLA_Dy, _x=v.op_KLA_x, _y=v.op_KLA_y, )) pp.append(v.op_KLA_pp) elif el_name == 'KL': # KL: lens 44.5m el.append(srwlib.SRWLOptL( _Fx=v.op_KL_Fx, _Fy=v.op_KL_Fy, _x=v.op_KL_x, _y=v.op_KL_y, )) pp.append(v.op_KL_pp) elif el_name == 'KL_S3': # KL_S3: drift 44.5m el.append(srwlib.SRWLOptD( _L=v.op_KL_S3_L, )) pp.append(v.op_KL_S3_pp) elif el_name == 'S3': # S3: aperture 48.0m el.append(srwlib.SRWLOptA( _shape=v.op_S3_shape, _ap_or_ob='a', _Dx=v.op_S3_Dx, _Dy=v.op_S3_Dy, _x=v.op_S3_x, _y=v.op_S3_y, )) pp.append(v.op_S3_pp) elif el_name == 'S3_Sample': # S3_Sample: drift 48.0m el.append(srwlib.SRWLOptD( _L=v.op_S3_Sample_L, )) pp.append(v.op_S3_Sample_pp) elif el_name == 'Sample': # Sample: watch 48.7m pass pp.append(v.op_fin_pp) return srwlib.SRWLOptC(el, pp)
def set_optics(v=None): el = [] pp = [] for el_name in names: if el_name == 'S1': # S1: aperture 26.62m el.append( srwlib.SRWLOptA( _shape=v.op_S1_shape, _ap_or_ob='a', _Dx=v.op_S1_Dx, _Dy=v.op_S1_Dy, _x=v.op_S1_x, _y=v.op_S1_y, )) pp.append(v.op_S1_pp) elif el_name == 'S1_HCM': # S1_HCM: drift 26.62m el.append(srwlib.SRWLOptD(_L=v.op_S1_HCM_L, )) pp.append(v.op_S1_HCM_pp) elif el_name == 'HCM': # HCM: sphericalMirror 28.35m el.append( srwlib.SRWLOptMirSph( _r=v.op_HCM_r, _size_tang=v.op_HCM_size_tang, _size_sag=v.op_HCM_size_sag, _nvx=v.op_HCM_nvx, _nvy=v.op_HCM_nvy, _nvz=v.op_HCM_nvz, _tvx=v.op_HCM_tvx, _tvy=v.op_HCM_tvy, _x=v.op_HCM_x, _y=v.op_HCM_y, )) pp.append(v.op_HCM_pp) elif el_name == 'HCM_DCM_C1': # HCM_DCM_C1: drift 28.35m el.append(srwlib.SRWLOptD(_L=v.op_HCM_DCM_C1_L, )) pp.append(v.op_HCM_DCM_C1_pp) elif el_name == 'DCM_C1': # DCM_C1: crystal 30.42m crystal = srwlib.SRWLOptCryst( _d_sp=v.op_DCM_C1_d_sp, _psi0r=v.op_DCM_C1_psi0r, _psi0i=v.op_DCM_C1_psi0i, _psi_hr=v.op_DCM_C1_psiHr, _psi_hi=v.op_DCM_C1_psiHi, _psi_hbr=v.op_DCM_C1_psiHBr, _psi_hbi=v.op_DCM_C1_psiHBi, _tc=v.op_DCM_C1_tc, _ang_as=v.op_DCM_C1_ang_as, ) crystal.set_orient( _nvx=v.op_DCM_C1_nvx, _nvy=v.op_DCM_C1_nvy, _nvz=v.op_DCM_C1_nvz, _tvx=v.op_DCM_C1_tvx, _tvy=v.op_DCM_C1_tvy, ) el.append(crystal) pp.append(v.op_DCM_C1_pp) elif el_name == 'DCM_C2': # DCM_C2: crystal 30.42m crystal = srwlib.SRWLOptCryst( _d_sp=v.op_DCM_C2_d_sp, _psi0r=v.op_DCM_C2_psi0r, _psi0i=v.op_DCM_C2_psi0i, _psi_hr=v.op_DCM_C2_psiHr, _psi_hi=v.op_DCM_C2_psiHi, _psi_hbr=v.op_DCM_C2_psiHBr, _psi_hbi=v.op_DCM_C2_psiHBi, _tc=v.op_DCM_C2_tc, _ang_as=v.op_DCM_C2_ang_as, ) crystal.set_orient( _nvx=v.op_DCM_C2_nvx, _nvy=v.op_DCM_C2_nvy, _nvz=v.op_DCM_C2_nvz, _tvx=v.op_DCM_C2_tvx, _tvy=v.op_DCM_C2_tvy, ) el.append(crystal) pp.append(v.op_DCM_C2_pp) elif el_name == 'DCM_C2_HFM': # DCM_C2_HFM: drift 30.42m el.append(srwlib.SRWLOptD(_L=v.op_DCM_C2_HFM_L, )) pp.append(v.op_DCM_C2_HFM_pp) elif el_name == 'HFM': # HFM: sphericalMirror 32.64m el.append( srwlib.SRWLOptMirSph( _r=v.op_HFM_r, _size_tang=v.op_HFM_size_tang, _size_sag=v.op_HFM_size_sag, _nvx=v.op_HFM_nvx, _nvy=v.op_HFM_nvy, _nvz=v.op_HFM_nvz, _tvx=v.op_HFM_tvx, _tvy=v.op_HFM_tvy, _x=v.op_HFM_x, _y=v.op_HFM_y, )) pp.append(v.op_HFM_pp) elif el_name == 'After_HFM': # After_HFM: watch 32.64m pass elif el_name == 'After_HFM_CRL1': # After_HFM_CRL1: drift 32.64m el.append(srwlib.SRWLOptD(_L=v.op_After_HFM_CRL1_L, )) pp.append(v.op_After_HFM_CRL1_pp) elif el_name == 'CRL1': # CRL1: crl 34.15m el.append( srwlib.srwl_opt_setup_CRL( _foc_plane=v.op_CRL1_foc_plane, _delta=v.op_CRL1_delta, _atten_len=v.op_CRL1_atten_len, _shape=v.op_CRL1_shape, _apert_h=v.op_CRL1_apert_h, _apert_v=v.op_CRL1_apert_v, _r_min=v.op_CRL1_r_min, _n=v.op_CRL1_n, _wall_thick=v.op_CRL1_wall_thick, _xc=v.op_CRL1_x, _yc=v.op_CRL1_y, )) pp.append(v.op_CRL1_pp) elif el_name == 'CRL2': # CRL2: crl 34.15m el.append( srwlib.srwl_opt_setup_CRL( _foc_plane=v.op_CRL2_foc_plane, _delta=v.op_CRL2_delta, _atten_len=v.op_CRL2_atten_len, _shape=v.op_CRL2_shape, _apert_h=v.op_CRL2_apert_h, _apert_v=v.op_CRL2_apert_v, _r_min=v.op_CRL2_r_min, _n=v.op_CRL2_n, _wall_thick=v.op_CRL2_wall_thick, _xc=v.op_CRL2_x, _yc=v.op_CRL2_y, )) pp.append(v.op_CRL2_pp) elif el_name == 'CRL2_Before_SSA': # CRL2_Before_SSA: drift 34.15m el.append(srwlib.SRWLOptD(_L=v.op_CRL2_Before_SSA_L, )) pp.append(v.op_CRL2_Before_SSA_pp) elif el_name == 'Before_SSA': # Before_SSA: watch 94.5m pass elif el_name == 'SSA': # SSA: aperture 94.5m el.append( srwlib.SRWLOptA( _shape=v.op_SSA_shape, _ap_or_ob='a', _Dx=v.op_SSA_Dx, _Dy=v.op_SSA_Dy, _x=v.op_SSA_x, _y=v.op_SSA_y, )) pp.append(v.op_SSA_pp) elif el_name == 'SSA_Before_FFO': # SSA_Before_FFO: drift 94.5m el.append(srwlib.SRWLOptD(_L=v.op_SSA_Before_FFO_L, )) pp.append(v.op_SSA_Before_FFO_pp) elif el_name == 'Before_FFO': # Before_FFO: watch 109.0m pass elif el_name == 'AFFO': # AFFO: aperture 109.0m el.append( srwlib.SRWLOptA( _shape=v.op_AFFO_shape, _ap_or_ob='a', _Dx=v.op_AFFO_Dx, _Dy=v.op_AFFO_Dy, _x=v.op_AFFO_x, _y=v.op_AFFO_y, )) pp.append(v.op_AFFO_pp) elif el_name == 'FFO': # FFO: lens 109.0m el.append( srwlib.SRWLOptL( _Fx=v.op_FFO_Fx, _Fy=v.op_FFO_Fy, _x=v.op_FFO_x, _y=v.op_FFO_y, )) pp.append(v.op_FFO_pp) elif el_name == 'FFO_At_Sample': # FFO_At_Sample: drift 109.0m el.append(srwlib.SRWLOptD(_L=v.op_FFO_At_Sample_L, )) pp.append(v.op_FFO_At_Sample_pp) elif el_name == 'At_Sample': # At_Sample: watch 109.018163m pass pp.append(v.op_fin_pp) return srwlib.SRWLOptC(el, pp)
def set_optics(v=None): el = [] # S0: aperture 20.5m el.append(srwlib.SRWLOptA("r", "a", 0.0002, 0.001, 0.0, 0.0)) el.append(srwlib.SRWLOptD(6.9)) # HDM: mirror 27.4m ifnMirror1 = "mirror_1d.dat" if ifnMirror1: assert os.path.isfile(ifnMirror1), "Missing input file mirror_1d.dat, required by HDM beamline element" hProfDataMirror1 = srwlib.srwl_uti_read_data_cols(ifnMirror1, "\t", 0, 1) el.append(srwlib.srwl_opt_setup_surf_height_1d(hProfDataMirror1, _dim="x", _ang=0.0031415926, _amp_coef=1.0, _size_x=0.00094, _size_y=0.001)) el.append(srwlib.SRWLOptD(2.5)) # S1: aperture 29.9m el.append(srwlib.SRWLOptA("r", "a", 0.0002, 0.001, 0.0, 0.0)) el.append(srwlib.SRWLOptD(4.4)) # S2: aperture 34.3m el.append(srwlib.SRWLOptA("r", "a", 5e-05, 0.001, 0.0, 0.0)) el.append(srwlib.SRWLOptD(1.1)) # CRL1: crl 35.4m el.append(srwlib.srwl_opt_setup_CRL(2, 4.207568e-06, 0.007313, 1, 0.001, 0.0024, 0.0015, 1, 8e-05, 0.0, 0.0)) # CRL2: crl 35.4m el.append(srwlib.srwl_opt_setup_CRL(2, 4.207568e-06, 0.007313, 1, 0.001, 0.0014, 0.0005, 6, 8e-05, 0.0, 0.0)) el.append(srwlib.SRWLOptD(9.1)) # KLA: aperture 44.5m el.append(srwlib.SRWLOptA("r", "a", 0.0014, 0.0002, 0.0, 0.0)) # KL: lens 44.5m el.append(srwlib.SRWLOptL(3.24479, 1e+23, 0.0, 0.0)) el.append(srwlib.SRWLOptD(3.5)) # S3: aperture 48.0m el.append(srwlib.SRWLOptA("r", "a", 1e-05, 1e-05, 0.0, 0.0)) el.append(srwlib.SRWLOptD(0.7)) # Sample: watch 48.7m pp = [] # S0 pp.append([0, 0, 1.0, 0, 0, 2.5, 5.0, 1.5, 2.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) # HDM if ifnMirror1: pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) # S1 pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) # S2 pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) # CRL1 pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) # CRL2 pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) # KLA pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) # KL pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) pp.append([0, 0, 1.0, 1, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) # S3 pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) pp.append([0, 0, 1.0, 0, 0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) # Sample # final post-propagation pp.append([0, 0, 1.0, 0, 0, 0.3, 2.0, 0.5, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]) return srwlib.SRWLOptC(el, pp)