gibuu is hosted by Hepforge, IPPP Durham

Version 3 (modified by gallmei, 4 years ago) (diff)

Adding some explanation for the perWeight

'perturbative' and 'real' particles; the perturbative weigth

'perturbative' and 'real' particles

(following text is taken - slightly modified - from: O.Buss, PhD thesis, pdf, Appendix B.1)

For some calculations, e.g. low-energetic πA or γA collision, it is a good assumption, that the target nucleus stays very close to its ground state. Henceforth, one keeps as an approximation the target nucleus constant in time. This basically means that the phase space density of the target is not allowed to change during the run. The test-particles which represent this constant target nucleus are called real test-particles. However, one also wants to consider the final state particles. Thus one defines another type of test-particles which are called perturbative. The perturbative test-particles are propagated and may collide with real ones, the products are perturbative particles again. However, perturbative particles may not scatter among each other. Furthermore, they are neglected in the calculation of the actual densities. One can simulate in this fashion the effects of the almost constant target on the outgoing nucleons without modifying the target. E.g. in πA collisions we initialize all initial state pions as perturbative test-particles. Thus the target stays automatically constant and all products of the collisions of pions and target nucleons are assigned to the perturbative regime.

Furthermore, since the perturbative particles do not react among each other or modify the real particles in a reaction, one can also split a perturbative particle in \(N_{test}\) pieces (several perturbative particles) during a run. Each piece is given a corresponding weight \(1/N_{test}\) and one simulates like this \(N_{test}\) possible final state scenarios of the same perturbative particle during one run.

The perturbative weigth 'perWeight'

Usually, in the cases mentioned above, where ou use the seperation into real and perturbative particles like this, you want to calculate some final quantity like \(d\sigma^A_{tot}=\int_{nucleus}d^3r\int \frac{d^3p}{(2\pi)^3} d\sigma^N_{tot}\,\times\,\dots \). Here we are hiding all medium modifications, as e.g. Pauli blocking, flux corrections or medium modifications of the cross section in the part "\(\,\times\,\dots \)". Now, solving this via the testparticle ansatz (with \(N_{test}\) being the number of test particles), this quantity is calulated as \(d\sigma^A_{tot}=\frac{1}{N_{test}}\sum_{j=1}^{N_{test}\cdot A}d\sigma^j_{tot}\,\times\,\dots \), with \(d\sigma^j_{tot}=d\sigma^N_{tot}(\vec r_j,\vec p_j)\) standing for the cross section of the \(j\)-th test-particle.

The internal implementation of calculations like this in GiBUU is, that a loop runs over all \(N_{test}\cdot A\) target nucleons and creates some event. Thus all these events have the same probability. But since they should be weighted according \(d\sigma^j_{tot}\), this is corrected by giving all (final state) particles coming out of event \(j\) the weight \(d\sigma^j_{tot}\).

This information is stored the variable perWeight in the definition of the particle type.

Thus, in order to get the correct final cross section, one has to sum the perWeight, and not the particles.

As an example: if you want to calculate the inclusive pion production cross section, you have to loop over all particles and sum the perWeights of all pions. Simply taking the number of all pions would give false results.