Search Results
\require{cancel} Secondary Block A, describing s_{1234} \to ( s_{123} \to s_{12}(\to \cancel{p_1} + p_2) + p_3 ) + p_4 More...
Detailed Description
\require{cancel} Secondary Block A, describing s_{1234} \to ( s_{123} \to s_{12}(\to \cancel{p_1} + p_2) + p_3 ) + p_4
This Secondary Block reconstructs p_1 using:
- p_1's mass
- p_2, p_3 and p_4
- s_{12}, s_{123} and s_{1234}
by solving these equations, for which there are up to two solutions:
- s_{12} = (p_1 + p_2)^2
- s_{123} = (p_1 + p_2 + p_3)^2
- s_{1234} = (p_1 + p_2 + p_3 + p_4)^2
- p_1^2 = m_1^2
The standard phase-space parametrization associated with this block reads: \frac{d^3 p_1}{(2\pi)^3 2E_1}. The procedure implies a change of variable leading to the following phase-space parametrization: \frac{1}{(2\pi)^3 2 E_1} ds_{12} ds_{123} ds_{1234} \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. |
Parameters
Name | Type | Description |
---|---|---|
m1 | double, default 0 | Mass of the invisible particle p_1. |
Inputs
Name | Type | Description |
---|---|---|
s12 s123 s1234 | double | Squared invariant mass of the propagators (GeV ^2). |
p2 p3 p4 | LorentzVector | LorentzVector of the decay products used to reconstruct p_1 (see above description). |
Outputs
Name | Type | Description |
---|---|---|
solutions | vector(Solution) | Solutions of the above equations. Each solution embed the parton level LorentzVector of p_1 and the jacobian associated with the change of variable. |
- Note
- This block has not yet been validated. Use at your own risk.
- See also
- Looper module to loop over the solutions of this Block
Definition at line 79 of file SecondaryBlockA.cc.

Public Member Functions | |
SecondaryBlockA (PoolPtr pool, const ParameterSet ¶meters) | |
virtual Status | work () override |
Main function. More... | |
![]() | |
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 | |
![]() | |
enum | Status : std::int8_t { OK, NEXT, ABORT } |
![]() | |
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... | |
![]() | |
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) |
![]() | |
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 95 of file SecondaryBlockA.cc.
The documentation for this class was generated from the following file:
- modules/SecondaryBlockA.cc