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 00011 namespace Rivet { 00012 00013 /// Project all final state particles (except the scattered lepton) 00014 /// boosted to the hadronic center of mass system. 00015 class FinalStateHCM: public FinalState { 00016 00017 public: 00018 00019 /// Constructor 00020 FinalStateHCM(const DISKinematics& kinematicsp) 00021 { 00022 setName("FinalStateHCM"); 00023 addProjection(kinematicsp, "Kinematics"); 00024 } 00025 00026 /// Clone on the heap. 00027 virtual const Projection* clone() const { 00028 return new FinalStateHCM(*this); 00029 } 00030 00031 protected: 00032 00033 /// Apply the projection on the supplied event. 00034 void project(const Event& e); 00035 00036 /// Compare projections. 00037 int compare(const Projection& p) const; 00038 }; 00039 00040 } 00041 00042 00043 #endif