In[]:=
states=First/@Take[ResourceFunction["MultiwaySystem"][{"Xo""oX","oX""Xo"},"ooooooooXXoooooooo",6,"StateWeights","IncludeStateWeights"True],-14]
Out[]=
{oooooXXooooooooooo,oooooXooooooXooooo,oooooooooXXooooooo,ooooooooXooXoooooo,oooooooXooooXooooo,ooooooXooooooXoooo,ooooooooooXXoooooo,oooooooooXooXooooo,ooooooooXooooXoooo,oooooooXooooooXooo,oooooooooooXXooooo,ooooooooooXooXoooo,oooooooooXooooXooo,ooooooooXooooooXoo}

Pre-measurement, strings represent superpositions

"oooooooXooooXooooo"
is a superposition of photons at two different positions
[ There may also be another interpretation ]

Post-measurement, what does the string represent?

"oooooooXoooooooooo"
is clear in what it represents. It is an eigenstate in the position basis with the photon at a certain position.
The goal of the measurement is to get a result that is an eigenstate in the position basis.
< position eigenstate | state we got >
Jonathan’s scheme:
We need to map this onto a specific position eigenstate:
"oooooooXooooXooooo"

How to measure a superposition state

“oooooooXooooXooooo” roughly represents a wavefunction with support at two distinct points.
Now we do a series of measurements
The multiway system has generated a superposition of superposition states

Take 1: just treat the X separately [too classical]

{"oooooXXooooooooooo","oooooXooooooXooooo","oooooooooXXooooooo","ooooooooXooXoooooo","oooooooXooooXooooo","ooooooXooooooXoooo","ooooooooooXXoooooo","oooooooooXooXooooo","ooooooooXooooXoooo","oooooooXooooooXooo","oooooooooooXXooooo","ooooooooooXooXoooo","oooooooooXooooXooo","ooooooooXooooooXoo"}
In[]:=
states=ResourceFunction["MultiwaySystem"][{"Xo""oX","oX""Xo"},"ooooooooXXoooooooo",6,"StateWeights","IncludeStateWeights"True]
Out[]=
ooooooooXXoooooooo1,oooooooXoXoooooooo
1
2
,ooooooooXoXooooooo
1
2
,ooooooXooXoooooooo
1
8
,ooooooooXXoooooooo
1
4
,oooooooXXooooooooo
1
8
,oooooooXooXooooooo
1
4
,oooooooooXXooooooo
1
8
,ooooooooXooXoooooo
1
8
,oooooXoooXoooooooo
1
24
,oooooooXoXoooooooo
1
4
,ooooooXoXooooooooo
1
12
,ooooooXoooXooooooo
1
8
,ooooooooXoXooooooo
1
4
,oooooooXoooXoooooo
1
8
,oooooooooXoXoooooo
1
12
,ooooooooXoooXooooo
1
24
,ooooXooooXoooooooo
1
96
,ooooooXooXoooooooo
1
8
,oooooXooXooooooooo
1
32
,oooooXooooXooooooo
1
24
,ooooooooXXoooooooo
1
8
,oooooooXXooooooooo
1
12
,oooooooXooXooooooo
3
16
,ooooooXXoooooooooo
1
48
,ooooooXooooXoooooo
1
16
,oooooooooXXooooooo
1
12
,ooooooooXooXoooooo
1
8
,oooooooXooooXooooo
1
24
,ooooooooooXXoooooo
1
48
,oooooooooXooXooooo
1
32
,ooooooooXooooXoooo
1
96
,oooXoooooXoooooooo
1
320
,oooooXoooXoooooooo
1
16
,ooooXoooXooooooooo
1
80
,ooooXoooooXooooooo
1
64
,oooooooXoXoooooooo
5
32
,ooooooXoXooooooooo
5
64
,ooooooXoooXooooooo
1
8
,oooooXoXoooooooooo
1
64
,oooooXoooooXoooooo
1
32
,ooooooooXoXooooooo
5
32
,oooooooXoooXoooooo
1
8
,ooooooXoooooXooooo
1
32
,oooooooooXoXoooooo
5
64
,ooooooooXoooXooooo
1
16
,oooooooXoooooXoooo
1
64
,ooooooooooXoXooooo
1
64
,oooooooooXoooXoooo
1
80
,ooooooooXoooooXooo
1
320
,ooXooooooXoooooooo
1
1280
,ooooXooooXoooooooo
3
128
,oooXooooXooooooooo
1
256
,oooXooooooXooooooo
3
640
,ooooooXooXoooooooo
27
256
,oooooXooXooooooooo
27
640
,oooooXooooXooooooo
15
256
,ooooXooXoooooooooo
9
1280
,ooooXooooooXoooooo
3
256
,ooooooooXXoooooooo
5
64
,oooooooXXooooooooo
15
256
,oooooooXooXooooooo
9
64
,ooooooXXoooooooooo
3
128
,ooooooXooooXoooooo
5
64
,oooooXXooooooooooo
1
256
,oooooXooooooXooooo
1
64
,oooooooooXXooooooo
15
256
,ooooooooXooXoooooo
27
256
,oooooooXooooXooooo
15
256
,ooooooXooooooXoooo
3
256
,ooooooooooXXoooooo
3
128
,oooooooooXooXooooo
27
640
,ooooooooXooooXoooo
3
128
,oooooooXooooooXooo
3
640
,oooooooooooXXooooo
1
256
,ooooooooooXooXoooo
9
1280
,oooooooooXooooXooo
1
256
,ooooooooXooooooXoo
1
1280

In[]:=
sweights=GatherBy[Catenate[Map[Thread[Map[First,StringPosition[First[#],"X"]]Last[#]]&,states]],First]
Out[]=
91,9
1
2
,9
1
4
,9
1
8
,9
1
8
,9
1
12
,9
1
4
,9
1
24
,9
1
32
,9
1
8
,9
1
12
,9
1
8
,9
1
96
,9
1
80
,9
5
64
,9
5
32
,9
1
16
,9
1
320
,9
1
256
,9
27
640
,9
5
64
,9
15
256
,9
27
256
,9
3
128
,9
1
1280
,101,10
1
2
,10
1
8
,10
1
4
,10
1
8
,10
1
24
,10
1
4
,10
1
12
,10
1
96
,10
1
8
,10
1
8
,10
1
12
,10
1
32
,10
1
320
,10
1
16
,10
5
32
,10
5
64
,10
1
80
,10
1
1280
,10
3
128
,10
27
256
,10
5
64
,10
15
256
,10
27
640
,10
1
256
,8
1
2
,8
1
8
,8
1
4
,8
1
4
,8
1
8
,8
1
12
,8
3
16
,8
1
48
,8
1
24
,8
5
32
,8
1
64
,8
1
8
,8
1
64
,8
9
1280
,8
15
256
,8
9
64
,8
3
128
,8
15
256
,8
3
640
,11
1
2
,11
1
4
,11
1
8
,11
1
8
,11
1
4
,11
1
24
,11
3
16
,11
1
12
,11
1
48
,11
1
64
,11
1
8
,11
5
32
,11
1
64
,11
3
640
,11
15
256
,11
9
64
,11
15
256
,11
3
128
,11
9
1280
,7
1
8
,7
1
12
,7
1
8
,7
1
8
,7
1
48
,7
1
16
,7
5
64
,7
1
8
,7
1
32
,7
27
256
,7
3
128
,7
5
64
,7
1
256
,7
3
256
,12
1
8
,12
1
8
,12
1
12
,12
1
16
,12
1
8
,12
1
48
,12
1
32
,12
1
8
,12
5
64
,12
3
256
,12
5
64
,12
27
256
,12
3
128
,12
1
256
,6
1
24
,6
1
32
,6
1
24
,6
1
16
,6
1
64
,6
1
32
,6
27
640
,6
15
256
,6
1
256
,6
1
64
,13
1
24
,13
1
24
,13
1
32
,13
1
32
,13
1
16
,13
1
64
,13
1
64
,13
15
256
,13
27
640
,13
1
256
,5
1
96
,5
1
80
,5
1
64
,5
3
128
,5
9
1280
,5
3
256
,14
1
96
,14
1
64
,14
1
80
,14
3
256
,14
3
128
,14
9
1280
,4
1
320
,4
1
256
,4
3
640
,15
1
320
,15
3
640
,15
1
256
,3
1
1280
,16
1
1280

In[]:=
Sort[{#[[1,1]],Total[Values[#]]}&/@sweights]
Out[]=
3,
1
1280
,4,
3
256
,5,
31
384
,6,
661
1920
,7,
767
768
,8,
1681
768
,9,
27
8
,10,
27
8
,11,
1681
768
,12,
767
768
,13,
661
1920
,14,
31
384
,15,
3
256
,16,
1
1280

In[]:=
ListLinePlot[%]
Out[]=
4
6
8
10
12
14
16
0.5
1.0
1.5
2.0
2.5
3.0
3.5
In[]:=
Module[{states,sweights},states=ResourceFunction["MultiwaySystem"][{"Xo""oX","oX""Xo"},"ooooooooXXoooooooo",8,"StateWeights","IncludeStateWeights"True];sweights=GatherBy[Catenate[Map[Thread[Map[First,StringPosition[First[#],"X"]]Last[#]]&,states]],First];Sort[{#[[1,1]],Total[Values[#]]}&/@sweights]]
Out[]=
1,
1
17920
,2,
19
17920
,3,
17
1792
,4,
479
8960
,5,
407
1920
,6,
121
192
,7,
5557
3840
,8,
10463
3840
,9,
251
64
,10,
251
64
,11,
10463
3840
,12,
5557
3840
,13,
121
192
,14,
407
1920
,15,
479
8960
,16,
17
1792
,17,
19
17920
,18,
1
17920

In[]:=
ListLinePlot[%]
Out[]=
5
10
15
1
2
3
4

Take 2: the phase of each string is given by the difference of X positions

Each string can be written in the position basis as an average single X position, together with a phase associated with the distance between Xs
Each pair gives the position basis position, together with the phase associated with this term in the superposition
Fundamental objective: find to which position basis eigenstate each X...X configuration corresponds

Two different phases: phase of photon itself; phase of photon wave function

Phase of photon itself is related to position in position basis