Rivet API documentation

Rivet 4.1.3
DISKinematics.hh
1// -*- C++ -*-
2#ifndef RIVET_DISKinematics_HH
3#define RIVET_DISKinematics_HH
4
5#include "Rivet/Event.hh"
6#include "Rivet/Particle.hh"
7#include "Rivet/Projection.hh"
8#include "Rivet/Projections/Beam.hh"
9#include "Rivet/Projections/DISLepton.hh"
10
11namespace Rivet {
12
13
15 enum class DISFrame { HCM, XCM, BREIT, LAB };
16
17
19 class DISKinematics : public Projection {
20 public:
21
24 : _theQ2(-1.0), _theW2(-1.0), _theX(-1.0), _theY(-1.0), _theS(-1.0), _theGH(-1.0) {
25 setName("DISKinematics");
26 //addPdgIdPair(ANY, hadid);
27 declare(Beam(), "Beam");
28 declare(lepton, "Lepton");
29 }
30
33
35 using Projection::operator=;
36
37
38 protected:
39
41 virtual void project(const Event& e);
42
44 virtual CmpState compare(const Projection& p) const;
45
46
47 public:
48
53 double Q2() const {
54 return _theQ2;
55 }
56
58 double W2() const {
59 return _theW2;
60 }
61
63 double x() const {
64 return _theX;
65 }
66
68 double y() const {
69 return _theY;
70 }
71
73 double s() const {
74 return _theS;
75 }
76
78 double gammahad() const {
79 return _theGH;
80 }
81
82
84 const LorentzTransform& boostHCM() const {
85 return _hcm;
86 }
87
90 return _breit;
91 }
92
94 const Particle& beamHadron() const {
95 return _inHadron;
96 }
97
99 const Particle& beamLepton() const {
100 return _inLepton;
101 }
102
104 const Particle& scatteredLepton() const {
105 return _outLepton;
106 }
107
111 int orientation() const {
112 return sign(_inHadron.pz());
113 }
114
115
116 protected:
117
119 double _theQ2;
120
122 double _theW2;
123
125 double _theX;
126
128 double _theY;
129
131 double _theS;
133 double _theGH;
134
135
137 Particle _inHadron, _inLepton, _outLepton;
138
140 LorentzTransform _hcm;
141
143 LorentzTransform _breit;
144 };
145
146
147}
148
149#endif
Project out the incoming beams.
Definition Beam.hh:15
virtual CmpState compare(const Projection &p) const
Compare with other projections.
const LorentzTransform & boostBreit() const
The LorentzRotation needed to boost a particle to the hadronic Breit frame.
Definition DISKinematics.hh:89
RIVET_DEFAULT_PROJ_CLONE(DISKinematics)
Clone on the heap.
int orientation() const
1/-1 multiplier indicating (respectively) whether the event has conventional orientation or not
Definition DISKinematics.hh:111
double y() const
The inelasticity .
Definition DISKinematics.hh:68
double Q2() const
The , i.e. the virtuality of the DIS photon.
Definition DISKinematics.hh:53
double W2() const
The , i.e. the squared CoM energy of the DIS-photon+hadron system.
Definition DISKinematics.hh:58
const Particle & beamHadron() const
The incoming hadron beam particle.
Definition DISKinematics.hh:94
double x() const
The Bjorken .
Definition DISKinematics.hh:63
const Particle & beamLepton() const
The incoming lepton beam particle.
Definition DISKinematics.hh:99
DISKinematics(const DISLepton &lepton=DISLepton())
The default constructor.
Definition DISKinematics.hh:23
virtual void project(const Event &e)
Perform the projection operation on the supplied event.
const Particle & scatteredLepton() const
The scattered DIS lepton.
Definition DISKinematics.hh:104
double gammahad() const
The angle .
Definition DISKinematics.hh:78
const LorentzTransform & boostHCM() const
The LorentzRotation needed to boost a particle to the hadronic CM frame.
Definition DISKinematics.hh:84
double s() const
The centre of mass energy .
Definition DISKinematics.hh:73
Get the incoming and outgoing leptons in a DIS event.
Definition DISLepton.hh:20
Object implementing Lorentz transform calculations and boosts.
Definition LorentzTrans.hh:21
Particle representation, either from a HepMC::GenEvent or reconstructed.
Definition Particle.hh:50
const PROJ & declare(const PROJ &proj, const std::string &name) const
Register a contained projection (user-facing version).
Definition ProjectionApplier.hh:205
Projection()
The default constructor.
friend class Event
Event is a friend.
Definition Projection.hh:33
void setName(const std::string &name)
Used by derived classes to set their name.
Definition Projection.hh:146
double p(const ParticleBase &p)
Unbound function access to p.
Definition ParticleBaseUtils.hh:819
Definition LHCbCommon.hh:9
constexpr std::enable_if_t< std::is_arithmetic_v< NUM >, int > sign(NUM val)
Find the sign of a number.
Definition MathUtils.hh:295
DISFrame
Type of DIS boost to apply.
Definition DISKinematics.hh:15