Rivet: /Users/chrisg/software/rivet/include/Rivet/Projections/Beam.hh Source File

| Rivet 3.1.9

Beam.hh
1// -*- C++ -*-
2#ifndef RIVET_Beam_HH
3#define RIVET_Beam_HH
4
5#include "Rivet/Projection.hh"
6#include "Rivet/Event.hh"
7#include "Rivet/Particle.hh"
8#include "Rivet/Math/LorentzTrans.hh"
9
10namespace Rivet {
11
12
14
15
17 ParticlePair beams(const Event& e);
18
21 inline PdgIdPair beamIds(const ParticlePair& beams) { return pids(beams); }
22
25 inline PdgIdPair beamIds(const Event& e) { return pids(beams(e)); }
26
27
29 double sqrtS(const FourMomentum& pa, const FourMomentum& pb);
30
32 inline double sqrtS(const ParticlePair& beams) {
33 return sqrtS(beams.first.momentum(), beams.second.momentum());
34 }
35
37 inline double sqrtS(const Event& e) { return sqrtS(beams(e)); }
38
39
42 double asqrtS(const FourMomentum& pa, const FourMomentum& pb);
43
46 double asqrtS(const ParticlePair& beams);
47
50 inline double asqrtS(const Event& e) { return asqrtS(beams(e)); }
51
52
54 inline FourMomentum cmsBoostVec(const FourMomentum& pa, const FourMomentum& pb) {
55 return pa + pb;
56 }
57
59 inline FourMomentum cmsBoostVec(const ParticlePair& beams) {
60 return cmsBoostVec(beams.first, beams.second);
61 }
62
64 FourMomentum acmsBoostVec(const FourMomentum& pa, const FourMomentum& pb);
65
67 FourMomentum acmsBoostVec(const ParticlePair& beams);
68
69
71 Vector3 cmsBetaVec(const FourMomentum& pa, const FourMomentum& pb);
72
74 inline Vector3 cmsBetaVec(const ParticlePair& beams) {
75 return cmsBetaVec(beams.first, beams.second);
76 }
77
78
81 Vector3 acmsBetaVec(const FourMomentum& pa, const FourMomentum& pb);
82
85 Vector3 acmsBetaVec(const ParticlePair& beams);
86
87
89 Vector3 cmsGammaVec(const FourMomentum& pa, const FourMomentum& pb);
90
92 inline Vector3 cmsGammaVec(const ParticlePair& beams) {
93 return cmsGammaVec(beams.first, beams.second);
94 }
95
96
99 Vector3 acmsGammaVec(const FourMomentum& pa, const FourMomentum& pb);
100
103 Vector3 acmsGammaVec(const ParticlePair& beams);
104
105
107 LorentzTransform cmsTransform(const FourMomentum& pa, const FourMomentum& pb);
108
110 inline LorentzTransform cmsTransform(const ParticlePair& beams) {
111 return cmsTransform(beams.first, beams.second);
112 }
113
114
117 LorentzTransform acmsTransform(const FourMomentum& pa, const FourMomentum& pb);
118
121 LorentzTransform acmsTransform(const ParticlePair& beams);
122
124
125
126
127
129 class Beam : public Projection {
130 public:
131
133 Beam() { setName("Beam"); }
134
136 DEFAULT_RIVET_PROJ_CLONE(Beam);
137
138
140
141
143 const ParticlePair& beams() const { return _theBeams; }
144
147 PdgIdPair beamIds() const { return pids(beams()); }
148
150 double sqrtS() const { return Rivet::sqrtS(beams()); }
151
153 FourMomentum cmsBoostVec() const { return Rivet::cmsBoostVec(beams()); }
154
156 LorentzTransform cmsTransform() const { return Rivet::cmsTransform(beams()); }
157
159 Vector3 cmsBetaVec() const { return Rivet::cmsBetaVec(beams()); }
160
162 Vector3 cmsGammaVec() const { return Rivet::cmsGammaVec(beams()); }
163
165
166
168
169
171 double asqrtS() const { return Rivet::asqrtS(beams()); }
172
174 Vector3 acmsBetaVec() const { return Rivet::acmsBetaVec(beams()); }
175
177 Vector3 acmsGammaVec() const { return Rivet::acmsGammaVec(beams()); }
178
180 LorentzTransform acmsTransform() const { return Rivet::acmsTransform(beams()); }
181
183
184
186 FourVector pv() const;
187
188
190 virtual void project(const Event& e);
191
192
194 using Projection::operator =;
195
196
197 protected:
198
200 ParticlePair _theBeams;
201
202
203 protected:
204
206 virtual CmpState compare(const Projection&) const { return CmpState::EQ; }
207
208 };
209
210
211}
212
213#endif
Rivet::Beam
Project out the incoming beams.
Definition Beam.hh:129
Rivet::Beam::acmsTransform
LorentzTransform acmsTransform() const
Get the Lorentz transform to the per-nucleon beam centre-of-mass.
Definition Beam.hh:180
Rivet::Beam::cmsGammaVec
Vector3 cmsGammaVec() const
Get the gamma factor vector for the Lorentz boost to the beam centre-of-mass.
Definition Beam.hh:162
Rivet::Beam::acmsGammaVec
Vector3 acmsGammaVec() const
Get the Lorentz boost to the per-nucleon beam centre-of-mass.
Definition Beam.hh:177
Rivet::Beam::sqrtS
double sqrtS() const
Get centre of mass energy, .
Definition Beam.hh:150
Rivet::Beam::cmsBetaVec
Vector3 cmsBetaVec() const
Get the beta factor vector for the Lorentz boost to the beam centre-of-mass.
Definition Beam.hh:159
Rivet::Beam::cmsTransform
LorentzTransform cmsTransform() const
Get the Lorentz transform to the beam centre-of-mass.
Definition Beam.hh:156
Rivet::Beam::compare
virtual CmpState compare(const Projection &) const
Compare with other projections – it's always the same, since there are no params.
Definition Beam.hh:206
Rivet::Beam::asqrtS
double asqrtS() const
Get per-nucleon centre of mass energy, .
Definition Beam.hh:171
Rivet::Beam::Beam
Beam()
Default (and only) constructor.
Definition Beam.hh:133
Rivet::Beam::DEFAULT_RIVET_PROJ_CLONE
DEFAULT_RIVET_PROJ_CLONE(Beam)
Clone on the heap.
Rivet::Beam::acmsBetaVec
Vector3 acmsBetaVec() const
Get the Lorentz boost to the per-nucleon beam centre-of-mass.
Definition Beam.hh:174
Rivet::Beam::beamIds
PdgIdPair beamIds() const
Definition Beam.hh:147
Rivet::Beam::project
virtual void project(const Event &e)
Project on to the Event.
Rivet::Beam::beams
const ParticlePair & beams() const
The pair of beam particles in the current collision.
Definition Beam.hh:143
Rivet::Beam::pv
FourVector pv() const
Get the beam interaction primary vertex (PV) position.
Rivet::Beam::cmsBoostVec
FourMomentum cmsBoostVec() const
Get the Lorentz boost to the beam centre-of-mass.
Definition Beam.hh:153
Rivet::Event
Representation of a HepMC event, and enabler of Projection caching.
Definition Event.hh:22
Rivet::FourMomentum
Specialized version of the FourVector with momentum/energy functionality.
Definition Vector4.hh:316
Rivet::FourVector
Specialisation of VectorN to a general (non-momentum) Lorentz 4-vector.
Definition Vector4.hh:30
Rivet::LorentzTransform
Object implementing Lorentz transform calculations and boosts.
Definition LorentzTrans.hh:21
Rivet::Projection
Base class for all Rivet projections.
Definition Projection.hh:29
Rivet::Projection::setName
void setName(const std::string &name)
Used by derived classes to set their name.
Definition Projection.hh:142
Rivet::Vector3
Three-dimensional specialisation of Vector.
Definition Vector3.hh:40
Rivet::pids
PdgIdPair pids(const ParticlePair &pp)
Definition ParticleUtils.hh:749
Rivet
Definition MC_Cent_pPb.hh:10
Rivet::cmsGammaVec
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.
Rivet::ParticlePair
std::pair< Particle, Particle > ParticlePair
Typedef for a pair of Particle objects.
Definition Particle.hh:42
Rivet::asqrtS
double asqrtS(const FourMomentum &pa, const FourMomentum &pb)
Rivet::cmsBoostVec
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 Beam.hh:54
Rivet::acmsBoostVec
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.
Rivet::acmsBetaVec
Vector3 acmsBetaVec(const FourMomentum &pa, const FourMomentum &pb)
Rivet::acmsGammaVec
Vector3 acmsGammaVec(const FourMomentum &pa, const FourMomentum &pb)
Rivet::cmsBetaVec
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.
Rivet::acmsTransform
LorentzTransform acmsTransform(const FourMomentum &pa, const FourMomentum &pb)
Rivet::cmsTransform
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.
Rivet::beamIds
PdgIdPair beamIds(const ParticlePair &beams)
Definition Beam.hh:21
Rivet::beams
ParticlePair beams(const Event &e)
Get beam particles from an event.
Rivet::sqrtS
double sqrtS(const FourMomentum &pa, const FourMomentum &pb)
Get beam centre-of-mass energy from a pair of beam momenta.