Rivet  3.1.5
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 
8 namespace 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 
85  protected:
86 
88  void project(const Event& e);
89 
91  CmpState compare(const Projection& p) const {
92  const DISFinalState& other = dynamic_cast<const DISFinalState&>(p);
93  return mkNamedPCmp(p, "Kinematics") || mkNamedPCmp(p, "FS") || cmp(_boosttype, other._boosttype);
94  }
95 
96 
97  private:
98 
99  BoostFrame _boosttype;
100 
101  };
102 
103 
104 }
105 
106 #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
FinalState(const Cut &c=Cuts::open())
Construction using Cuts object.
DEFAULT_RIVET_PROJ_CLONE(DISFinalState)
Clone on the heap.
Get the DIS kinematic variables and relevant boosts for an event.
Definition: DISKinematics.hh:15
void project(const Event &e)
Apply the projection on the supplied event.
DISFinalState(const Cut &c, BoostFrame boosttype, const DISKinematics &kinematicsp=DISKinematics())
Constructor with explicit cuts to define final-state particles.
Definition: DISFinalState.hh:49
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
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
CmpState compare(const Projection &p) const
Compare projections.
Definition: DISFinalState.hh:91
Cmp< Projection > mkNamedPCmp(const Projection &otherparent, const std::string &pname) const
DISFinalState(BoostFrame boosttype, const FinalState &fs=FinalState(), const DISKinematics &kinematicsp=DISKinematics())
Constructor with optional FinalState.
Definition: DISFinalState.hh:38
BoostFrame
Type of DIS boost to apply.
Definition: DISFinalState.hh:18
DISFinalState(const DISKinematics &kinematicsp, BoostFrame boosttype)
Backward-compatible constructor with default FinalState.
Definition: DISFinalState.hh:74
Base class for all Rivet projections.
Definition: Projection.hh:29
DISFinalState(BoostFrame boosttype, const Cut &c, const DISKinematics &kinematicsp=DISKinematics())
Constructor with explicit cuts to define final-state particles.
Definition: DISFinalState.hh:60
DISFinalState(const FinalState &fs, BoostFrame boosttype, const DISKinematics &kinematicsp=DISKinematics())
Constructor with explicit FinalState.
Definition: DISFinalState.hh:27
Cmp< T > cmp(const T &t1, const T &t2)
Global helper function for easy creation of Cmp objects.
Definition: Cmp.hh:255