Skip to content

Commit

Permalink
refs #5821. Add and check new IDF.
Browse files Browse the repository at this point in the history
  • Loading branch information
OwenArnold committed Oct 10, 2012
1 parent 46c9c07 commit 31c7526
Show file tree
Hide file tree
Showing 2 changed files with 383 additions and 0 deletions.
5 changes: 5 additions & 0 deletions Code/Mantid/instrument/Facilities.xml
Original file line number Diff line number Diff line change
Expand Up @@ -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"/>
Expand Down
378 changes: 378 additions & 0 deletions Code/Mantid/instrument/INTER_Definition.xml
Original file line number Diff line number Diff line change
@@ -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>

0 comments on commit 31c7526

Please sign in to comment.