<HTML><BODY>Dear all,<br><br>I have a problem. I need to neutron beam pass through elliptical mirrors system. I tried approach through component "Guide_tapering" and component "Mirror_Elliptic". But in both cases neutron beam does not move after the mirror. Could you say what the source of the problem and how I can fix this. Code with "Guide_tapering" for example are attached.<br><br>Thanking in advance.<br>Yours faithfully, Ekaterina<em>.<br></em><br><br>DEFINE INSTRUMENT NSE_res(double slit_w = 0.1)<br><br><br>DECLARE<br>%{<br><br>double slit_h;<br>int iter;<br>double arm_lenght = 5;<br>%}<br><br><br>INITIALIZE<br>%{<br><br>%}<br><br><br>TRACE<br><br><br>COMPONENT Origin = Progress_bar()<br> AT (0,0,0) ABSOLUTE<br><br>COMPONENT source = Source_gen(<br> yheight=0.00001,xwidth=slit_w, lambda0=9, dlambda=0.000000000000001,I1=1e13,<br> verbose=1,focus_xw=slit_w,focus_yh=0.0001, dist = arm_lenght/4)<br> AT (0, 0, 0) RELATIVE Origin<br> EXTEND<br> %{<br> t = rand0max(1e-20); // set time from 0 to 1 ms for TOF instruments.<br> %}<br> <br><br>COMPONENT mon_TOF_source = Monitor_nD(<br> xwidth = 0.4, yheight = 0.4, restore_neutron = 1,<br> options = "time, limits=[0.000000001 0.3], bins=180, lambda, limits=[8.9 9.1], bins=180")<br> AT (0, 0, 0.00001) RELATIVE PREVIOUS<br><br>COMPONENT monitor_lambda_source = Monitor_nD(<br> xwidth = 0.4, yheight = 0.4, restore_neutron = 1,<br> options = "lambda, limits = [8.99, 9.01], bins = 180")<br> AT (0, 0, 0.00001) RELATIVE PREVIOUS<br><br><br>COMPONENT first_arm = Arm()<br> AT (0, 0, 0.000001) RELATIVE PREVIOUS<br><br> COMPONENT slit_first = Slit(xwidth = slit_w, yheight = 0.00001)<br> AT (0, 0, 1E-4) RELATIVE first_arm<br><br> COMPONENT elliptical_1 = Guide_tapering(<br> option = "elliptical", w1 = 1, h1 = 0.5, l = arm_lenght,<br> linw = 0.5, loutw = 0.5, linh = 0.5, louth = 0.5,<br> segno = 100, R0 = 0.995, <br> Qcx = 0.0217, Qcy = 0.0217, alphax = 6.07,<br> alphay = 6.07, W = 0.003, mx = 3, my = 3)<br> AT (-0.5+slit_w/2, 0,1E-3) RELATIVE first_arm<br> EXTEND<br> %{<br> if(!SCATTERED) ABSORB;<br> %}<br><br><br>COMPONENT second_arm = Arm()<br> AT (0, 0, arm_lenght) RELATIVE first_arm<br><br> COMPONENT elliptical_2 = Guide_tapering(<br> option = "elliptical", w1 = 1, h1 = 0.5, l = arm_lenght,<br> linw = 0.5, loutw = 0.5, linh = 0.5, louth = 0.5,<br> segno = 10, R0 = 0.995, <br> Qcx = 0.0217, Qcy = 0.0217, alphax = 6.07,<br> alphay = 6.07, W = 0.003, mx = 3, my = 3)<br> AT (0.5-slit_w/2, 0,1E-3) RELATIVE second_arm<br> EXTEND<br> %{<br> if(!SCATTERED) ABSORB;<br> %}<br><br><br> COMPONENT slit_f = Slit(xwidth = slit_w, yheight = 0.00001)<br> AT (0, 0, arm_lenght) RELATIVE second_arm<br><br>COMPONENT mon_TOF_end = Monitor_nD(<br> xwidth = 0.4, yheight = 0.4, restore_neutron = 1,<br> options = "time bins=180, lambda, limits=[29 31], bins=180")<br> AT (0, 0, 0.001) RELATIVE PREVIOUS<br><br>COMPONENT monitor_lambda_end = Monitor_nD(<br> xwidth = 0.4, yheight = 0.4, restore_neutron = 1,<br> options = "lambda, limits = [8.99, 9.01], bins = 180")<br> AT (0, 0, 0.001) RELATIVE PREVIOUS<br><br><br>COMPONENT monitor_time_end_9 = Monitor_nD(<br> xwidth = 0.4, yheight = 0.4, restore_neutron = 1,<br> options = "time, limits = [0.022784, 0.022792] bins = 200")<br> AT (0, 0, 0.001) RELATIVE PREVIOUS<br><br>COMPONENT monitor_time_end_30 = Monitor_nD(<br> xwidth = 0.4, yheight = 0.4, restore_neutron = 1,<br> options = "time, limits = [0.0455305, 0.0455307] bins = 200")<br> AT (0, 0, 0.001) RELATIVE PREVIOUS<br><br><br><br>FINALLY<br>%{<br>%}<br><br>END<br><br><br></BODY></HTML>