Loading [MathJax]/jax/output/HTML-CSS/config.js
hej is hosted by Hepforge, IPPP Durham
HEJ  2.1.4
High energy resummation for hadron colliders
LorentzVector.hh
Go to the documentation of this file.
1 
8 #pragma once
9 
10 #include <complex>
11 #include <utility>
12 
13 #include "CLHEP/Vector/LorentzVector.h"
14 
15 #include "HEJ/Particle.hh"
16 
17 namespace HEJ {
19  inline
20  auto dot(
21  CLHEP::HepLorentzVector const & pi,
22  CLHEP::HepLorentzVector const & pj
23  ) {
24  return pi.dot(pj);
25  }
26 
28  std::complex<double> angle(
29  CLHEP::HepLorentzVector const & pi,
30  CLHEP::HepLorentzVector const & pj
31  );
32 
34  std::complex<double> square(
35  CLHEP::HepLorentzVector const & pi,
36  CLHEP::HepLorentzVector const & pj
37  );
38 
40  inline
41  auto m2(CLHEP::HepLorentzVector const & h1) {
42  return h1.m2();
43  }
44 
46  inline
47  auto plus(CLHEP::HepLorentzVector const & h1) {
48  return h1.plus();
49  }
50 
52  inline
53  auto minus(CLHEP::HepLorentzVector const & h1) {
54  return h1.minus();
55  }
56 
57  inline
58  auto perphat(CLHEP::HepLorentzVector const & h1) {
59  const auto perp = std::complex<double>{h1.x(), h1.y()};
60  return perp/std::abs(perp);
61  }
62 
64 
74  std::pair<CLHEP::HepLorentzVector, CLHEP::HepLorentzVector>
75  split_into_lightlike(CLHEP::HepLorentzVector const & P);
76 
77  inline
78  CLHEP::HepLorentzVector to_HepLorentzVector(fastjet::PseudoJet const & mom){
79  return {mom.px(), mom.py(), mom.pz(), mom.e()};
80  }
81 
82  inline
83  CLHEP::HepLorentzVector to_HepLorentzVector(Particle const & particle){
84  return to_HepLorentzVector(particle.p);
85  }
86 
87  inline
88  fastjet::PseudoJet to_PseudoJet(CLHEP::HepLorentzVector const & mom){
89  return {mom.px(), mom.py(), mom.pz(), mom.e()};
90  }
91 } // namespace HEJ
Contains the particle struct.
Main HEJ 2 Namespace.
Definition: mainpage.dox:1
auto perphat(CLHEP::HepLorentzVector const &h1)
Definition: LorentzVector.hh:58
fastjet::PseudoJet to_PseudoJet(CLHEP::HepLorentzVector const &mom)
Definition: LorentzVector.hh:88
auto plus(CLHEP::HepLorentzVector const &h1)
Plus component.
Definition: LorentzVector.hh:47
auto dot(CLHEP::HepLorentzVector const &pi, CLHEP::HepLorentzVector const &pj)
"dot" product
Definition: LorentzVector.hh:20
std::complex< double > angle(CLHEP::HepLorentzVector const &pi, CLHEP::HepLorentzVector const &pj)
"angle" product angle(pi, pj) = <i j>
CLHEP::HepLorentzVector to_HepLorentzVector(fastjet::PseudoJet const &mom)
Definition: LorentzVector.hh:78
std::pair< CLHEP::HepLorentzVector, CLHEP::HepLorentzVector > split_into_lightlike(CLHEP::HepLorentzVector const &P)
Split a single Lorentz vector into two lightlike Lorentz vectors.
std::complex< double > square(CLHEP::HepLorentzVector const &pi, CLHEP::HepLorentzVector const &pj)
"square" product square(pi, pj) = [i j]
auto m2(CLHEP::HepLorentzVector const &h1)
Invariant mass.
Definition: LorentzVector.hh:41
auto minus(CLHEP::HepLorentzVector const &h1)
Minus component.
Definition: LorentzVector.hh:53
Class representing a particle.
Definition: Particle.hh:24
fastjet::PseudoJet p
particle momentum
Definition: Particle.hh:28