rivet is hosted by Hepforge, IPPP Durham
Rivet 4.0.0
Beams.hh
1// -*- C++ -*-
2#ifndef RIVET_Beams_HH
3#define RIVET_Beams_HH
4
5#include "Rivet/Particle.hh"
6#include "Rivet/Event.hh"
7#include "Rivet/Math/LorentzTrans.hh"
8
9namespace Rivet {
10
11
14
17
18
21
23 inline bool validBeams(const Event& e) {
24 return validBeams(beams(e));
25 }
26
27
29 inline PdgIdPair beamIDs(const ParticlePair& beams) { return pids(beams); }
30
32 inline PdgIdPair beamIDs(const Event& e) { return beamIDs(beams(e)); }
33
34
36 inline PdgIdPair beamEnergies(const ParticlePair& beams) { return energies(beams); }
37
39 inline PdgIdPair beamEnergies(const Event& e) { return beamEnergies(beams(e)); }
40
41
46 double sqrtS(double ea, double eb);
47
52 inline double sqrtS(const pair<double,double>& energies) { return sqrtS(energies.first, energies.second); }
53
55 double sqrtS(const FourMomentum& pa, const FourMomentum& pb);
56
58 inline double sqrtS(const ParticlePair& beams) {
59 return sqrtS(beams.first.momentum(), beams.second.momentum());
60 }
61
63 inline double sqrtS(const Event& e) { return sqrtS(beams(e)); }
64
65
68 double asqrtS(const FourMomentum& pa, const FourMomentum& pb);
69
72 double asqrtS(const ParticlePair& beams);
73
76 inline double asqrtS(const Event& e) { return asqrtS(beams(e)); }
77
78
80 inline FourMomentum cmsBoostVec(const FourMomentum& pa, const FourMomentum& pb) {
81 return pa + pb;
82 }
83
86 return cmsBoostVec(beams.first, beams.second);
87 }
88
91
94
95
98
101 return cmsBetaVec(beams.first, beams.second);
102 }
103
104
108
112
113
116
119 return cmsGammaVec(beams.first, beams.second);
120 }
121
122
126
130
131
134
137 return cmsTransform(beams.first, beams.second);
138 }
139
140
144
148
150
151
152}
153
154#endif
Representation of a HepMC event, and enabler of Projection caching.
Definition Event.hh:22
Specialized version of the FourVector with momentum/energy functionality.
Definition Vector4.hh:316
Object implementing Lorentz transform calculations and boosts.
Definition LorentzTrans.hh:21
Three-dimensional specialisation of Vector.
Definition Vector3.hh:40
PdgIdPair beamIDs(const ParticlePair &beams)
Get beam particle IDs from a pair of Particles.
Definition Beams.hh:29
Vector3 cmsGammaVec(const FourMomentum &pa, const FourMomentum &pb)
Get the Lorentz boost to the beam centre-of-mass system (CMS) from a pair of beam momenta.
double sqrtS(double ea, double eb)
Get beam centre-of-mass energy from a pair of beam energies.
double asqrtS(const FourMomentum &pa, const FourMomentum &pb)
FourMomentum cmsBoostVec(const FourMomentum &pa, const FourMomentum &pb)
Get the Lorentz boost to the beam centre-of-mass system (CMS) from a pair of beam momenta.
Definition Beams.hh:80
FourMomentum acmsBoostVec(const FourMomentum &pa, const FourMomentum &pb)
Get the Lorentz boost to the beam centre-of-mass system (CMS) from a pair of beam momenta.
bool validBeams(const ParticlePair &beams)
Check if the given beam pair is valid.
Vector3 acmsBetaVec(const FourMomentum &pa, const FourMomentum &pb)
Vector3 acmsGammaVec(const FourMomentum &pa, const FourMomentum &pb)
Vector3 cmsBetaVec(const FourMomentum &pa, const FourMomentum &pb)
Get the Lorentz boost to the beam centre-of-mass system (CMS) from a pair of beam momenta.
PdgIdPair beamEnergies(const ParticlePair &beams)
Get beam particle energies from a pair of Particles.
Definition Beams.hh:36
LorentzTransform acmsTransform(const FourMomentum &pa, const FourMomentum &pb)
LorentzTransform cmsTransform(const FourMomentum &pa, const FourMomentum &pb)
Get the Lorentz transformation to the beam centre-of-mass system (CMS) from a pair of beam momenta.
ParticlePair beams(const Event &e)
Get beam particles from an event.
PdgIdPair pids(const ParticlePair &pp)
Get the PDG ID codes of a ParticlePair.
Definition ParticleUtils.hh:717
Definition MC_CENT_PPB_Projections.hh:10
std::pair< Particle, Particle > ParticlePair
Typedef for a pair of Particle objects.
Definition Particle.hh:38