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

Definition at line 78 of file BlockA.cc.

Inheritance diagram for BlockA:

Public Member Functions

 BlockA (PoolPtr pool, const ParameterSet &parameters)
 
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()

virtual Status BlockA::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 98 of file BlockA.cc.


The documentation for this class was generated from the following file: