Rivet  3.1.5
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 
10 namespace Rivet {
11 
12 
14  class DISRapidityGap : public Projection {
15  public:
16 
18  enum Frame { HCM, LAB, XCM };
19 
20  DISRapidityGap() {
21  setName("DISRapidityGap");
22  declare(DISKinematics(), "DISKIN");
23  declare(DISFinalState(DISFinalState::BoostFrame::HCM), "DISFS");
24  }
25 
26  DEFAULT_RIVET_PROJ_CLONE(DISRapidityGap);
27 
29  double t() const { return _t; }
30 
32  double gap() const { return _gap; }
33 
35  double gapUpper() const { return _gapUpp; }
36 
38  double gapLower() const { return _gapLow; }
39 
41  double epPzX(Frame f) const {
42  if (f == LAB) return _ePpzX_LAB;
43  else if (f == XCM) return _ePpzX_XCM;
44  else return _ePpzX_HCM;
45  }
46 
48  const double emPzX(Frame f) const {
49  if (f == LAB) return _eMpzX_LAB;
50  else if (f == XCM) return _eMpzX_XCM;
51  else return _eMpzX_HCM;
52  }
53 
54 
58  const Particles& systemX(Frame f) const {
59  if (f == LAB) return _pX_LAB;
60  else if (f == XCM) return _pX_XCM;
61  else return _pX_HCM;
62  }
63 
67  const Particles& systemY(Frame f) const {
68  if (f == LAB) return _pY_LAB;
69  else if (f == XCM) return _pY_XCM;
70  else return _pY_HCM;
71  }
72 
76  const FourMomentum pX(Frame f) const {
77  if (f == LAB) return _momX_LAB;
78  else if (f == XCM) return _momX_XCM;
79  else return _momX_HCM;
80  }
81 
85  const FourMomentum pY(Frame f) const {
86  if (f == LAB) return _momY_LAB;
87  else if (f == XCM) return _momY_XCM;
88  else return _momY_HCM;
89  }
90 
94  double m2X() const { return _M2X; }
95 
99  double m2Y() const { return _M2Y; }
100 
101 
102  protected:
103 
104  virtual CmpState compare(const Projection& p) const;
105 
106  virtual void project(const Event& e);
107 
108  void clear();
109 
110  void findGap(const Particles& particles, const DISKinematics& diskin);
111 
112 
113  private:
114 
115  double _M2X, _M2Y, _t;
116  double _gap, _gapUpp, _gapLow;
117  double _ePpzX_LAB, _eMpzX_LAB;
118  double _ePpzX_HCM, _eMpzX_HCM;
119  double _ePpzX_XCM, _eMpzX_XCM;
120  FourMomentum _momX_HCM, _momY_HCM;
121  FourMomentum _momX_LAB, _momY_LAB;
122  FourMomentum _momX_XCM, _momY_XCM;
123  Particles _pX_HCM, _pY_HCM, _pX_LAB, _pY_LAB, _pX_XCM, _pY_XCM;
124 
125  };
126 
127 
128 }
129 
130 #endif
void setName(const std::string &name)
Used by derived classes to set their name.
Definition: Projection.hh:142
Definition: MC_Cent_pPb.hh:10
virtual void project(const Event &e)
const double emPzX(Frame f) const
Definition: DISRapidityGap.hh:48
virtual CmpState compare(const Projection &p) const
Get the DIS kinematic variables and relevant boosts for an event.
Definition: DISKinematics.hh:15
double gapUpper() const
The upper edge of the largest gap, relative to the DIS event orientation.
Definition: DISRapidityGap.hh:35
const Particles & systemY(Frame f) const
Definition: DISRapidityGap.hh:67
double t() const
Definition: DISRapidityGap.hh:29
Final state particles boosted to the hadronic center of mass system.
Definition: DISFinalState.hh:14
Representation of a HepMC event, and enabler of Projection caching.
Definition: Event.hh:22
Frame
Type of DIS boost to apply.
Definition: DISRapidityGap.hh:18
double m2Y() const
Definition: DISRapidityGap.hh:99
Get the incoming and outgoing hadron in a diffractive ep event.
Definition: DISRapidityGap.hh:14
const FourMomentum pX(Frame f) const
Definition: DISRapidityGap.hh:76
double epPzX(Frame f) const
Definition: DISRapidityGap.hh:41
double m2X() const
Definition: DISRapidityGap.hh:94
const Particles & systemX(Frame f) const
Definition: DISRapidityGap.hh:58
const PROJ & declare(const PROJ &proj, const std::string &name)
Register a contained projection (user-facing version)
Definition: ProjectionApplier.hh:170
const FourMomentum pY(Frame f) const
Definition: DISRapidityGap.hh:85
double gap() const
The absolute size of the largest rapidity gap.
Definition: DISRapidityGap.hh:32
Base class for all Rivet projections.
Definition: Projection.hh:29
Specialized version of the FourVector with momentum/energy functionality.
Definition: Vector4.hh:306
double gapLower() const
The lower edge of the largest gap, relative to the DIS event orientation.
Definition: DISRapidityGap.hh:38