# How LIGO hears gravitational waves

> A process map exported from forks.world (https://forks.world). Author: Brian. Source: https://forks.world/p/cmv0kpwmj000ejv06mxozx3gs
> It describes who does what, in what order, and with which technology. Read the plain-language sections first; the JSON at the end is the exact, complete data.

## Summary

- 15 steps across 2 layers
- Persona: The scientists, The world
- Technology / systems: Two black holes, Spacetime, LIGO detectors

## How to read this file

- A process is made of **layers**. The main layer is the top level; any step of kind `subprocess` opens a detail layer with its own lanes and steps.
- **Lanes** are either persona (people/roles) or technology (systems). Each step belongs to one lane; `using` lists tools a person uses for that step.
- Step kinds: `start`, `task`, `decision` (its arrows carry the answer as a label), `subprocess`, `end`.

## How LIGO hears gravitational waves

Lanes:
- Two black holes: technology / system (id `bh`)
- Spacetime: technology / system (id `space`)
- LIGO detectors: technology / system (id `ligo`)
- The scientists: person / role (id `team`)
- The world: person / role (id `world`)

Steps, in the order they run:

1. **Two black holes spiral toward each other** [start; Two black holes; id `l1`]
   - then They ripple spacetime with gravitational waves
2. **They ripple spacetime with gravitational waves** [task; Spacetime; id `l2`]
   - then The waves travel for over a billion years
3. **The waves travel for over a billion years** [task; Spacetime; id `l3`]
   - then They reach Earth and stretch one detector arm by less than a proton's width
4. **They reach Earth and stretch one detector arm by less than a proton's width** [task; LIGO detectors; id `l4`]
   - then Laser beams in two perpendicular arms get out of step
5. **Laser beams in two perpendicular arms get out of step** [subprocess; LIGO detectors; id `l5`], opens the detail layer "The laser trick"
   - then Do both detectors, thousands of kilometers apart, see it?
6. **Do both detectors, thousands of kilometers apart, see it?** [decision; LIGO detectors; id `l6`]
   - if "Yes" go to Rule out noise and test the signal; if "No" go to Probably a local disturbance: a truck, a quake
7. **Rule out noise and test the signal** [task; The scientists; id `l7`]
   - then Match it to simulations of merging black holes
8. **Match it to simulations of merging black holes** [task; The scientists; id `l8`]
   - then Announce it. The first detection was in September 2015, and announced in 2016
9. **Announce it. The first detection was in September 2015, and announced in 2016** [end; The world; id `l9`]
10. **Probably a local disturbance: a truck, a quake** [end; The scientists; id `l6a`]

```mermaid
flowchart LR
  subgraph l_bh["Two black holes"]
    n_l1(["Two black holes spiral toward each other"])
  end
  subgraph l_space["Spacetime"]
    n_l2["They ripple spacetime with gravitational waves"]
    n_l3["The waves travel for over a billion years"]
  end
  subgraph l_ligo["LIGO detectors"]
    n_l4["They reach Earth and stretch one detector arm by less than a proton's width"]
    n_l5[["Laser beams in two perpendicular arms get out of step"]]
    n_l6{"Do both detectors, thousands of kilometers apart, see it?"}
  end
  subgraph l_team["The scientists"]
    n_l6a(["Probably a local disturbance: a truck, a quake"])
    n_l7["Rule out noise and test the signal"]
    n_l8["Match it to simulations of merging black holes"]
  end
  subgraph l_world["The world"]
    n_l9(["Announce it. The first detection was in September 2015, and announced in 2016"])
  end
  n_l1 --> n_l2
  n_l2 --> n_l3
  n_l3 --> n_l4
  n_l4 --> n_l5
  n_l5 --> n_l6
  n_l6 -->|"Yes"| n_l7
  n_l6 -->|"No"| n_l6a
  n_l7 --> n_l8
  n_l8 --> n_l9
```

### The laser trick (detail of step "Laser beams in two perpendicular arms get out of step")

Lanes:
- LIGO detectors: technology / system (id `ligo`)

Steps, in the order they run:

1. **Split a laser into two arms, each 4 km long** [start; LIGO detectors; id `x1`]
   - then Bounce each beam back and forth
2. **Bounce each beam back and forth** [task; LIGO detectors; id `x2`]
   - then Recombine the beams
3. **Recombine the beams** [task; LIGO detectors; id `x3`]
   - then Perfect cancellation means nothing happened
4. **Perfect cancellation means nothing happened** [task; LIGO detectors; id `x4`]
   - then A tiny change in the light is a wave
5. **A tiny change in the light is a wave** [end; LIGO detectors; id `x5`]

```mermaid
flowchart LR
  subgraph l_ligo["LIGO detectors"]
    n_x1(["Split a laser into two arms, each 4 km long"])
    n_x2["Bounce each beam back and forth"]
    n_x3["Recombine the beams"]
    n_x4["Perfect cancellation means nothing happened"]
    n_x5(["A tiny change in the light is a wave"])
  end
  n_x1 --> n_x2
  n_x2 --> n_x3
  n_x3 --> n_x4
  n_x4 --> n_x5
```

## Full data (JSON)

```json
{
  "title": "How LIGO hears gravitational waves",
  "maps": {
    "m_root": {
      "id": "m_root",
      "lanes": [
        {
          "id": "bh",
          "name": "Two black holes",
          "type": "system"
        },
        {
          "id": "space",
          "name": "Spacetime",
          "type": "system"
        },
        {
          "id": "ligo",
          "name": "LIGO detectors",
          "type": "system"
        },
        {
          "id": "team",
          "name": "The scientists",
          "type": "person"
        },
        {
          "id": "world",
          "name": "The world",
          "type": "person"
        }
      ],
      "steps": [
        {
          "id": "l1",
          "kind": "start",
          "lane": "bh",
          "next": [
            {
              "to": "l2"
            }
          ],
          "uses": [],
          "label": "Two black holes spiral toward each other"
        },
        {
          "id": "l2",
          "kind": "task",
          "lane": "space",
          "next": [
            {
              "to": "l3"
            }
          ],
          "uses": [],
          "label": "They ripple spacetime with gravitational waves"
        },
        {
          "id": "l3",
          "kind": "task",
          "lane": "space",
          "next": [
            {
              "to": "l4"
            }
          ],
          "uses": [],
          "label": "The waves travel for over a billion years"
        },
        {
          "id": "l4",
          "kind": "task",
          "lane": "ligo",
          "next": [
            {
              "to": "l5"
            }
          ],
          "uses": [],
          "label": "They reach Earth and stretch one detector arm by less than a proton's width"
        },
        {
          "id": "l5",
          "kind": "subprocess",
          "lane": "ligo",
          "next": [
            {
              "to": "l6"
            }
          ],
          "uses": [],
          "child": "m_laser",
          "label": "Laser beams in two perpendicular arms get out of step"
        },
        {
          "id": "l6",
          "kind": "decision",
          "lane": "ligo",
          "next": [
            {
              "to": "l7",
              "label": "Yes"
            },
            {
              "to": "l6a",
              "label": "No"
            }
          ],
          "uses": [],
          "label": "Do both detectors, thousands of kilometers apart, see it?"
        },
        {
          "id": "l6a",
          "kind": "end",
          "lane": "team",
          "next": [],
          "uses": [],
          "label": "Probably a local disturbance: a truck, a quake"
        },
        {
          "id": "l7",
          "kind": "task",
          "lane": "team",
          "next": [
            {
              "to": "l8"
            }
          ],
          "uses": [],
          "label": "Rule out noise and test the signal"
        },
        {
          "id": "l8",
          "kind": "task",
          "lane": "team",
          "next": [
            {
              "to": "l9"
            }
          ],
          "uses": [],
          "label": "Match it to simulations of merging black holes"
        },
        {
          "id": "l9",
          "kind": "end",
          "lane": "world",
          "next": [],
          "uses": [],
          "label": "Announce it. The first detection was in September 2015, and announced in 2016"
        }
      ],
      "title": "How LIGO hears gravitational waves",
      "parent": null
    },
    "m_laser": {
      "id": "m_laser",
      "lanes": [
        {
          "id": "ligo",
          "name": "LIGO detectors",
          "type": "system"
        }
      ],
      "steps": [
        {
          "id": "x1",
          "kind": "start",
          "lane": "ligo",
          "next": [
            {
              "to": "x2"
            }
          ],
          "uses": [],
          "label": "Split a laser into two arms, each 4 km long"
        },
        {
          "id": "x2",
          "kind": "task",
          "lane": "ligo",
          "next": [
            {
              "to": "x3"
            }
          ],
          "uses": [],
          "label": "Bounce each beam back and forth"
        },
        {
          "id": "x3",
          "kind": "task",
          "lane": "ligo",
          "next": [
            {
              "to": "x4"
            }
          ],
          "uses": [],
          "label": "Recombine the beams"
        },
        {
          "id": "x4",
          "kind": "task",
          "lane": "ligo",
          "next": [
            {
              "to": "x5"
            }
          ],
          "uses": [],
          "label": "Perfect cancellation means nothing happened"
        },
        {
          "id": "x5",
          "kind": "end",
          "lane": "ligo",
          "next": [],
          "uses": [],
          "label": "A tiny change in the light is a wave"
        }
      ],
      "title": "The laser trick",
      "parent": {
        "map": "m_root",
        "step": "l5"
      }
    }
  }
}
```
