\(\require{cancel}\) Secondary Block E, describing \(s_{123} \to s_{12}(\to p_1 + p_2) + p_3 \) More...
Detailed Description
\(\require{cancel}\) Secondary Block E, describing \(s_{123} \to s_{12}(\to p_1 + p_2) + p_3 \)
This Secondary Block determines \(p_1\)'s and \(p_2\)'s energy using
- \(p_1\) direction and mass
- \(p_2\) direction, assuming \(m_2=0\)
- \(p_3\)
- \(s_{12}\)
- \(s_{123}\)
by solving these equations, for which there are up to four solutions:
- \(s_{12} = (p_1 + p_2)^2\)
- \(s_{123} = (p_1 + p_2 + p_3)^2\)
- \(p_1^2 = m_1^2\)
- \(p_2^2 = 0\).
The standard phase-space parametrization associated with this block reads: \( \frac{d^3 p_1}{(2\pi)^3 2E_1} \frac{d^3 p_2}{(2\pi)^3 2E_2}\). The procedure implies a change of variable leading to the following phase-space parametrization: \( \frac{1}{(2\pi)^6 4 E_1 E_2} d\theta_1 d\phi_1 d\theta_3 d\phi_2 ds_{12} ds_{123} \times J \) (where \(J\) is the jacobian associated with the transformation).
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\)). |
s123 | double | Squared invariant mass of the propagator (GeV \(^2\)). |
p1 p2 | LorentzVector | LorentzVectors of the particles for which we want to compute the energy and momentum. They will be used only to retrieve the particles' direction (and mass for \(p_1\)). |
p3 | LorentzVector | LorentzVector of the decay product used to fully reconstruct \(p_1\) and \(p_2\) (see above description). |
Outputs
Name | Type | Description |
---|---|---|
solutions | vector(Solution) | Solutions of the above equations. Each solution embed the parton level LorentzVectors of \(p_1\) and \(p_2\) and the jacobian associated with the change of variable. |
- Note
- This block has been partially validated and is probably safe to use.
- See also
- Looper module to loop over the solutions of this Block
Definition at line 77 of file SecondaryBlockE.cc.
Public Member Functions | |
SecondaryBlockE (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 90 of file SecondaryBlockE.cc.
The documentation for this class was generated from the following file:
- modules/SecondaryBlockE.cc