rivet is hosted by Hepforge, IPPP Durham
Rivet 3.1.6
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
28 const double M2X() const {return _M2X;}
29 const double M2Y() const {return _M2Y;}
30 const double t() const {return _t;}
31 const double gap() const {return _gap;}
32 const double gapUpp() const {return _gapUpp;}
33 const double gapLow() const {return _gapLow;}
34 const double EpPzX(Frame f) const {
35 if (f == LAB) return _ePpzX_LAB;
36 else if (f == XCM) return _ePpzX_XCM;
37 else return _ePpzX_HCM;
38 }
39 const double EmPzX(Frame f) const {
40 if (f == LAB) return _eMpzX_LAB;
41 else if (f == XCM) return _eMpzX_XCM;
42 else return _eMpzX_HCM;
43 }
44 const FourMomentum pX(Frame f) const {
45 if (f == LAB) return _momX_LAB;
46 else if (f == XCM) return _momX_XCM;
47 else return _momX_HCM;
48 }
49 const FourMomentum pY(Frame f) const {
50 if (f == LAB) return _momY_LAB;
51 else if (f == XCM) return _momY_XCM;
52 else return _momY_HCM;
53 }
54 const Particles& systemX(Frame f) const {
55 if (f == LAB) return _pX_LAB;
56 else if (f == XCM) return _pX_XCM;
57 else return _pX_HCM;
58 }
59 const Particles& systemY(Frame f) const {
60 if (f == LAB) return _pY_LAB;
61 else if (f == XCM) return _pY_XCM;
62 else return _pY_HCM;
63 }
64
65 protected:
66
67 virtual CmpState compare(const Projection& p) const;
68
69 virtual void project(const Event& e);
70
71 void clearAll();
72
73 void findgap(const Particles& particles, const DISKinematics& diskin);
74
75 private:
76
77 double _M2X, _M2Y, _t;
78 double _gap, _gapUpp, _gapLow;
79 double _ePpzX_LAB, _eMpzX_LAB;
80 double _ePpzX_HCM, _eMpzX_HCM;
81 double _ePpzX_XCM, _eMpzX_XCM;
82 FourMomentum _momX_HCM, _momY_HCM;
83 FourMomentum _momX_LAB, _momY_LAB;
84 FourMomentum _momX_XCM, _momY_XCM;
85 Particles _pX_HCM, _pY_HCM, _pX_LAB, _pY_LAB, _pX_XCM, _pY_XCM;
86
87 };
88
89}
90
91
92#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
virtual void project(const Event &e)
Frame
Type of DIS boost to apply.
Definition: DISRapidityGap.hh:18
virtual CmpState compare(const Projection &p) const
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:306
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:653
Definition: MC_Cent_pPb.hh:10