Final (main) Block A, describing \(q_1 q_2 \to p_1 + p_2 + X\). More...
Detailed Description
Final (main) Block A, describing \(q_1 q_2 \to p_1 + p_2 + X\).
\(q_1\) and \(q_2\) are Bjorken fractions, \(p_1\) and \(p_2\) are the 4-momenta of the visible particles produced in the process.
This Block addresses the change of variables needed to pass from the standard phase-space parametrization to the \(\frac{1}{16\pi^{2} E_1 E_2} d \theta_1 d \theta_2 d \phi_1 d \phi_2 \times J\) parametrization, where \( \theta_1 \) and \( \theta_2 \) are the polar angles and \( \phi_1 \) and \( \phi_2 \) are the azimuthal angles of the particles labeled with 1 and 2.
The balanced modules \(|p_1|\) and \(|p_2|\) of the visible particles are computed based on the following set of equations:
- \(|p_1| sin \theta_1 cos \phi_1 + |p_2| sin \theta_2 cos \phi_2 = -p_{x}^{branches}\)
- \(|p_1| sin \theta_1 sin \phi_1 + |p_2| sin \theta_2 sin \phi_2 = -p_{y}^{branches}\) i.e. balance of the transverse momentum \( p_{T}^{branches} \) of the particles present in the process.
Only one solution ( \(|p_1|, |p_2|\)) is possible.
Integration dimension
This module requires 0 phase-space point.
Global parameters
Name | Type | Description |
---|---|---|
energy | double | Collision energy. |
Inputs
Name | Type | Description |
---|---|---|
p1 p2 | LorentzVector | 4-vectors of the two particles for which the energy will be fixed using the above described method. Their angles and masses will be kept. |
branches | vector(LorentzVector) | LorentzVector of all the other particles in the event, taken into account when computing \(\vec{p}_{T}^{branches}\) and check if the solutions are physical. At least one other particle must be present for this block to be valid. |
Outputs
Name | Type | Description |
---|---|---|
solutions | vector(Solution) | Solutions of the change of variable. Each solution embeds the LorentzVectors of the balanced visible particles (ie. one \((p_1, p_2)\) pair) and the associated jacobian. |
- Note
- This block has been validated and is safe to use.
- See also
- Looper module to loop over the solutions of this Block
Public Member Functions | |
BlockA (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 |
The documentation for this class was generated from the following file:
- modules/BlockA.cc