MARLEY (Model of Argon Reaction Low Energy Yields) v2.0.0
A Monte Carlo event generator for tens-of-MeV neutrino interactions
Loading...
Searching...
No Matches
marley_kinematics.hh
1
4//
5// This file is part of MARLEY (Model of Argon Reaction Low Energy Yields)
6//
7// MARLEY is free software: you can redistribute it and/or modify it under the
8// terms of version 3 of the GNU General Public License as published by the
9// Free Software Foundation.
10//
11// For the full text of the license please see COPYING or
12// visit http://opensource.org/licenses/GPL-3.0
13//
14// Please respect the MCnet academic usage guidelines. See GUIDELINES
15// or visit https://www.montecarlonet.org/GUIDELINES for details.
16
17#pragma once
18#include <cmath>
19
20#include "marley/Error.hh"
21
22namespace HepMC3 {
23 class GenParticle;
24}
25
26namespace marley_kinematics {
27
28 // Lorentz boost a particle, replacing its energy and momentum with the
29 // boosted versions
30 void lorentz_boost( double beta_x, double beta_y, double beta_z,
31 HepMC3::GenParticle& particle_to_boost );
32
53 void two_body_decay(
54 const std::shared_ptr< HepMC3::GenParticle >& initial_particle,
55 std::shared_ptr< HepMC3::GenParticle >& first_product,
56 std::shared_ptr< HepMC3::GenParticle >& second_product,
57 double cos_theta_first, double phi_first );
58
59 // Rotates a particle's 3-momentum so that it points in the (x, y, z)
60 // direction
61 void rotate_momentum_vector( double x, double y, double z,
62 HepMC3::GenParticle& particle_to_rotate );
63
64 // Gets the square of the total energy in the center of momentum frame for
65 // two particles
66 double get_mandelstam_s( const HepMC3::GenParticle& p1,
67 const HepMC3::GenParticle& p2 );
68
69 // Boost two particles into their mutual center-of-momentum frame
70 void boost_to_cm_frame( HepMC3::GenParticle& p1, HepMC3::GenParticle& p2 );
71}
Stores particle-related information.
Definition GenParticle.h:34