SecondaryBlockB Class Reference

\(\require{cancel}\) Secondary Block B, describing \(s_{123} \to s_{12}(\to \cancel{p_1} + p_2) + p_3 \) More...

Detailed Description

\(\require{cancel}\) Secondary Block B, describing \(s_{123} \to s_{12}(\to \cancel{p_1} + p_2) + p_3 \)

This Secondary Block determines \(p_1^T\) and \(p_1^z\) using

  • \(p_1\) phi angle and mass
  • \(p_2\)
  • \(p_3\)
  • \(s_{12}\)
  • \(s_{123}\)

by solving the equations :

  • \(s_{12} = (p_1 + p_2)^2\)
  • \(s_{123} = (p_1 + p_2 + p_3)^2\).

The value of E1 is fixed using the mass-shell condition.

The standard phase-space parametrization associated with this block reads: \( \frac{d^3p_1}{(2\pi)^32E_1}\). The procedure implies a change of variable leading to the following phase-space parametrization: \( \frac{1}{(2\pi)^32E_1}d\phi_1ds_{12}ds_{123}\times J \) with the jacobian \( J = \frac{E_1 |\boldsymbol{p_1}|^2 \sin\theta_1}{2|E_2|\boldsymbol{p_1}|-E_1|\boldsymbol{p_2}|\cos\theta_{12}|} \).

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 LorentzVector LorentzVector of the missing particle we want to reconstruct. It will be used only to retrieve the particle phi angle and mass.
p2
p3
LorentzVector LorentzVectors of the two decay products used to reconstruct fully p1 (see above description).

Outputs

Name Type Description
solutions vector(Solution) Solutions of the equations \(s_{12} = (p_1 + p_2)^2\) and \(s_{123} = (p_1 + p_2 + p_3)^2\). Each solution embed the parton level LorentzVector of the missing product \(p_1\) and the jacobian associated with the change of variable mentioned above.
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 SecondaryBlockB.cc.

Inheritance diagram for SecondaryBlockB:

Public Member Functions

 SecondaryBlockB (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 SecondaryBlockB::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 SecondaryBlockB.cc.


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