rivet is hosted by Hepforge, IPPP Durham
Rivet 3.1.6
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
38 DISFinalState(BoostFrame boosttype, const FinalState& fs=FinalState(), const DISKinematics& kinematicsp=DISKinematics())
39 : DISFinalState(fs, boosttype, kinematicsp)
40 { }
41
49 DISFinalState(const Cut& c, BoostFrame boosttype, const DISKinematics& kinematicsp=DISKinematics())
50 : DISFinalState(FinalState(c), boosttype, kinematicsp)
51 { }
52
60 DISFinalState(BoostFrame boosttype, const Cut& c, const DISKinematics& kinematicsp=DISKinematics())
61 : DISFinalState(FinalState(c), boosttype, kinematicsp)
62 { }
63
64 // /// @brief Constructor with default FinalState
65 // ///
66 // /// @note The DISKinematics has no parameters, hence explicitly passing it as an arg shouldn't be necessary.
67 // DISFinalState(BoostFrame boosttype, const DISKinematics& kinematicsp=DISKinematics())
68 // : DISFinalState(FinalState(), boosttype, kinematicsp)
69 // { }
70
74 DISFinalState(const DISKinematics& kinematicsp, BoostFrame boosttype)
75 : DISFinalState(FinalState(), boosttype, kinematicsp)
76 { }
77
78
81
83
84
87 return getProjection<DISKinematics>("Kinematics");
88 }
89
90
91 protected:
92
94 void project(const Event& e);
95
97 CmpState compare(const Projection& p) const {
98 const DISFinalState& other = dynamic_cast<const DISFinalState&>(p);
99 return mkNamedPCmp(p, "Kinematics") || mkNamedPCmp(p, "FS") || cmp(_boosttype, other._boosttype);
100 }
101
102
103 private:
104
105 BoostFrame _boosttype;
106
107 };
108
109
110}
111
112#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:49
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:38
CmpState compare(const Projection &p) const
Compare projections.
Definition: DISFinalState.hh:97
DISFinalState(const DISKinematics &kinematicsp, BoostFrame boosttype)
Backward-compatible constructor with default FinalState.
Definition: DISFinalState.hh:74
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:86
DISFinalState(BoostFrame boosttype, const Cut &c, const DISKinematics &kinematicsp=DISKinematics())
Constructor with explicit cuts to define final-state particles.
Definition: DISFinalState.hh:60
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
FinalState(const Cut &c=Cuts::open())
Construction using Cuts object.
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:653
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