I'm running simulations using Stim to get logical error rate vs. physical error rates of some quantum error correcting codes (QECC).
I looked into the documentation, but I'm confused about the meaning of "shots" and "rounds". I think I understand the meaning of "shots": repeat the state generation, add random noise at physical error rate, measure, decode, count logical errors. How would the "rounds" parameter enter the picture? Why would I need more than one round of measurement? (Assuming each round measures all stabilizers.)
Here a code sniplet of an example:
def Test():
num_shots = 1000
xs = []
ys = []
for noise in [0.1, 0.2, 0.3, 0.4, 0.5]:
circuit = stim.Circuit.generated("surface_code:rotated_memory_z",distance=3,rounds=1,before_round_data_depolarization=noise)
xs.append(noise)
ys.append(count_logical_errors(circuit, num_shots) / num_shots)
plt.plot(xs, ys)
plt.semilogy()
plt.xlabel("physical error rate")
plt.ylabel("logical error rate")
plt.show()