rivet is hosted by Hepforge, IPPP Durham
Rivet 4.0.0
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
16 public:
17
19 setName("DISRapidityGap");
20 declare(DISKinematics(), "DISKIN");
21 declare(DISFinalState(DISFrame::HCM), "DISFS");
22 }
23
24 RIVET_DEFAULT_PROJ_CLONE(DISRapidityGap);
25
27 using Projection::operator =;
28
30 double t() const { return _t; }
31
33 double gap() const { return _gap; }
34
36 double gapUpp() const { return _gapUpp; }
37
39 double gapLow() const { return _gapLow; }
40
42 double EpPzX(const DISFrame& f) const {
43 if (f == DISFrame::LAB) return _ePpzX_LAB;
44 else if (f == DISFrame::XCM) return _ePpzX_XCM;
45 else return _ePpzX_HCM;
46 }
47
49 double emPzX(const DISFrame& f) const {
50 if (f == DISFrame::LAB) return _eMpzX_LAB;
51 else if (f == DISFrame::XCM) return _eMpzX_XCM;
52 else return _eMpzX_HCM;
53 }
54
55
59 const Particles& systemX(const DISFrame& f) const {
60 if (f == DISFrame::LAB) return _pX_LAB;
61 else if (f == DISFrame::XCM) return _pX_XCM;
62 else return _pX_HCM;
63 }
64
68 const Particles& systemY(const DISFrame& f) const {
69 if (f == DISFrame::LAB) return _pY_LAB;
70 else if (f == DISFrame::XCM) return _pY_XCM;
71 else return _pY_HCM;
72 }
73
77 const FourMomentum pX(const DISFrame& f) const {
78 if (f == DISFrame::LAB) return _momX_LAB;
79 else if (f == DISFrame::XCM) return _momX_XCM;
80 else return _momX_HCM;
81 }
82
86 const FourMomentum pY(const DISFrame& f) const {
87 if (f == DISFrame::LAB) return _momY_LAB;
88 else if (f == DISFrame::XCM) return _momY_XCM;
89 else return _momY_HCM;
90 }
91
95 double m2X() const { return _M2X; }
96
100 double m2Y() const { return _M2Y; }
101
102
103 protected:
104
105 virtual CmpState compare(const Projection& p) const;
106
107 virtual void project(const Event& e);
108
109 void clear();
110
111 void findGap(const Particles& particles, const DISKinematics& diskin);
112
113
114 protected:
115
116 double _M2X, _M2Y, _t;
117 double _gap, _gapUpp, _gapLow;
118 double _ePpzX_LAB, _eMpzX_LAB;
119 double _ePpzX_HCM, _eMpzX_HCM;
120 double _ePpzX_XCM, _eMpzX_XCM;
121 FourMomentum _momX_HCM, _momY_HCM;
122 FourMomentum _momX_LAB, _momY_LAB;
123 FourMomentum _momX_XCM, _momY_XCM;
124 Particles _pX_HCM, _pY_HCM, _pX_LAB, _pY_LAB, _pX_XCM, _pY_XCM;
125
126 };
127
128
129}
130
131#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:19
Get the incoming and outgoing hadron in a diffractive ep event.
Definition DISRapidityGap.hh:14
double EpPzX(const DISFrame &f) const
Definition DISRapidityGap.hh:42
double gapUpp() const
The upper edge of the largest gap, relative to the DIS event orientation.
Definition DISRapidityGap.hh:36
const Particles & systemY(const DISFrame &f) const
Definition DISRapidityGap.hh:68
const FourMomentum pY(const DISFrame &f) const
Definition DISRapidityGap.hh:86
double emPzX(const DISFrame &f) const
Definition DISRapidityGap.hh:49
virtual void project(const Event &e)
virtual CmpState compare(const Projection &p) const
double gap() const
The absolute size of the largest rapidity gap.
Definition DISRapidityGap.hh:33
double m2X() const
Definition DISRapidityGap.hh:95
double gapLow() const
The lower edge of the largest gap, relative to the DIS event orientation.
Definition DISRapidityGap.hh:39
double m2Y() const
Definition DISRapidityGap.hh:100
const FourMomentum pX(const DISFrame &f) const
Definition DISRapidityGap.hh:77
const Particles & systemX(const DISFrame &f) const
Definition DISRapidityGap.hh:59
double t() const
Definition DISRapidityGap.hh:30
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:21
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
DISFrame
Type of DIS boost to apply.
Definition DISKinematics.hh:15