<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>