diff --git a/Code/Mantid/instrument/Facilities.xml b/Code/Mantid/instrument/Facilities.xml index 3896ac9b789dfc99bd4e9d3e133ec169a09baa3d..dc3fa5dc1c8cbf9ffef80f0ac12d650a218af839 100644 --- a/Code/Mantid/instrument/Facilities.xml +++ b/Code/Mantid/instrument/Facilities.xml @@ -49,6 +49,11 @@ <technique>Neutron Diffraction</technique> <livedata address="NDXINES:6789" /> </instrument> + + <instrument name="INTER"> + <technique>Reflectometry</technique> + <livedata address="NDXINTER:6789" /> + </instrument> <instrument name="IRIS" shortname="IRS" beamline="N6"> <zeropadding size="8" startRunNumber="54938" prefix="IRIS"/> diff --git a/Code/Mantid/instrument/INTER_Definition.xml b/Code/Mantid/instrument/INTER_Definition.xml new file mode 100644 index 0000000000000000000000000000000000000000..825630ea9a9a3b1114e10a5e6e0e9d43c9c50257 --- /dev/null +++ b/Code/Mantid/instrument/INTER_Definition.xml @@ -0,0 +1,378 @@ +<?xml version="1.0" encoding="UTF-8"?> +<instrument name="INTER" valid-from ="1900-01-31 23:59:59" + valid-to ="2100-01-31 23:59:59" + last-modified="2010-11-04 00:00:00"> + <defaults> + <length unit="meter" /> + <angle unit="degree" /> + <reference-frame> + <along-beam axis="z" /> + <pointing-up axis="y" /> + <handedness val="right" /> + </reference-frame> + <default-view axis-view="z+"/> + </defaults> + + + <!-- Definition of instrument specific parameters for data reduction (e.g. wavelength cutoffs etc.) , could go into paramter file + MonitorBackground= [7.6,8.5] + MonitorsToCorrect=[1] + PointDetectorStart=[0] # Note: Since we are removing the monitors in the load raw command they are not counted here. + PointDetectorStop=[0] + MultiDetectorStart=[1] + I0MonitorIndex=1 + --> + + <parameter name="MonitorBackgroundMin"> + <value val="15.0"/> + </parameter> + + <parameter name="MonitorBackgroundMax"> + <value val="17.0"/> + </parameter> + +<!-- here we need to add the other monitors --> + <parameter name="MonitorsToCorrect"> + <value val="1"/> + </parameter> + + <parameter name="PointDetectorStart"> + <value val="0"/> + </parameter> + + <parameter name="PointDetectorStop"> + <value val="0"/> + </parameter> + + <parameter name="MultiDetectorStart"> + <value val="6"/> + </parameter> + + <parameter name="I0MonitorIndex"> + <value val="2"/> + </parameter> + + <parameter name="LambdaMin"> + <value val="1.0"/> + </parameter> + + <parameter name="LambdaMax"> + <value val="17.0"/> + </parameter> + + + + <!-- BRIEF DESCRIPTION OF Inter INSTRUMENT: + + Here Z=0 is defined by the neutron beam which slopes down at 2.3 deg. + from the horizon. This description is based on data provided by Tim + Charlton and Rob Dalgliesh. + + Note from Tim spreedsheet + theta is a rotation about the y axis + phi is a rotation about the x axis + chi is a rotation about the z axis + + Noticed the face of the monitors/detector shapes that faces the + beam/sample path is in this IDF defined to be the y-z plane. + + Note the status of the instrument during a run is stored in the + logfile RunNo_status.txt + --> + + + <!-- LIST OF PHYSICAL COMPONENTS (which the instrument consists of) --> + + <!-- detector components (including monitors) --> + + <component type="monitor1" idlist="monitor1"> + <location z="6.96" mark-as="monitor" /> + </component> + + <type name="monitor1" is="detector"> + <!-- Shape specified at least big enough to cover the beam which + is 10mm high and 40mm wide. Note it is described as tube, hence + the choice of a cylinder shape. + --> + <percent-transparency val="95" /> + <cylinder id="shape"> + <centre-of-bottom-base z="0.0" x="-0.02" y="0.0" /> + <axis z="0.0" x="1.0" y="0.0" /> + <radius val="0.01" /> + <height val="0.04" /> + </cylinder> + <algebra val="shape" /> + </type> + + <component type="monitor2" idlist="monitor2"> + <location z="13.791" mark-as="monitor" /> <!-- x = 23.0-5.05 --> + </component> + + <type name="monitor2" is="detector"> + <!-- Shape specified as a minimum needs to cover the beam which + is 10mm high and 40mm wide. The 'top' shape is included to + more easily recognise this monitor when visualised in MantidPlot. + This monitor is suppose to look a bit like a German hand grenade. + --> + <percent-transparency val="95" /> + <cuboid id="base"> + <left-front-bottom-point z="0.04" x="-0.02" y="-0.01" /> + <left-front-top-point z="0.04" x="-0.02" y="0.01" /> + <left-back-bottom-point z="-0.04" x="-0.02" y="-0.01" /> + <right-front-bottom-point z="0.04" x="0.02" y="-0.01" /> + </cuboid> + + <cylinder id="top"> + <centre-of-bottom-base z="0.0" x="0.0" y="0.01" /> + <axis z="0.0" x="0.0" y="1.0" /> + <radius val="0.02" /> + <height val="0.04" /> + </cylinder> + + <algebra val="base : top" /> + </type> + + <component type="monitor3" idlist="monitor3"> + <location z="16.785" mark-as="monitor" /> <!-- 23.0-0.425 --> + </component> + + <type name="monitor3" is="detector"> + <!-- Shape specified as a minimum needs to cover the beam which + is 10mm high and 40mm wide. The 'top' shape is included to + more easily recognise this monitor when visualised in MantidPlot. + This monitor is suppose to look a bit like a German hand grenade. + + + + --> + <percent-transparency val="95" /> + <cuboid id="base"> + <left-front-bottom-point z="0.04" x="-0.02" y="-0.01" /> + <left-front-top-point z="0.04" x="-0.02" y="0.01" /> + <left-back-bottom-point z="-0.04" x="-0.02" y="-0.01" /> + <right-front-bottom-point z="0.04" x="0.02" y="-0.01" /> + </cuboid> + + <cylinder id="top"> + <centre-of-bottom-base z="0.0" x="0.0" y="0.01" /> + <axis z="0.0" x="0.0" y="1.0" /> + <radius val="0.02" /> + <height val="0.04" /> + </cylinder> + + <algebra val="base : top" /> + </type> + + + + <component type="point-detector" idlist="point-detector"> + + <location z="19.700" /> <!-- x= 23.0+2.6 --> + + <!-- Link to log file that stores the z position. This angle can be used to + calculate the z position since the distance along the x-axis between + the sample and this detector is known (2.6m). Also theta in the logfile is + assumed to in degrees, hence the reason for the pi/180=0.0174533 transformation + to radians factor in the eq attribute. + + + This calculation becomes more complex due to the detector table and height stage above it. + It should be revisited when the log files become more stable. + + We may actually want to draw in the table for clarity. + --> + <parameter name="y"> + <logfile id="theta" eq="2.6*sin(value*0.0174533)" extract-single-value-as="last_value"/> + </parameter> + + </component> + + <type name="point-detector" is="detector"> + <!-- Not exactly sure about the dimensions of this one. But pretty sure + it at least covers the beam. Also, just in front of it is a slit which + at the end of day will determine which neutrons get through to this + detector I believe. + --> + <cuboid id="shape"> + <left-front-bottom-point z="0.01" x="-0.02" y="-0.005" /> + <left-front-top-point z="0.01" x="-0.02" y="0.005" /> + <left-back-bottom-point z="-0.01" x="-0.02" y="-0.005" /> + <right-front-bottom-point z="0.01" x="0.02" y="-0.005" /> + </cuboid> + <algebra val="shape" /> + </type> + + + <component type="point-detector2" idlist="point-detector2"> + + <location z="19.700" /> <!-- x= 23.0+2.6 --> + + <!-- Link to log file that stores the z position. This angle can be used to + calculate the z position since the distance along the x-axis between + the sample and this detector is known (2.6m). Also theta in the logfile is + assumed to in degrees, hence the reason for the pi/180=0.0174533 transformation + to radians factor in the eq attribute. + + + This calculation becomes more complex due to the detector table and height stage above it. + It should be revisited when the log files become more stable. + + We may actually want to draw in the table for clarity. + --> + <parameter name="y"> + <logfile id="Theta" eq="2.7*sin((value+1)*0.0174533)" extract-single-value-as="last_value"/> + </parameter> + + </component> + + <type name="point-detector2" is="detector"> + <!-- Not exactly sure about the dimensions of this one. But pretty sure + it at least covers the beam. Also, just in front of it is a slit which + at the end of day will determine which neutrons get through to this + detector I believe. + --> + <cuboid id="shape"> + <left-front-bottom-point z="0.01" x="-0.02" y="-0.005" /> + <left-front-top-point z="0.01" x="-0.02" y="0.005" /> + <left-back-bottom-point z="-0.01" x="-0.02" y="-0.005" /> + <right-front-bottom-point z="0.01" x="0.02" y="-0.005" /> + </cuboid> + <algebra val="shape" /> + </type> + + + + <!-- ################################### --> + <component type="panel" idstart="2001" idfillbyfirst="y" idstep="1" idstepbyrow="1"> + <location z="20.200" name="linear-detector"/> + <parameter name="y"> + <logfile id="Theta" eq="3.2*tan(value*0.0174533)-46*0.0012" extract-single-value-as="last_value"/> + </parameter> + + </component> + + <type name="panel" is="rectangular_detector" type="linear-detector-pixel" + xpixels="1" xstart="0.0" xstep="0.05" + ypixels="243" ystart="y" ystep="+0.0012" > + <properties/> + </type> + <!--"-0.0576"--> + <type name="linear-detector-pixel" is="detector"> + <cuboid id="shape"> + <left-front-bottom-point z="0.01" x="-0.025" y="-0.0006" /> + <left-front-top-point z="0.01" x="-0.025" y="0.0006" /> + <left-back-bottom-point z="-0.01" x="-0.025" y="-0.0006" /> + <right-front-bottom-point z="0.01" x="0.025" y="-0.0006" /> + </cuboid> + <algebra val="shape" /> + </type> + + + <!-- source and sample-position components --> + + <component type="source"> + <location /> + </component> + + <type name="source" is="Source"> + <properties> + 40mm(H) x 60mm(W) + </properties> + </type> + + + <component type="some-surface-holder"> + <!-- worry about linking relevant logfiles for y,z,theta,phi up later --> + <location z="17.037"/> + </component> + + <type name="some-surface-holder" is="SamplePos"> + </type> + + + <!-- other components --> + + <!-- Must change the distances below to match polref --> + + <component type="slit1"> + <location z="15.200"/> <!-- x= 23.0 - 4.710 --> + <!-- This log file stores the vertical opening of slit --> + <parameter name="opening height"> + <logfile id="s1" extract-single-value-as="position 1" /> + </parameter> + </component> + + <component type="slit2"> + <location z="16.700"/> <!-- x=23.0 - 0.590 --> + <!-- This log file stores the vertical opening of this. Note this + slit can also be translated in the z. However this info not stored + in log file since it is not used in the data analysis process. --> + <parameter name="opening height"> + <logfile id="s2" extract-single-value-as="position 1" /> + </parameter> + </component> + + <component type="slit3"> + <location z="18.200"/> <!-- x=23.0+0.960 --> + <!-- This log file stores the vertical opening of slit --> + <parameter name="opening height"> + <logfile id="s3" extract-single-value-as="position 1" /> + </parameter> + </component> + + <component type="slit4"> + <location z="19.700"/> <!-- x=23.0+2.445 --> + <!-- This log file stores the vertical opening of slit. Note this slit + is fixed to the point detector. --> + <parameter name="opening height"> + <logfile id="s4" extract-single-value-as="position 1" /> + </parameter> + </component> + + <type name="slit1"></type> + <type name="slit2"></type> + <type name="slit3"></type> + <type name="slit4"></type> + + + + <component type="supermirror"> + <!-- Worry about linking relevant logfiles for z,theta up later --> + <location z="28.52"/> <!-- x=32.0-3.480 --> + </component> + + <type name="supermirror" /> + + + + + <!-- DETECTOR and MONITOR ID LISTS --> + + + + <idlist idname="monitor1"> + <id val="1" /> + </idlist> + + <idlist idname="monitor2"> + <id val="2" /> + </idlist> + + <idlist idname="monitor3"> + <id val="3" /> + </idlist> + + <idlist idname="point-detector"> + <id val="4" /> + </idlist> + + <idlist idname="point-detector2"> + <id val="5" /> + </idlist> + <!-- + <idlist idname="linear-detector"> + <id start="2001" end="2240" /> + </idlist> + --> +</instrument> +