\(\require{cancel}\) Final (main) Block D, describing \(X + s_{134} (\to p_4 + s_{13} (\to \cancel{p_1} p_3)) + s_{256} (\to p_6 + s_{25} (\to \cancel{p_2} p_5))\)
More...
\(\require{cancel}\) Final (main) Block D, describing \(X + s_{134} (\to p_4 + s_{13} (\to \cancel{p_1} p_3)) + s_{256} (\to p_6 + s_{25} (\to \cancel{p_2} p_5))\)
This Block addresses the change of variables needed to pass from the standard phase-space parametrisation for \(p_{1 \dots 6} \times \delta^4\) to a parametrisation in terms of the four (squared) masses of the intermediate propagators.
The integration is performed over \(s_{13}, s_{134}, s_{25}, s_{256}\) with \(p_{3 \dots 6}\) as input. Per integration point, the LorentzVector of the invisible particles, \(p_1\) and \(p_2\), are computed based on the following set of equations:
- \(s_{13} = (p_1 + p_3)^2\)
- \(s_{134} = (p_1 + p_3 + p_4)^2\)
- \(s_{25} = (p_2 + p_5)^2\)
- \(s_{256} = (p_2 + p_5 + p_6)^2\)
- Conservation of momentum (with \(\vec{p}_T^{tot}\) the total transverse momentum of visible particles):
- \(p_{1x} + p_{2x} = - p_{Tx}^{tot}\)
- \(p_{1y} + p_{2y} = - p_{Ty}^{tot}\)
- \(p_1^2 = m_1^2\)
- \(p_2^2 = m_2^2\)
Up to four solutions are possible for \((p_1, p_2)\).
Integration dimension
This module requires 0 phase-space point.
Global parameters
Name | Type | Description |
energy | double | Collision energy. |
Parameters
Name | Type | Description |
pT_is_met | bool, default false | Fix \(\vec{p}_{T}^{tot} = -\vec{\cancel{E_T}}\) or \(\vec{p}_{T}^{tot} = \sum_{i \in \text{ vis}} \vec{p}_i\) |
m1
m2 | double, default 0 | Masses of the invisible particles \(p_1\) and \(p_2\) |
Inputs
Name | Type | Description |
s13
s134
s25
s256 | double | Squared invariant masses of the propagators. Typically coming from a BreitWignerGenerator or NarrowWidthApproximation module. |
p3 ... p6 | LorentzVector | LorentzVectors of the particles used to reconstruct the event according to the above method. |
branches | vector(LorentzVector) | LorentzVectors of all the other particles in the event, taken into account when computing \(\vec{p}_{T}^{tot}\) (if MET is not used), and checking if the solutions are physical. |
met | LorentzVector, default met::p4 | LorentzVector of the MET |
Outputs
Name | Type | Description |
solutions | vector(Solution) | Solutions of the change of variable. Each solution embed the LorentzVectors of the invisible particles (ie. one \((p_1, p_2)\) pair) and the associated jacobian. These solutions should be fed as input to the Looper module. |
- 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 87 of file BlockD.cc.
|
| BlockD (PoolPtr pool, const ParameterSet ¶meters) |
|
virtual Status | work () override |
| Main function. More...
|
|
double | computeJacobian (const LorentzVector &p1, const LorentzVector &p2, const LorentzVector &p3, const LorentzVector &p4, const LorentzVector &p5, const LorentzVector &p6) |
|
| 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 |
|
|
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 |
|