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
include
marley
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
22
namespace
HepMC3 {
23
class
GenParticle
;
24
}
25
26
namespace
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
}
HepMC3::GenParticle
Stores particle-related information.
Definition
GenParticle.h:34
Generated by
1.13.2