Use the Narrow Width Approximation (NWA) to reduce the dimensionality of the integration. More...
Detailed Description
Use the Narrow Width Approximation (NWA) to reduce the dimensionality of the integration.
It is possible to reduce the number of integrated dimensions by fixing the mass of one of the propagators one is integrating over to the observed mass of the corresponding particle. This approximation is exact in the limit \(\Gamma/m \to 0\).
To implement this approximation in MoMEMta, you need to change the way the Block is fed the s
(propagator mass squared) variable: Instead of retrieving it from the BreitWignerGenerator
module (which adds a dimension to carry out integration over the propagator mass), use this module's output as input to the Block.
This module defines a 'jacobian' factor, important for the normalisation of the likelihood. Formally, the NWA is defined by replacing, in the matrix element, a propagator by a Diract delta function:
\[ \int \! ds \, \left| \mathcal{M} \right|^2 = \int \! ds \, \frac{ \left|\mathcal{M}_d \right|^2}{(s-m^2)^2+(m \Gamma)^2} \to \frac{\pi}{m \Gamma} \int \! ds \, \delta(s-m^2) \left|\mathcal{M}_d \right|^2 \]
where \(\left| \mathcal{M}_d \right|^2\) is the matrix element squared excluding the propagator, and where the factor \(\pi/(m\Gamma)\) is needed because of the normalisation of the Dirac delta:
\(\int_{-\infty}^{+\infty} \! ds \, \delta(s) = 1\), but \( \int_{-\infty}^{+\infty} \! ds \, \frac{1}{(s-m^2)^2+(m \Gamma)^2} = \frac{\pi}{m\Gamma}\).
However, in most of the cases, the matrix element used by the user still includes the propagator (ie, what is used is \(\mathcal{M}\), not \(\mathcal{M}_d\)). The propagator evaluated on \(s=m^2\) is just \((m\Gamma)^{-2}\), so that the normalisation factor becomes \(\pi m \Gamma\).
This module handles both cases, which can be configured through the propagator_in_me
parameter.
Integration dimension
This module requires 0 phase-space point.
Parameters
Name | Type | Description |
---|---|---|
mass | double | Mass of the propagator one wishes to fix. |
width | double | Width of the corresponding particle. |
propagator_in_me | bool, default: true | Whether the propagator is included in the matrix element or not. |
Inputs
None
Outputs
Name | Type | Description |
---|---|---|
s | double | Just \(s=\text{mass}^2\), to be passed to a Block. |
jacobian | double | Overall factor for proper normalisation. |
Definition at line 74 of file NarrowWidthApproximation.cc.
Public Member Functions | |
NarrowWidthApproximation (PoolPtr pool, const ParameterSet ¶meters) | |
Public Member Functions inherited from Module | |
Module (PoolPtr pool, const std::string &name) | |
Constructor. More... | |
virtual void | configure () |
Called once at the beginning of the job. | |
virtual void | beginIntegration () |
Called once at the beginning of the integration. | |
virtual void | beginPoint () |
Called once when a new PS point is started. More... | |
virtual void | beginLoop () |
Called once at the beginning of a loop. More... | |
virtual Status | work () |
Main function. More... | |
virtual void | endLoop () |
Called once at the end of a loop. More... | |
virtual void | endPoint () |
Called once when a PS point is finished. More... | |
virtual void | endIntegration () |
Called once at the end of the integration. | |
virtual void | finish () |
Called once at the end of the job. | |
virtual std::string | name () const final |
Additional Inherited Members | |
Public Types inherited from Module | |
enum | Status : std::int8_t { OK, NEXT, ABORT } |
Static Public Member Functions inherited from Module | |
static std::string | statusToString (const Status &status) |
static bool | is_virtual_module (const std::string &name) |
Test if a given name correspond to a virtual module. More... | |
Protected Member Functions inherited from Module | |
template<typename T , typename... Args> | |
std::shared_ptr< T > | produce (const std::string &name, Args... args) |
Add a new output to the module. More... | |
template<typename T > | |
Value< T > | get (const std::string &module, const std::string &name) |
template<typename T > | |
Value< T > | get (const InputTag &tag) |
Protected Attributes inherited from Module | |
PoolPtr | m_pool |
The documentation for this class was generated from the following file:
- modules/NarrowWidthApproximation.cc