NarrowWidthApproximation Class Reference

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.

Inheritance diagram for NarrowWidthApproximation:

Public Member Functions

 NarrowWidthApproximation (PoolPtr pool, const ParameterSet &parameters)
 
- 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: