How do we know the number of photons in a decay?

When you ask "how can we determine...", that sounds like an experimental question. But when you ask "don't we expect infinitely many soft photons?", that sounds like a theoretical question. I'll focus on the the experimental question.

The facetious answer to how you determine the number of photons in a decay is that you measure them. That's obviously not very satisfying, so I'll go into a little more detail, but that's still the crux of the answer.

Two points to keep in mind:

First, a high-energy physics detector has almost 4$\pi$ coverage, so you can measure the total energy of all the decay products in the event. You can also compare it to the total energy of the collision, which (depending on the event) may give you an idea of whether you have all the decay products that were produced. There are of course some complications:

  • Collision energy: In proton facilities like LHC, you don't actually know the collision energy because you don't know the fraction of the energy in the colliding partons. However, you do know what the distribution is, and you also know the maximum energy. On the other hand, in lepton colliders like LEP, the collision energy is known very precisely. (In fact, corrections were made in LEP to account for the level of water in Lake Geneva, and also for the operating schedule of the French TGV trains, which produced an even more subtle effect). That's why lepton colliders are so good for precision measurements.

  • Detector coverage: It's not really 4$\pi$ coverage; you lose coverage around the beam pipe (and in LHC experiments you always lose something down the beam pipe), and traditionally the endcaps and detectors at low angles are not as precise as the barrels. So people (especially in LEP analyses) sometimes require that the measured event energy be contained in the barrel portion of the detector. And of course there's all the subdetector calibration efforts, which I won't go into.

  • Energy Loss: It is not possible to detect all decay products in proton collisions like LHC. Lepton collisions like LEP are much cleaner; some events (such as $e^+ e^- \to e^+ e^-$ Bhabha scattering) contain the full collision energy (and thus are useful for calibration, for example). On the other hand, hadronic decays end up as jets; in such cases there will always be energy losses due to neutrinos even if you could precisely measure everything else. However, you can still get an idea of what decayed by looking at vertex information (i.e., where exactly the decay originated) and things like the invariant mass of the detected decay products.

The second point is that all high energy physics analyses are statistical. You never draw a conclusion from a single event; you always use a lot of events (the actual number is highly variable) and look at the distribution.

That second point is the real answer to the question. Especially in clean decays (such as those from lepton colliders), you can measure the invariant mass of the decay products such as the photons that you assume are from the particle that decayed. For example, suppose you suspect a given particle decays into three photons. You select events consistent with the decay of that particle by looking for events with two or three photons with an invariant mass equal to the particle's mass (plus whatever other event characteristics would apply). You calculate the invariant mass by looking at the photon energies and assuming they originated at a decay point which you estimate based on the particle's lifetime. With enough such events, you can then look at the energy distribution of (say) the photon with the lowest energy, and estimate/extrapolate how many events would appear to be two-photon events because the 3rd photon had an energy too small to measure. You can then compare that number with the actual observed number of two-photon events with that invariant mass.