2#ifndef RIVET_DISKinematics_HH
3#define RIVET_DISKinematics_HH
5#include "Rivet/Particle.hh"
6#include "Rivet/Event.hh"
7#include "Rivet/Projection.hh"
8#include "Rivet/Projections/DISLepton.hh"
9#include "Rivet/Projections/Beam.hh"
24 : _theQ2(-1.0), _theW2(-1.0), _theX(-1.0), _theY(-1.0), _theS(-1.0), _theGH(-1.0)
36 using Projection::operator =;
54 double Q2()
const {
return _theQ2; }
57 double W2()
const {
return _theW2; }
60 double x()
const {
return _theX; }
63 double y()
const {
return _theY; }
66 double s()
const {
return _theS; }
102 return sign(_inHadron.pz());
127 Particle _inHadron, _inLepton, _outLepton;
Project out the incoming beams.
Definition Beam.hh:15
Get the DIS kinematic variables and relevant boosts for an event.
Definition DISKinematics.hh:19
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:79
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:101
double y() const
The inelasticity .
Definition DISKinematics.hh:63
double Q2() const
The , i.e. the virtuality of the DIS photon.
Definition DISKinematics.hh:54
double W2() const
The , i.e. the squared CoM energy of the DIS-photon+hadron system.
Definition DISKinematics.hh:57
const Particle & beamHadron() const
The incoming hadron beam particle.
Definition DISKinematics.hh:84
double x() const
The Bjorken .
Definition DISKinematics.hh:60
const Particle & beamLepton() const
The incoming lepton beam particle.
Definition DISKinematics.hh:89
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:94
double gammahad() const
The angle .
Definition DISKinematics.hh:69
const LorentzTransform & boostHCM() const
The LorentzRotation needed to boost a particle to the hadronic CM frame.
Definition DISKinematics.hh:74
double s() const
The centre of mass energy .
Definition DISKinematics.hh:66
Get the incoming and outgoing leptons in a DIS event.
Definition DISLepton.hh:18
Representation of a HepMC event, and enabler of Projection caching.
Definition Event.hh:22
Particle representation, either from a HepMC::GenEvent or reconstructed.
Definition Particle.hh:45
const PROJ & declare(const PROJ &proj, const std::string &name) const
Register a contained projection (user-facing version)
Definition ProjectionApplier.hh:175
Base class for all Rivet projections.
Definition Projection.hh:29
void setName(const std::string &name)
Used by derived classes to set their name.
Definition Projection.hh:148
Definition MC_CENT_PPB_Projections.hh:10
constexpr std::enable_if_t< std::is_arithmetic_v< NUM >, int > sign(NUM val)
Find the sign of a number.
Definition MathUtils.hh:264
DISFrame
Type of DIS boost to apply.
Definition DISKinematics.hh:15