23 TiE = 1.0 # Unpolarized transmittance |
23 TiE = 1.0 # Unpolarized transmittance |
24 RetE, dRetE, nRetE = 0., 180., 0 # Retardance in degrees |
24 RetE, dRetE, nRetE = 0., 180., 0 # Retardance in degrees |
25 RotE, dRotE, nRotE = 0., 1.0, 0 # beta: Rotation of optical element in degrees |
25 RotE, dRotE, nRotE = 0., 1.0, 0 # beta: Rotation of optical element in degrees |
26 |
26 |
27 # +++ MO Receiver optics including telescope |
27 # +++ MO Receiver optics including telescope |
28 DiO, dDiO, nDiO = 0.0, 0.1, 1 |
28 DiO, dDiO, nDiO = 0.0, 0.1, 1 # Diattenuation |
29 TiO = 1.0 |
29 TiO = 1.0 # Unpolarized transmittance |
30 RetO, dRetO, nRetO = 0., 180., 0 |
30 RetO, dRetO, nRetO = 0., 180., 0 # Retardance in degrees |
31 RotO, dRotO, nRotO = 0., 0.5, 0 #gamma: Rotation of optical element in degrees |
31 RotO, dRotO, nRotO = 0., 0.5, 0 #gamma: Rotation of the optical element in degrees |
32 |
32 |
33 # +++++ PBS MT Transmitting path defined with TS, TP, PolFilter extinction ratio ERaT, and +-Uncertainty |
33 # +++++ PBS MT Transmitting path defined with TS, TP, PolFilter extinction ratio ERaT, and +-Uncertainty |
34 # --- Polarizing beam splitter transmitting path |
34 # --- Polarizing beam splitter transmitting path |
35 TP, dTP, nTP = 0.95, 0.01, 1 |
35 TP, dTP, nTP = 0.95, 0.01, 1 # transmittance of the PBS for parallel polarized light |
36 TS, dTS, nTS = 0.02, 0.01, 1 |
36 TS, dTS, nTS = 0.02, 0.01, 1 # transmittance of the PBS for cross polarized light |
37 RetT, dRetT, nRetT = 0.0, 180., 0 # Retardance in degrees |
37 RetT, dRetT, nRetT = 0.0, 180., 0 # Retardance in degrees |
38 # --- Pol.Filter behind transmitted path of PBS |
38 # --- Pol.Filter behind transmitted path of PBS |
39 ERaT, dERaT, nERaT = 0.001, 0.001, 1 # Extinction ratio |
39 ERaT, dERaT, nERaT = 0.001, 0.001, 1 # Extinction ratio |
40 RotaT, dRotaT, nRotaT = 0., 1., 1 # Rotation of the Pol.-filter in degrees; usually 0° because TP >> TS, but for PollyXTs it can also be 90° |
40 RotaT, dRotaT, nRotaT = 0., 1., 1 # Rotation of the Pol.-filter in degrees; usually close to 0° because TP >> TS, but for PollyXTs it can also be close to 90° |
41 # -- |
41 # -- |
42 TiT = 0.5 * (TP + TS) |
42 TiT = 0.5 * (TP + TS) |
43 DiT = (TP-TS)/(TP+TS) |
43 DiT = (TP-TS)/(TP+TS) |
44 DaT = (1-ERaT)/(1+ERaT) |
44 DaT = (1-ERaT)/(1+ERaT) |
45 TaT = 0.5*(1+ERaT) |
45 TaT = 0.5*(1+ERaT) |
50 # --- Polarizing beam splitter reflecting path |
50 # --- Polarizing beam splitter reflecting path |
51 if(RS_RP_depend_on_TS_TP): |
51 if(RS_RP_depend_on_TS_TP): |
52 RP, dRP, nRP = 1-TP, 0.00, 0 # do not change this |
52 RP, dRP, nRP = 1-TP, 0.00, 0 # do not change this |
53 RS, dRS, nRS = 1-TS, 0.00, 0 # do not change this |
53 RS, dRS, nRS = 1-TS, 0.00, 0 # do not change this |
54 else: |
54 else: |
55 RP, dRP, nRP = 0.05, 0.01, 1 # change this if RS_RP_depend_on_TS_TP = False |
55 RP, dRP, nRP = 0.05, 0.01, 1 # change this if RS_RP_depend_on_TS_TP = False; reflectance of the PBS for parallel polarized light |
56 RS, dRS, nRS = 0.98, 0.01, 1 # change this if RS_RP_depend_on_TS_TP = False |
56 RS, dRS, nRS = 0.98, 0.01, 1 # change this if RS_RP_depend_on_TS_TP = False; reflectance of the PBS for cross polarized light |
57 RetR, dRetR, nRetR = 0.0, 180., 0 |
57 RetR, dRetR, nRetR = 0.0, 180., 0 # Retardance in degrees |
58 # --- Pol.Filter behind reflected path of PBS |
58 # --- Pol.Filter behind reflected path of PBS |
59 ERaR, dERaR, nERaR = 0.001, 0.001, 1 # Extinction ratio |
59 ERaR, dERaR, nERaR = 0.001, 0.001, 1 # Extinction ratio |
60 RotaR, dRotaR, nRotaR = 90., 1., 1 # Rotation of the Pol.-filter in degrees; usually 90° because RS >> RP, but for PollyXTs it can also be 0° |
60 RotaR, dRotaR, nRotaR = 90., 1., 1 # Rotation of the Pol.-filter in degrees; usually 90° because RS >> RP, but for PollyXTs it can also be 0° |
61 # -- |
61 # -- |
62 TiR = 0.5 * (RP + RS) |
62 TiR = 0.5 * (RP + RS) |
63 DiR = (RP-RS)/(RP+RS) |
63 DiR = (RP-RS)/(RP+RS) |
64 DaR = (1-ERaR)/(1+ERaR) |
64 DaR = (1-ERaR)/(1+ERaR) |
65 TaR = 0.5*(1+ERaR) |
65 TaR = 0.5*(1+ERaR) |
66 |
66 |
67 # +++ Parallel signal detected in the transmitted channel => Y = +1, or in the reflected channel => Y = -1 |
67 # +++ Orientation of the PBS with respect to the reference plane (see Polarisation-orientation.png and Polarisation-orientation-2.png in /system_settings) |
|
68 # Y = +1: polarisation in reference plane is transmitted, |
|
69 # Y = -1: polarisation in reference plane is reflected. |
68 Y = +1. |
70 Y = +1. |
69 |
71 |
70 # +++ Calibrator Location |
72 # +++ Calibrator Location |
71 LocC = 3 #location of calibrator: 1 = behind laser; 2 = behind emitter; 3 = before receiver; 4 = before PBS |
73 LocC = 3 #location of calibrator: 1 = behind laser; 2 = behind emitter; 3 = before receiver; 4 = before PBS |
72 # --- Calibrator Type used; defined by matrix values below |
74 # --- Calibrator Type used; defined by matrix values below |
73 TypeC = 3 #Type of calibrator: 1 = mechanical rotator; 2 = hwp rotator (fixed retardation); 3 = linear polarizer; 4 = qwp; 5 = circular polarizer; 6 = real HWP calibration +-22.5° |
75 TypeC = 3 #Type of calibrator: 1 = mechanical rotator; 2 = hwp rotator (fixed retardation); 3 = linear polarizer; 4 = qwp; 5 = circular polarizer; 6 = real HWP calibration +-22.5° |
74 # --- MC Calibrator parameters |
76 # --- MC Calibrator parameters |
75 if TypeC == 1: #mechanical rotator |
77 if TypeC == 1: #mechanical rotator |
76 DiC, dDiC, nDiC = 0., 0., 0 |
78 DiC, dDiC, nDiC = 0., 0., 0 # Diattenuation |
77 TiC = 1. |
79 TiC = 1. |
78 RetC, dRetC, nRetC = 0., 0., 0 |
80 RetC, dRetC, nRetC = 0., 0., 0 # Retardance in degrees |
79 RotC, dRotC, nRotC = 0., 0.1, 1 #constant calibrator offset epsilon |
81 RotC, dRotC, nRotC = 0., 0.1, 1 #constant calibrator rotation offset epsilon |
80 # Rotation error without calibrator: if False, then epsilon = 0 for normal measurements |
82 # Rotation error without calibrator: if False, then epsilon = 0 for normal measurements |
81 RotationErrorEpsilonForNormalMeasurements = True # is in general True for TypeC == 1 calibrator |
83 RotationErrorEpsilonForNormalMeasurements = True # is in general True for TypeC == 1 calibrator |
82 elif TypeC == 2: # HWP rotator |
84 elif TypeC == 2: # HWP rotator without retardance! |
83 DiC, dDiC, nDiC = 0., 0., 0 |
85 DiC, dDiC, nDiC = 0., 0., 0 # Diattenuation; ideal 0.0 |
84 TiC = 1. |
86 TiC = 1. |
85 RetC, dRetC, nRetC = 180., 0., 0 |
87 RetC, dRetC, nRetC = 180., 0., 0 # Retardance in degrees |
86 #NOTE: use here twice the HWP-rotation-angle |
88 #NOTE: use here twice the HWP-rotation-angle |
87 RotC, dRotC, nRotC = 0.0, 0.1, 1 #constant calibrator offset epsilon |
89 RotC, dRotC, nRotC = 0.0, 0.1, 1 #constant calibrator rotation offset epsilon |
88 RotationErrorEpsilonForNormalMeasurements = True # is in general True for TypeC == 2 calibrator |
90 RotationErrorEpsilonForNormalMeasurements = True # is in general True for TypeC == 2 calibrator |
89 elif TypeC == 3: # linear polarizer calibrator. Diattenuation DiC = (1-ERC)/(1+ERC); ERC = extinction ratio of calibrator |
91 elif TypeC == 3: # linear polarizer calibrator. Diattenuation DiC = (1-ERC)/(1+ERC); ERC = extinction ratio of calibrator |
90 DiC, dDiC, nDiC = 0.9998, 0.0001, 1 # ideal 1.0 |
92 DiC, dDiC, nDiC = 0.9998, 0.0001, 1 # Diattenuation; ideal 1.0 |
91 TiC = 0.4 # ideal 0.5 |
93 TiC = 0.4 # ideal 0.5 |
92 RetC, dRetC, nRetC = 0., 0., 0 |
94 RetC, dRetC, nRetC = 0., 0., 0 # Retardance in degrees |
93 RotC, dRotC, nRotC = 0.0, 0.1, 0 #constant calibrator offset epsilon |
95 RotC, dRotC, nRotC = 0.0, 0.1, 0 #constant calibrator rotation offset epsilon |
94 RotationErrorEpsilonForNormalMeasurements = False # is in general False for TypeC == 3 calibrator |
96 RotationErrorEpsilonForNormalMeasurements = False # is in general False for TypeC == 3 calibrator |
95 elif TypeC == 4: # QWP calibrator |
97 elif TypeC == 4: # QWP calibrator |
96 DiC, dDiC, nDiC = 0.0, 0., 0 # ideal 1.0 |
98 DiC, dDiC, nDiC = 0.0, 0., 0 # Diattenuation; ideal 0.0 |
97 TiC = 1.0 # ideal 0.5 |
99 TiC = 1.0 # ideal 0.5 |
98 RetC, dRetC, nRetC = 90., 0., 0 |
100 RetC, dRetC, nRetC = 90., 0., 0 # Retardance in degrees |
99 RotC, dRotC, nRotC = 0.0, 0.1, 1 #constant calibrator offset epsilon |
101 RotC, dRotC, nRotC = 0.0, 0.1, 1 #constant calibrator rotation offset epsilon |
100 RotationErrorEpsilonForNormalMeasurements = False # is False for TypeC == 4 calibrator |
102 RotationErrorEpsilonForNormalMeasurements = False # is False for TypeC == 4 calibrator |
101 elif TypeC == 6: # real half-wave plate calibration at +-22.5° => rotated_diattenuator_X22x5deg.odt |
103 elif TypeC == 6: # real half-wave plate rotator calibration at +-22.5° => rotated_diattenuator_X22x5deg.odt |
102 DiC, dDiC, nDiC = 0., 0., 0 |
104 DiC, dDiC, nDiC = 0., 0., 0 # Diattenuation; ideal 0.0 |
103 TiC = 1. |
105 TiC = 1. |
104 RetC, dRetC, nRetC = 180., 0., 0 |
106 RetC, dRetC, nRetC = 180., 0., 0 # Retardance in degrees |
105 #Note: use real HWP angles here |
107 #Note: use real HWP angles here |
106 RotC, dRotC, nRotC = 0.0, 0.1, 1 #constant calibrator offset epsilon |
108 RotC, dRotC, nRotC = 0.0, 0.1, 1 #constant calibrator rotation offset epsilon |
107 RotationErrorEpsilonForNormalMeasurements = True # is in general True for TypeC == 6 calibrator |
109 RotationErrorEpsilonForNormalMeasurements = True # is in general True for TypeC == 6 calibrator |
108 else: |
110 else: |
109 print ('calibrator not implemented yet') |
111 print ('calibrator not implemented yet') |
110 sys.exit() |
112 sys.exit() |
111 |
113 |