Rivet 3.1.9
DISRapidityGap.hh
1// -*- C++ -*-
2#ifndef RIVET_DISRapidityGap_HH
3#define RIVET_DISRapidityGap_HH
4
5#include "Rivet/Projections/DISKinematics.hh"
6#include "Rivet/Projections/DISFinalState.hh"
7#include "Rivet/Particle.hh"
8#include "Rivet/Event.hh"
9
10namespace Rivet {
11
12
14 class DISRapidityGap : public Projection {
15 public:
16
18 enum Frame { HCM, LAB, XCM };
19
21 setName("DISRapidityGap");
22 declare(DISKinematics(), "DISKIN");
23 declare(DISFinalState(DISFinalState::BoostFrame::HCM), "DISFS");
24 }
25
26 DEFAULT_RIVET_PROJ_CLONE(DISRapidityGap);
27
29 using Projection::operator =;
30
32 double t() const { return _t; }
33
35 double gap() const { return _gap; }
36
38 double gapUpper() const { return _gapUpp; }
39
41 double gapLower() const { return _gapLow; }
42
44 double epPzX(Frame f) const {
45 if (f == LAB) return _ePpzX_LAB;
46 else if (f == XCM) return _ePpzX_XCM;
47 else return _ePpzX_HCM;
48 }
49
51 const double emPzX(Frame f) const {
52 if (f == LAB) return _eMpzX_LAB;
53 else if (f == XCM) return _eMpzX_XCM;
54 else return _eMpzX_HCM;
55 }
56
57
61 const Particles& systemX(Frame f) const {
62 if (f == LAB) return _pX_LAB;
63 else if (f == XCM) return _pX_XCM;
64 else return _pX_HCM;
65 }
66
70 const Particles& systemY(Frame f) const {
71 if (f == LAB) return _pY_LAB;
72 else if (f == XCM) return _pY_XCM;
73 else return _pY_HCM;
74 }
75
79 const FourMomentum pX(Frame f) const {
80 if (f == LAB) return _momX_LAB;
81 else if (f == XCM) return _momX_XCM;
82 else return _momX_HCM;
83 }
84
88 const FourMomentum pY(Frame f) const {
89 if (f == LAB) return _momY_LAB;
90 else if (f == XCM) return _momY_XCM;
91 else return _momY_HCM;
92 }
93
97 double m2X() const { return _M2X; }
98
102 double m2Y() const { return _M2Y; }
103
104
105 protected:
106
107 virtual CmpState compare(const Projection& p) const;
108
109 virtual void project(const Event& e);
110
111 void clear();
112
113 void findGap(const Particles& particles, const DISKinematics& diskin);
114
115
116 protected:
117
118 double _M2X, _M2Y, _t;
119 double _gap, _gapUpp, _gapLow;
120 double _ePpzX_LAB, _eMpzX_LAB;
121 double _ePpzX_HCM, _eMpzX_HCM;
122 double _ePpzX_XCM, _eMpzX_XCM;
123 FourMomentum _momX_HCM, _momY_HCM;
124 FourMomentum _momX_LAB, _momY_LAB;
125 FourMomentum _momX_XCM, _momY_XCM;
126 Particles _pX_HCM, _pY_HCM, _pX_LAB, _pY_LAB, _pX_XCM, _pY_XCM;
127
128 };
129
130
131}
132
133#endif
Final state particles boosted to the hadronic center of mass system.
Definition DISFinalState.hh:14
Get the DIS kinematic variables and relevant boosts for an event.
Definition DISKinematics.hh:15
Get the incoming and outgoing hadron in a diffractive ep event.
Definition DISRapidityGap.hh:14
const Particles & systemY(Frame f) const
Definition DISRapidityGap.hh:70
const FourMomentum pY(Frame f) const
Definition DISRapidityGap.hh:88
double gapUpper() const
The upper edge of the largest gap, relative to the DIS event orientation.
Definition DISRapidityGap.hh:38
virtual void project(const Event &e)
Frame
Type of DIS boost to apply.
Definition DISRapidityGap.hh:18
virtual CmpState compare(const Projection &p) const
double epPzX(Frame f) const
Definition DISRapidityGap.hh:44
const double emPzX(Frame f) const
Definition DISRapidityGap.hh:51
double gap() const
The absolute size of the largest rapidity gap.
Definition DISRapidityGap.hh:35
double m2X() const
Definition DISRapidityGap.hh:97
const FourMomentum pX(Frame f) const
Definition DISRapidityGap.hh:79
const Particles & systemX(Frame f) const
Definition DISRapidityGap.hh:61
double gapLower() const
The lower edge of the largest gap, relative to the DIS event orientation.
Definition DISRapidityGap.hh:41
double m2Y() const
Definition DISRapidityGap.hh:102
double t() const
DIS momentum transfer variable, t.
Definition DISRapidityGap.hh:32
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
Specialised vector of Particle objects.
Definition Particle.hh:25
const PROJ & declare(const PROJ &proj, const std::string &name)
Register a contained projection (user-facing version)
Definition ProjectionApplier.hh:170
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:142
double p(const ParticleBase &p)
Unbound function access to p.
Definition ParticleBaseUtils.hh:684
Definition MC_Cent_pPb.hh:10