Secondary Block C/D, describing \(s_{12} \to p_1 + p_2\). More...
Detailed Description
Secondary Block C/D, describing \(s_{12} \to p_1 + p_2\).
This Secondary Block determine the energy \(E_1\) of \(p_1\) knowing the following quantities:
- \(p_1\) angles and mass
- \(p_2\)
- \(s_{12}\)
by solving the equation \(s_{12} = (p_1 + p_2)^2\). It is useful if one wants to trade the degree of freedom \(E_1\) for the propagator squared mass \(s_{12}\), ensuring thus to probe phase space points close to the resonance. This is particularly interesting when the transfer function on \(E_1\) is broad and would often lead to phase-space points where \((p_1 + p_2)\) mass are in the tail of the resonance Breit-Wigner. NB: this secondary block can be fed either with the output of the BreitWignerGenerator
module if one wants to integrate over the mass resonance or with the output of the NarrowWidthApproximation
module if one wants a fixed mass.
The standard phase-space parametrization associated with this block reads: \( \frac{d^3p_1}{(2\pi)^32E_1}\). The procedure implies a change of variable leading to the following phase-space parametrization: \( \frac{1}{(2\pi)^32E_1}d\phi_1d\theta_1ds_{12}\times J \), where \( \theta_1 \) and \( \phi_1 \) denote the polar and azimutal angles of the decay product for which we want to determine the energy. The jacobian \( J \) of the transformation is given by \( J = \frac{E_1 |\boldsymbol{p_1}|^2 \sin\theta_1}{2|E_2|\boldsymbol{p_1}|-E_1|\boldsymbol{p_2}|\cos\theta_{12}|} \). There are up to two solutions for \(E_1\).
Integration dimension
This module requires 0 phase-space point.
Global parameters
Name | Type | Description |
---|---|---|
energy | double | Collision energy. |
Inputs
Name | Type | Description |
---|---|---|
s12 | double | Squared invariant mass of the propagator (GeV \(^2\)). |
p1 | LorentzVector | Reconstructed LorentzVector of the decay product for which we want to fix the energy. This LorentzVector will be used only to retrieve the particle angles and mass, its energy will be disregarded. |
p2 | LorentzVector | Parton level LorentzVector of the decay product for which we already know everything. It will be used together with \(s_{12}\) and the angles of \(p_1^{reco}\) to fix \(p_1^{gen}\) energy. |
Outputs
Name | Type | Description |
---|---|---|
solutions | vector(Solution) | Solutions of the above system for p1 . Each solution embed the parton level LorentzVector of the reconstructed decay product and the jacobian associated with the change of variable mentioned above. |
- Note
- This block has been validated and is safe to use.
- See also
- Looper module to loop over the solutions of this Block
Definition at line 70 of file SecondaryBlockCD.cc.
Public Member Functions | |
SecondaryBlockCD (PoolPtr pool, const ParameterSet ¶meters) | |
virtual Status | work () override |
Main function. More... | |
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 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 |
Member Function Documentation
◆ work()
|
inlineoverridevirtual |
Main function.
This method is called for each integration step. The module's logic and work happen here.
You'll usually want to override this function if you want your module to perform some task.
Reimplemented from Module.
Definition at line 82 of file SecondaryBlockCD.cc.
The documentation for this class was generated from the following file:
- modules/SecondaryBlockCD.cc