00001 // -*- C++ -*- 00002 #ifndef RIVET_FinalStateHCM_HH 00003 #define RIVET_FinalStateHCM_HH 00004 00005 #include "Rivet/Particle.hh" 00006 #include "Rivet/Event.hh" 00007 #include "Rivet/Projections/FinalState.hh" 00008 #include "Rivet/Projections/DISKinematics.hh" 00009 00010 namespace Rivet { 00011 00012 00013 /// @brief Final state particles boosted to the hadronic center of mass system. 00014 /// 00015 /// NB. The DIS scattered lepton is not included in the final state particles. 00016 class FinalStateHCM: public FinalState { 00017 00018 public: 00019 00020 /// Constructor 00021 FinalStateHCM(const DISKinematics& kinematicsp) 00022 { 00023 setName("FinalStateHCM"); 00024 addProjection(kinematicsp, "Kinematics"); 00025 } 00026 00027 /// Clone on the heap. 00028 virtual const Projection* clone() const { 00029 return new FinalStateHCM(*this); 00030 } 00031 00032 protected: 00033 00034 /// Apply the projection on the supplied event. 00035 void project(const Event& e); 00036 00037 /// Compare projections. 00038 int compare(const Projection& p) const; 00039 }; 00040 00041 } 00042 00043 00044 #endif