root icon indicating copy to clipboard operation
root copied to clipboard

TGenPhaseSpace weight normalization

Open jjerhot opened this issue 1 year ago • 0 comments

Check duplicate issues.

  • [X] Checked for duplicates

Description

The event weight obtained from TGenPhaseSpace::Generate() that is used to get a flat distribution is not normalized to 1. The number rather seems to correspond to the square of the portion of the phase space occupied by the kinematically allowed final states, e.g., for three massless particles, the shape is a triangle that occupies 1/2 of the m_{12}^2 and m_{23} ^2 ranges, and the normalization is indeed 1/4 (instead of 1). Maybe this is a feature and not a bug, but it should be documented in the TGenPhaseSpace::Generate() method.

It would also be useful to have a method that returns the correct event weight. At the moment, in order to get a correctly normalized weight, one can run a Monte Carlo to obtain an overall normalization of the distribution for chosen masses and then apply this normalization as a correction on individual weights of generated events.

Reproducer

A simplest example can be the tutorial macro: PhaseSpace.C

ROOT version

Present in v6.30 but the behavior was the same in v5 and possibly before.

Installation method

built from source

Operating system

Probably all systems (tested on Linux Centos 7, Centos 8, Rocky 9, macOS Sonoma 14)

Additional context

No response

jjerhot avatar Feb 19 '24 17:02 jjerhot