-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
394 lines (384 loc) · 30 KB
/
Copy pathindex.html
File metadata and controls
394 lines (384 loc) · 30 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>ISIS Explained — from a proton pulse to a published paper</title>
<meta name="description" content="An interactive, beginner-friendly guide to neutrons, muons, and the ISIS Neutron and Muon Source.">
<link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='6' fill='%234fd8eb'/%3E%3C/svg%3E">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,550;9..144,650&family=Atkinson+Hyperlegible:wght@400;700&family=IBM+Plex+Mono:wght@400;600&display=swap" rel="stylesheet">
<link rel="stylesheet" href="css/tokens.css">
<link rel="stylesheet" href="css/base.css">
<link rel="stylesheet" href="css/components.css">
<link rel="stylesheet" href="css/story.css">
<script defer src="js/nav.js"></script>
<script defer src="js/story.js"></script>
</head>
<body>
<a class="skip-link" href="#main">Skip to content</a>
<header class="site-header">
<div class="bar">
<a class="site-title" href="index.html"><span class="pip" aria-hidden="true"></span>ISIS EXPLAINED</a>
<nav class="site-nav" id="site-nav" aria-label="Site">
<a href="index.html" aria-current="page">STORY</a>
<a href="probes.html">PROBES</a>
<a href="facility.html">FACILITY</a>
<a href="techniques.html">TECHNIQUES</a>
<a href="data.html">DATA</a>
<a href="experiment.html">EXPERIMENT</a>
</nav>
</div>
</header>
<main class="story" id="main">
<!-- SCENE 1 · hero -->
<section class="scene hero" id="s1">
<div class="scene-inner center">
<p class="kicker reveal">Scene 01 — the starting gun</p>
<h1 class="hero-title reveal d1">From a proton pulse<br>to a published paper.</h1>
<p class="lede reveal d2">The ISIS Neutron and Muon Source is a giant accelerator in Oxfordshire: it fires neutrons and muons at materials to reveal where the atoms sit and what they’re doing. This is the story of how that happens — told for the people who keep it running but never studied physics. No equations you can’t skip. Lots of moving pictures.</p>
<svg class="hero-pulse reveal d3" viewBox="0 0 200 60" role="img" aria-label="A bunch of protons, pulsing.">
<g class="bunch">
<circle cx="100" cy="30" r="5" fill="#ff5d8f"/>
<circle cx="86" cy="24" r="3.4" fill="#ff5d8f" opacity=".8"/>
<circle cx="114" cy="37" r="3.4" fill="#ff5d8f" opacity=".8"/>
<circle cx="92" cy="40" r="2.6" fill="#ff5d8f" opacity=".6"/>
<circle cx="110" cy="20" r="2.6" fill="#ff5d8f" opacity=".6"/>
</g>
</svg>
<p class="scene-stat reveal d3"><span class="num">50×</span><span class="label">tight bursts (‘pulses’) of protons fired every second</span></p>
<p class="scroll-cue reveal d4" aria-hidden="true">scroll ↓</p>
</div>
</section>
<!-- SCENE 2 · synchrotron (looping animation) -->
<section class="scene" id="s2">
<div class="scene-inner cols">
<div class="scene-text">
<p class="kicker reveal">Scene 02 — the machine</p>
<h2 class="reveal d1">First, make protons. Fast ones.</h2>
<p class="reveal d2">It starts as hydrogen gas, turned into <strong>H⁻ ions</strong> — protons carrying two spare electrons, so the whole thing is negatively charged. They’re accelerated down a linac (a straight-line accelerator) and into a synchrotron ring <strong>163 m</strong> in circumference, where a very thin carbon foil strips both electrons off each ion — leaving bare protons that gain energy each lap until they’re kicked out toward the metal targets where the neutrons and muons are made (next scene).</p>
<p class="scene-stat reveal d3"><span class="num">800 MeV</span><span class="label">mega-electronvolts of proton energy — 84% of the speed of light, one lap every 0.65 <span class="unit">µs</span></span></p>
</div>
<figure class="scene-fig reveal d2">
<svg viewBox="0 0 360 320" role="img" aria-label="The ISIS synchrotron ring: a proton bunch is injected at 70 MeV, speeds up lap after lap, and is kicked out toward the targets at 800 MeV.">
<circle cx="180" cy="160" r="118" fill="none" stroke="#233055" stroke-width="10"/>
<circle cx="180" cy="160" r="118" fill="none" stroke="#3a4d85" stroke-width="2" stroke-dasharray="6 14"/>
<!-- injection line -->
<line x1="0" y1="160" x2="62" y2="160" stroke="#2c3a6b" stroke-width="4"/>
<text x="8" y="148" fill="#8a96c2" font-size="10" font-family="IBM Plex Mono, monospace">from linac (70 MeV)</text>
<!-- extraction line -->
<line x1="298" y1="160" x2="360" y2="160" stroke="#2c3a6b" stroke-width="4"/>
<text x="302" y="148" fill="#8a96c2" font-size="10" font-family="IBM Plex Mono, monospace">targets →</text>
<!-- bunch: injected, accelerates around the ring, extracted -->
<g class="fx-ring" style="transform-origin: 180px 160px">
<g>
<circle cx="180" cy="42" r="8" fill="#ff5d8f"/>
<circle cx="180" cy="42" r="14" fill="none" stroke="#ff5d8f" opacity=".4"/>
<circle cx="172" cy="46" r="4.5" fill="#ff5d8f" opacity=".65"/>
</g>
</g>
<text x="180" y="164" fill="#8a96c2" font-size="11" text-anchor="middle" font-family="IBM Plex Mono, monospace">163 m around</text>
<!-- beam-energy readout, stepping up with the laps -->
<g class="ring-energy" font-family="IBM Plex Mono, monospace" font-size="13" text-anchor="middle" fill="#ff5d8f">
<text class="e1" x="180" y="190">70 MeV</text>
<text class="e2" x="180" y="190">≈400 MeV</text>
<text class="e3" x="180" y="190">800 MeV</text>
</g>
</svg>
<figcaption class="figure-caption">schematic loop — the real bunch makes ~10,000 laps in ~10 ms before extraction</figcaption>
</figure>
</div>
</section>
<!-- SCENE 3 · two probes (looping animation) -->
<section class="scene" id="s3">
<div class="scene-inner cols flip">
<div class="scene-text">
<p class="kicker reveal">Scene 03 — two probes for the price of one</p>
<h2 class="reveal d1">The beam makes muons, then neutrons.</h2>
<p class="reveal d2">On the way to Target Station 1 the protons first pass through a <strong>1 cm slice of graphite</strong>, where collisions make short-lived particles called pions, which fall apart (‘decay’) within metres into <strong style="color:var(--muon)">muons</strong> — heavy, unstable cousins of the electron. Graphite is thin and light, so most protons punch straight through; the surviving beam then slams into a thick <strong>tungsten target</strong>, chipping <strong style="color:var(--neutron)">neutrons</strong> off its heavy, neutron-packed nuclei. That process is called spallation, and the neutrons spray out in every direction — which is why the moderators in the next scene sit above <em>and</em> below the target, not just downstream of it. (From here we follow the neutrons — the muons’ story continues on the <a href="probes.html">probes page</a>.)</p>
<p class="scene-stat reveal d3"><span class="num">~10–15</span><span class="label">neutrons knocked out per incoming proton</span></p>
</div>
<figure class="scene-fig reveal d2">
<svg viewBox="0 0 420 280" role="img" aria-label="Proton beam passes a thin graphite target producing labelled muons, then hits a tungsten target producing a labelled burst of neutrons that fly outward in all directions.">
<!-- beam path -->
<line x1="0" y1="170" x2="330" y2="170" stroke="#233055" stroke-width="3"/>
<!-- graphite -->
<rect x="120" y="140" width="8" height="60" fill="#1f2a4f" stroke="#b78aff"/>
<text x="124" y="226" fill="#b78aff" font-size="10" text-anchor="middle" font-family="IBM Plex Mono, monospace">graphite, 1 cm</text>
<!-- tungsten -->
<rect x="330" y="135" width="34" height="70" rx="4" fill="#2c3a6b" stroke="#ffb84d"/>
<text x="347" y="226" fill="#ffb84d" font-size="10" text-anchor="middle" font-family="IBM Plex Mono, monospace">tungsten</text>
<!-- proton (flies along the beam) -->
<g class="fx-proton"><circle cx="10" cy="170" r="7" fill="#ff5d8f"/></g>
<!-- muons rise from graphite, label rides along -->
<g class="fx-muons">
<circle cx="124" cy="150" r="4" fill="#b78aff"/>
<circle cx="138" cy="155" r="3.2" fill="#b78aff" opacity=".8"/>
<circle cx="112" cy="158" r="2.6" fill="#b78aff" opacity=".6"/>
<text x="112" y="136" fill="#b78aff" font-size="10" font-family="IBM Plex Mono, monospace">muons (μ)</text>
</g>
<text x="160" y="60" fill="#b78aff" font-size="10" font-family="IBM Plex Mono, monospace">→ muon instruments</text>
<!-- neutron burst from tungsten, label grows with it. The evaporation
neutrons ISIS actually uses leave the target in all directions, so
these rays ring the full circle — including back up the beam. -->
<g class="fx-burst" style="transform-origin: 347px 170px">
<g stroke="#4fd8eb" stroke-width="1.4">
<line x1="347" y1="170" x2="402" y2="150"/>
<line x1="347" y1="170" x2="372" y2="117"/>
<line x1="347" y1="170" x2="327" y2="116"/>
<line x1="347" y1="170" x2="294" y2="146"/>
<line x1="347" y1="170" x2="293" y2="190"/>
<line x1="347" y1="170" x2="328" y2="210"/>
<line x1="347" y1="170" x2="362" y2="211"/>
<line x1="347" y1="170" x2="400" y2="195"/>
</g>
<g fill="#4fd8eb">
<circle cx="402" cy="150" r="4"/>
<circle cx="372" cy="117" r="4"/>
<circle cx="327" cy="116" r="3.2"/>
<circle cx="294" cy="146" r="3.2"/>
<circle cx="293" cy="190" r="3.2"/>
<circle cx="328" cy="210" r="3.2"/>
<circle cx="362" cy="211" r="4"/>
<circle cx="400" cy="195" r="4"/>
</g>
<text x="368" y="94" fill="#4fd8eb" font-size="10" text-anchor="middle" font-family="IBM Plex Mono, monospace">neutrons (n)</text>
</g>
</svg>
<figcaption class="figure-caption">on loop: the pulse sheds muons at the graphite, then makes neutrons in the tungsten</figcaption>
</figure>
</div>
</section>
<!-- SCENE 4 · moderator -->
<section class="scene" id="s4">
<div class="scene-inner cols">
<div class="scene-text">
<p class="kicker reveal">Scene 04 — slow down</p>
<h2 class="reveal d1">Fresh neutrons are uselessly fast.</h2>
<p class="reveal d2">Straight off the target they move at tens of thousands of km/s — far too fast to probe atoms. So they pass through a <strong>moderator</strong>: a small tank of water, liquid methane or liquid hydrogen — all of them packed with light nuclei. Every bounce is an elastic collision, billiard balls rather than absorption, and a light nucleus takes away far more of the neutron’s speed than a heavy one would. Quantum mechanics’ strange gift: every particle of matter also behaves as a wave, and for a neutron, the slower it moves the longer its wavelength. About 14 collisions later they emerge thousands of times slower, with wavelengths that match the spacing between atoms — and energies that match how those atoms are moving.</p>
<p class="scene-stat reveal d3"><span class="num">≈ 1/10,000th</span><span class="label">of their speed left after moderation — and that’s the point</span></p>
</div>
<figure class="scene-fig reveal d2">
<svg viewBox="0 0 420 200" role="img" aria-label="A fast neutron enters a moderator tank, bounces, and leaves slow and cold.">
<rect x="150" y="40" width="120" height="120" rx="10" fill="#13203e" stroke="#3a4d85"/>
<text x="210" y="185" fill="#8a96c2" font-size="10" text-anchor="middle" font-family="IBM Plex Mono, monospace">moderator (H₂O / CH₄ / H₂)</text>
<!-- jagged fast path in -->
<polyline points="10,100 70,84 110,116 150,96" fill="none" stroke="#ffc46b" stroke-width="2" stroke-dasharray="5 4"/>
<polyline points="150,96 178,70 200,128 226,64 248,118 270,100" fill="none" stroke="#ffc46b" stroke-width="1.4" opacity=".6"/>
<circle class="mod-fast" cx="10" cy="100" r="6" fill="#ffc46b"/>
<!-- slow path out -->
<line x1="270" y1="100" x2="410" y2="100" stroke="#4fd8eb" stroke-width="2"/>
<circle class="mod-slow" cx="270" cy="100" r="6" fill="#4fd8eb"/>
<text x="395" y="88" fill="#4fd8eb" font-size="10" text-anchor="end" font-family="IBM Plex Mono, monospace">cold, slow, useful</text>
</svg>
<figcaption class="figure-caption">hot in, cold out — ‘cold’ just means slow — repeated 40 times a second at Target Station 1</figcaption>
</figure>
</div>
</section>
<!-- SCENE 5 · TOF race (looping animation) -->
<section class="scene" id="s5">
<div class="scene-inner stack">
<div class="scene-text center">
<p class="kicker reveal">Scene 05 — the race that measures itself</p>
<h2 class="reveal d1">Every pulse is a race down the beamline.</h2>
<p class="reveal d2">The neutrons in a pulse start <em>almost</em> together: the protons arrive as two bunches 0.32 µs apart, and the moderator holds each neutron for a slightly different time on the way out. Remember: slower = longer wave. So the short-wavelength ones are fast; the long-wavelength ones lag. By the time they reach the sample (the sliver of material a researcher has parked in the beam to study), <em>arrival time tells you the wavelength</em> — the facility’s clock is its most important instrument, and that small smear in the start time is exactly what limits how sharply it can read.</p>
</div>
<figure class="scene-fig wide reveal d2">
<svg viewBox="0 0 700 150" role="img" aria-label="Three neutrons of different wavelengths start almost together and spread apart down a 10 metre beamline; an arrival time is logged as each one reaches the sample.">
<line x1="30" y1="60" x2="670" y2="60" stroke="#233055" stroke-width="2" stroke-dasharray="4 7"/>
<g fill="#8a96c2" font-size="9" font-family="IBM Plex Mono, monospace" text-anchor="middle">
<text x="30" y="40">moderator</text>
<text x="664" y="40">sample · 10 m</text>
</g>
<g class="fx-race1"><circle cx="30" cy="48" r="7" fill="#ff8a5c"/></g>
<g class="fx-race2"><circle cx="30" cy="62" r="7" fill="#b8e986"/></g>
<g class="fx-race3"><circle cx="30" cy="76" r="7" fill="#6aa8ff"/></g>
<!-- arrival times, logged as each neutron reaches the sample (λ = 2/3/4 Å over 10 m) -->
<g class="race-stamps" font-size="9" font-family="IBM Plex Mono, monospace" text-anchor="end">
<text class="stamp-1" x="652" y="51" fill="#ff8a5c">t = 5.1 ms</text>
<text class="stamp-2" x="652" y="65" fill="#b8e986">t = 7.6 ms</text>
<text class="stamp-3" x="652" y="79" fill="#6aa8ff">t = 10.1 ms</text>
</g>
<g font-size="9" font-family="IBM Plex Mono, monospace">
<text x="40" y="116" fill="#ff8a5c">short wavelength (λ) — arrives first</text>
<text x="290" y="116" fill="#b8e986">medium λ</text>
<text x="540" y="116" fill="#6aa8ff">long λ — arrives last</text>
</g>
</svg>
<p class="tof-eq reveal d3"><code>λ ≈ 3956 · t / L</code> — wavelength in ångströms (Å: a ten-billionth of a metre, about the width of an atom), from arrival time t (s) over flight path L (m). The 3956 isn’t magic — a neutron’s speed × wavelength always equals 3956 m·Å/s. <a href="data.html#tof">Try it yourself →</a></p>
<figcaption class="figure-caption">on loop: all three leave within microseconds of each other — the clock is what tells them apart</figcaption>
</figure>
</div>
</section>
<!-- SCENE 6 · detectors -->
<section class="scene" id="s6">
<div class="scene-inner cols flip">
<div class="scene-text">
<p class="kicker reveal">Scene 06 — the data is born</p>
<h2 class="reveal d1">Detectors don’t see pictures. They see events.</h2>
<p class="reveal d2">Neutrons scatter off the sample and hit banks of detectors. Every hit is just <span class="mono">(detector ID, time of flight)</span> — no images, no spectra, only counts and clocks. On most ISIS instruments the electronics don’t keep each hit as its own row: they add 1 to the bucket for that detector and that slice of time, so what lands in the file is already a tally. (Instruments that <em>do</em> save every hit separately are running in ‘event mode’ — both shapes, and why it matters, on the <a href="data.html#events">data page</a>.)</p>
<p class="scene-stat reveal d3"><span class="num">10⁶–10⁹</span><span class="label">neutrons counted in one ‘run’ (a single measurement, minutes to hours)</span></p>
</div>
<figure class="scene-fig reveal d2">
<svg viewBox="0 0 420 240" role="img" aria-label="Scattered neutrons fly from a sample to an arc of detector tiles; each hit flashes a tile and builds up the histogram of counts against time of flight, and a few example hits appear as lines of detector ID and arrival time.">
<circle cx="210" cy="80" r="9" fill="#eef2ff"/>
<text x="210" y="62" fill="#8a96c2" font-size="9" text-anchor="middle" font-family="IBM Plex Mono, monospace">sample</text>
<g class="det-arc">
<!-- arc of detector tiles -->
<g id="det-tiles"></g>
</g>
<!-- neutron dots are generated by story.js (≈30 per pulse); the log
samples four of those hits — times/colors match the generated
arrivals (TOF span 0–12 ms across the 15 bins) -->
<g class="ev-log" font-size="9" font-family="IBM Plex Mono, monospace">
<text x="8" y="104" fill="#8a96c2">example hits:</text>
<text class="l1" x="8" y="120" fill="#ff8a5c">(det 02, 2.0 ms)</text>
<text class="l2" x="8" y="134" fill="#ffc46b">(det 07, 3.7 ms)</text>
<text class="l3" x="8" y="148" fill="#b8e986">(det 04, 6.5 ms)</text>
<text class="l4" x="8" y="162" fill="#6aa8ff">(det 09, 10.0 ms)</text>
</g>
<g class="histo" id="det-histo" aria-hidden="true"></g>
<text x="210" y="232" fill="#8a96c2" font-size="9" text-anchor="middle" font-family="IBM Plex Mono, monospace">counts vs time of flight, building up</text>
</svg>
<figcaption class="figure-caption">on loop: each pulse builds the histogram hit by hit — the list shows a sample of hits</figcaption>
</figure>
</div>
</section>
<!-- INTERLUDE · the full chain in one picture (looping animation) -->
<section class="scene" id="recap">
<div class="scene-inner stack">
<div class="scene-text center">
<p class="kicker reveal">Interlude — scenes 02–06 in one picture</p>
<h2 class="reveal d1">One pulse, end to end.</h2>
<p class="reveal d2">Forty times a second at Target Station 1: protons accelerate, shed muons at the graphite, make neutrons in the tungsten, slow down in the moderator, then race down the beamline — and every detector hit becomes one more count.</p>
</div>
<figure class="scene-fig wide reveal d2">
<svg viewBox="0 0 760 200" role="img" aria-label="The full ISIS chain in one schematic: a linac feeds the synchrotron ring; extracted protons pass a graphite slice making muons, hit the tungsten target making neutrons, which slow in the moderator, race down the flight path, scatter off the sample and hit detector tiles.">
<!-- machine outline (static, labelled) -->
<line x1="8" y1="120" x2="78" y2="120" stroke="#2c3a6b" stroke-width="3"/>
<circle cx="112" cy="120" r="34" fill="none" stroke="#233055" stroke-width="6"/>
<circle cx="112" cy="120" r="34" fill="none" stroke="#3a4d85" stroke-width="1.4" stroke-dasharray="4 9"/>
<line x1="146" y1="120" x2="296" y2="120" stroke="#233055" stroke-width="2.5"/>
<rect x="208" y="102" width="4" height="36" fill="#1f2a4f" stroke="#b78aff"/>
<rect x="270" y="98" width="26" height="44" rx="3" fill="#2c3a6b" stroke="#ffb84d"/>
<rect x="320" y="100" width="40" height="40" rx="6" fill="#13203e" stroke="#3a4d85"/>
<line x1="365" y1="120" x2="645" y2="120" stroke="#233055" stroke-width="1.5" stroke-dasharray="4 7"/>
<circle cx="655" cy="120" r="5" fill="#eef2ff"/>
<g fill="#4fd8eb">
<rect class="rc-d1" x="700" y="87.5" width="10" height="5" rx="1" transform="rotate(59 705 90)"/>
<rect class="rc-d2" x="712" y="117.5" width="10" height="5" rx="1" transform="rotate(90 717 120)"/>
<rect class="rc-d3" x="700" y="147.5" width="10" height="5" rx="1" transform="rotate(121 705 150)"/>
</g>
<g fill="#8a96c2" font-size="10" font-family="IBM Plex Mono, monospace" text-anchor="middle">
<text x="43" y="106">linac</text>
<text x="112" y="172">synchrotron</text>
<text x="210" y="172">graphite</text>
<text x="278" y="186">tungsten</text>
<text x="345" y="172">moderator</text>
<text x="505" y="106">flight path · 10 m</text>
<text x="655" y="98">sample</text>
<text x="712" y="180">detectors</text>
</g>
<!-- muon exit branch: the rising muons travel up this line -->
<line x1="212" y1="94" x2="212" y2="50" stroke="#b78aff" stroke-width="1" stroke-dasharray="3 6" opacity=".45"/>
<text x="220" y="54" fill="#b78aff" font-size="10" font-family="IBM Plex Mono, monospace">→ muon instruments</text>
<!-- the flight path + sample + detectors ARE one neutron instrument -->
<path d="M370,74 L370,68 L748,68 L748,74" fill="none" stroke="#4fd8eb" stroke-width="1" opacity=".45"/>
<text x="559" y="58" fill="#4fd8eb" font-size="10" text-anchor="middle" font-family="IBM Plex Mono, monospace">one neutron instrument (of 30+)</text>
<!-- actors (loop-only; hidden on the static page) -->
<circle class="rc-actor rc-p1" cx="14" cy="120" r="5" fill="#ff5d8f"/>
<g class="rc-actor rc-p2" style="transform-origin: 112px 120px"><circle cx="112" cy="86" r="5" fill="#ff5d8f"/></g>
<circle class="rc-actor rc-p3" cx="146" cy="120" r="5" fill="#ff5d8f"/>
<g class="rc-actor rc-mu">
<circle cx="210" cy="106" r="3" fill="#b78aff"/>
<circle cx="218" cy="112" r="2.4" fill="#b78aff" opacity=".7"/>
</g>
<g class="rc-actor rc-burst" style="transform-origin: 296px 120px" stroke="#4fd8eb" stroke-width="1.2">
<line x1="296" y1="120" x2="319" y2="107"/>
<line x1="296" y1="120" x2="296" y2="94"/>
<line x1="296" y1="120" x2="274" y2="107"/>
<line x1="296" y1="120" x2="274" y2="133"/>
<line x1="296" y1="120" x2="296" y2="146"/>
<line x1="296" y1="120" x2="319" y2="133"/>
</g>
<circle class="rc-actor rc-nf" cx="296" cy="120" r="4" fill="#ffc46b"/>
<circle class="rc-actor rc-r1" cx="360" cy="112" r="4.5" fill="#ff8a5c"/>
<circle class="rc-actor rc-r2" cx="360" cy="120" r="4.5" fill="#b8e986"/>
<circle class="rc-actor rc-r3" cx="360" cy="128" r="4.5" fill="#6aa8ff"/>
</svg>
<figcaption class="figure-caption">on loop — the whole chain, schematic and not to scale</figcaption>
</figure>
</div>
</section>
<!-- SCENE 7 · pipeline -->
<section class="scene" id="s7">
<div class="scene-inner cols">
<div class="scene-text">
<p class="kicker reveal">Scene 07 — from log file to physics</p>
<h2 class="reveal d1">Reduction turns events into answers.</h2>
<p class="reveal d2">Software — at ISIS, mainly <strong>Mantid</strong> — takes those tallies and converts time of flight into physical units, using the fact that it knows where every detector sits. Then it strips out the machine’s own fingerprint with the help of extra measurements — a standard sample, an empty sample container, a monitor count — some divided out, some subtracted, until what’s left is the sample’s own signal and a model can be fitted to it. The one thing reduction can’t remove is that start-time smear from Scene 05, so it gets built into the fit instead. Out the other end: numbers with error bars that go straight into a paper.</p>
<p class="reveal d3"><a class="btn primary" href="data.html#playground">Run the pipeline yourself ▸</a></p>
</div>
<figure class="scene-fig reveal d2">
<svg viewBox="0 0 420 250" role="img" aria-label="The reduction chain — Load, ConvertUnits, Rebin, Normalize, Fit — lights up step by step as a noisy raw spectrum morphs into a flat calibrated curve with a fitted peak; a faint copy of the raw data stays for comparison.">
<!-- chain (steps highlight as they run) -->
<g font-family="IBM Plex Mono, monospace" font-size="9" fill="#c0c9e8" class="pipe-chain" text-anchor="middle">
<text class="pc-1" x="60" y="60">Load</text>
<text class="pc-2" x="60" y="90">ConvertUnits</text>
<text class="pc-3" x="60" y="120">Rebin</text>
<text class="pc-4" x="60" y="150">Normalize</text>
<text class="pc-5" x="60" y="180">Fit</text>
<line x1="60" y1="66" x2="60" y2="78" stroke="#3a4d85"/>
<line x1="60" y1="96" x2="60" y2="108" stroke="#3a4d85"/>
<line x1="60" y1="126" x2="60" y2="138" stroke="#3a4d85"/>
<line x1="60" y1="156" x2="60" y2="168" stroke="#3a4d85"/>
</g>
<!-- one plot: the same data, morphing through the chain -->
<line x1="115" y1="190" x2="405" y2="190" stroke="#233055" stroke-width="1.5"/>
<!-- faint copy of the raw input, kept for comparison -->
<path class="pipe-ghost" d="M120,100 L136,88 L153,104 L169,92 L186,62 L202,78 L219,108 L235,96 L252,118 L268,104 L285,84 L301,120 L318,128 L334,142 L351,132 L367,152 L384,144 L400,160" fill="none" stroke="#ff8a5c" stroke-width="1.2" opacity=".25"/>
<text x="120" y="84" fill="#ff8a5c" opacity=".55" font-size="8" font-family="IBM Plex Mono, monospace">raw</text>
<!-- the data (morphs raw → converted → rebinned → normalized) -->
<path class="pipe-data" d="M120,160 L136,159 L153,160 L169,158 L186,159 L202,130 L219,78 L235,118 L252,157 L268,158 L285,159 L301,148 L318,112 L334,150 L351,158 L367,159 L384,158 L400,160" fill="none" stroke="#4fd8eb" stroke-width="2"/>
<!-- the fitted model, drawn over the main peak -->
<path class="pipe-fit" d="M178,160 C190,156 206,86 219,80 C232,86 246,152 260,158" fill="none" stroke="#ffb84d" stroke-width="2" pathLength="1" stroke-dasharray="1"/>
<!-- units caption (crossfades at Normalize) -->
<g fill="#8a96c2" font-size="9" text-anchor="middle" font-family="IBM Plex Mono, monospace">
<text class="pu-1" x="262" y="212">instrument units — raw events</text>
<text class="pu-2" x="262" y="212">physical units — reduced + fitted</text>
</g>
</svg>
<figcaption class="figure-caption">on loop — the same data, step by step through the chain</figcaption>
</figure>
</div>
</section>
<!-- SCENE 8 · people + CTAs -->
<section class="scene" id="s8">
<div class="scene-inner center">
<p class="kicker reveal">Scene 08 — the punchline</p>
<h2 class="reveal d1">All of this, for ~1,200 experiments a year.</h2>
<p class="lede reveal d2">Thousands of visiting researchers — plus the ISIS staff who run the accelerator, the instruments, the sample environments and the software that turns pulses into papers.</p>
<div class="stat-row reveal d3">
<p class="scene-stat"><span class="num">3,000</span><span class="label">researchers supported each year</span></p>
<p class="scene-stat"><span class="num">30+</span><span class="label">neutron & muon instruments</span></p>
<p class="scene-stat"><span class="num">1984</span><span class="label">delivering beam since</span></p>
</div>
<nav class="card-grid cta-row reveal d4" aria-label="Explore the topic pages">
<a class="cta-card" href="probes.html"><span class="kicker">01</span><h3>Why neutrons & muons?</h3><p>The right-sized ruler, and a probe that reports from inside.</p></a>
<a class="cta-card" href="facility.html"><span class="kicker">02</span><h3>How ISIS works</h3><p>Ion source to target stations — explore the machine.</p></a>
<a class="cta-card" href="techniques.html"><span class="kicker">03</span><h3>Nine ways to use the beam</h3><p>Diffraction to muon spectroscopy — what each one answers.</p></a>
<a class="cta-card" href="data.html"><span class="kicker">04</span><h3>From counts to curves</h3><p>Events, histograms, and a reduction pipeline you can drive.</p></a>
<a class="cta-card" href="experiment.html"><span class="kicker">05</span><h3>Life of an experiment</h3><p>Proposal → beamtime → data → paper. Where you fit in.</p></a>
</nav>
</div>
</section>
</main>
<footer class="site-footer">
<div class="bar">
<span>An unofficial, simplified guide for ISIS staff who didn’t study physics.</span>
<span><a href="https://www.isis.stfc.ac.uk/" rel="external">isis.stfc.ac.uk</a> · <a href="https://docs.mantidproject.org/nightly/" rel="external">Mantid docs</a> · <a href="how.html">how this site was made</a></span>
</div>
</footer>
</body>
</html>