rivet is hosted by Hepforge, IPPP Durham
Rivet  2.7.0
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 BoostType { HCM, BREIT, LAB };
19 
20 
22 
23 
26  DISFinalState(const FinalState& fs, BoostType boosttype, const DISKinematics& kinematicsp=DISKinematics())
27  : _boosttype(boosttype)
28  {
29  setName("DISFinalState");
30  declare(fs, "FS");
31  declare(kinematicsp, "Kinematics");
32  }
33 
36  DISFinalState(BoostType boosttype, const FinalState& fs=FinalState(), const DISKinematics& kinematicsp=DISKinematics())
37  : DISFinalState(fs, boosttype, kinematicsp)
38  { }
39 
42  DISFinalState(const Cut& c, BoostType boosttype, const DISKinematics& kinematicsp=DISKinematics())
43  : DISFinalState(FinalState(c), boosttype, kinematicsp)
44  { }
45 
48  DISFinalState(BoostType boosttype, const Cut& c, const DISKinematics& kinematicsp=DISKinematics())
49  : DISFinalState(FinalState(c), boosttype, kinematicsp)
50  { }
51 
52  // /// @brief Constructor with default FinalState
53  // /// @note The DISKinematics has no parameters, hence explicitly passing it as an arg shouldn't be necessary.
54  // DISFinalState(BoostType boosttype, const DISKinematics& kinematicsp=DISKinematics())
55  // : DISFinalState(FinalState(), boosttype, kinematicsp)
56  // { }
57 
60  DISFinalState(const DISKinematics& kinematicsp, BoostType boosttype)
61  : DISFinalState(FinalState(), boosttype, kinematicsp)
62  { }
63 
64 
67 
69 
70 
71  protected:
72 
74  void project(const Event& e);
75 
77  int compare(const Projection& p) const {
78  const DISFinalState& other = dynamic_cast<const DISFinalState&>(p);
79  return mkNamedPCmp(p, "Kinematics") || mkNamedPCmp(p, "FS") || cmp(_boosttype, other._boosttype);
80  }
81 
82 
83  private:
84 
85  BoostType _boosttype;
86 
87  };
88 
89 
90 }
91 
92 #endif
void setName(const std::string &name)
Used by derived classes to set their name.
Definition: Projection.hh:133
Definition: ALICE_2010_I880049.cc:13
FinalState(const Cut &c=Cuts::open())
Construction using Cuts object.
Definition: FinalState.cc:7
DISFinalState(const Cut &c, BoostType boosttype, const DISKinematics &kinematicsp=DISKinematics())
Definition: DISFinalState.hh:42
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.
Definition: DISFinalState.cc:7
DISFinalState(const FinalState &fs, BoostType boosttype, const DISKinematics &kinematicsp=DISKinematics())
Definition: DISFinalState.hh:26
Final state particles boosted to the hadronic center of mass system.
Definition: DISFinalState.hh:14
Definition: Event.hh:22
BoostType
Type of DIS boost to apply.
Definition: DISFinalState.hh:18
DISFinalState(BoostType boosttype, const Cut &c, const DISKinematics &kinematicsp=DISKinematics())
Definition: DISFinalState.hh:48
Cmp< Projection > mkNamedPCmp(const Projection &otherparent, const std::string &pname) const
Definition: Projection.cc:51
DISFinalState(BoostType boosttype, const FinalState &fs=FinalState(), const DISKinematics &kinematicsp=DISKinematics())
Definition: DISFinalState.hh:36
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:160
int compare(const Projection &p) const
Compare projections.
Definition: DISFinalState.hh:77
Base class for all Rivet projections.
Definition: Projection.hh:29
DISFinalState(const DISKinematics &kinematicsp, BoostType boosttype)
Definition: DISFinalState.hh:60
Cmp< T > cmp(const T &t1, const T &t2)
Global helper function for easy creation of Cmp objects.
Definition: Cmp.hh:285