Rivet 3.1.9
DISFinalState.hh
1// -*- C++ -*-
2#ifndef RIVET_DISFinalState_HH
3#define RIVET_DISFinalState_HH
4
5#include "Rivet/Projections/FinalState.hh"
6#include "Rivet/Projections/DISKinematics.hh"
7
8namespace Rivet {
9
10
14 class DISFinalState: public FinalState {
15 public:
16
18 enum class BoostFrame { HCM, BREIT, LAB };
19
20
22
23
27 DISFinalState(const FinalState& fs, BoostFrame boosttype, const DISKinematics& kinematicsp=DISKinematics())
28 : _boosttype(boosttype)
29 {
30 setName("DISFinalState");
31 declare(fs, "FS");
32 declare(kinematicsp, "Kinematics");
33 }
34
35
39 DISFinalState(BoostFrame boosttype, const FinalState& fs=FinalState(), const DISKinematics& kinematicsp=DISKinematics())
40 : DISFinalState(fs, boosttype, kinematicsp)
41 { }
42
43
51 DISFinalState(const Cut& c, BoostFrame boosttype, const DISKinematics& kinematicsp=DISKinematics())
52 : DISFinalState(FinalState(c), boosttype, kinematicsp)
53 { }
54
55
63 DISFinalState(BoostFrame boosttype, const Cut& c, const DISKinematics& kinematicsp=DISKinematics())
64 : DISFinalState(FinalState(c), boosttype, kinematicsp)
65 { }
66
67
68 // /// @brief Constructor with default FinalState
69 // ///
70 // /// @note The DISKinematics has no parameters, hence explicitly passing it as an arg shouldn't be necessary.
71 // DISFinalState(BoostFrame boosttype, const DISKinematics& kinematicsp=DISKinematics())
72 // : DISFinalState(FinalState(), boosttype, kinematicsp)
73 // { }
74
78 DISFinalState(const DISKinematics& kinematicsp, BoostFrame boosttype)
79 : DISFinalState(FinalState(), boosttype, kinematicsp)
80 { }
81
82
85
87
88
90 using Projection::operator =;
91
92
95 return getProjection<DISKinematics>("Kinematics");
96 }
97
98
99 protected:
100
102 void project(const Event& e);
103
105 CmpState compare(const Projection& p) const {
106 const DISFinalState& other = dynamic_cast<const DISFinalState&>(p);
107 return mkNamedPCmp(p, "Kinematics") || mkNamedPCmp(p, "FS") || cmp(_boosttype, other._boosttype);
108 }
109
110
111 protected:
112
113 BoostFrame _boosttype;
114
115 };
116
117
118}
119
120#endif
Final state particles boosted to the hadronic center of mass system.
Definition DISFinalState.hh:14
DISFinalState(const Cut &c, BoostFrame boosttype, const DISKinematics &kinematicsp=DISKinematics())
Constructor with explicit cuts to define final-state particles.
Definition DISFinalState.hh:51
DEFAULT_RIVET_PROJ_CLONE(DISFinalState)
Clone on the heap.
void project(const Event &e)
Apply the projection on the supplied event.
DISFinalState(BoostFrame boosttype, const FinalState &fs=FinalState(), const DISKinematics &kinematicsp=DISKinematics())
Constructor with optional FinalState.
Definition DISFinalState.hh:39
CmpState compare(const Projection &p) const
Compare projections.
Definition DISFinalState.hh:105
DISFinalState(const DISKinematics &kinematicsp, BoostFrame boosttype)
Backward-compatible constructor with default FinalState.
Definition DISFinalState.hh:78
BoostFrame
Type of DIS boost to apply.
Definition DISFinalState.hh:18
DISFinalState(const FinalState &fs, BoostFrame boosttype, const DISKinematics &kinematicsp=DISKinematics())
Constructor with explicit FinalState.
Definition DISFinalState.hh:27
const DISKinematics & kinematics()
Get the associated DISKinematics (to avoid needing a separate projection)
Definition DISFinalState.hh:94
DISFinalState(BoostFrame boosttype, const Cut &c, const DISKinematics &kinematicsp=DISKinematics())
Constructor with explicit cuts to define final-state particles.
Definition DISFinalState.hh:63
Get the DIS kinematic variables and relevant boosts for an event.
Definition DISKinematics.hh:15
Representation of a HepMC event, and enabler of Projection caching.
Definition Event.hh:22
Project out all final-state particles in an event. Probably the most important projection in Rivet!
Definition FinalState.hh:12
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
Cmp< Projection > mkNamedPCmp(const Projection &otherparent, const std::string &pname) const
double p(const ParticleBase &p)
Unbound function access to p.
Definition ParticleBaseUtils.hh:684
Definition MC_Cent_pPb.hh:10
Cmp< T > cmp(const T &t1, const T &t2)
Global helper function for easy creation of Cmp objects.
Definition Cmp.hh:255