// -*- C++ -*- #ifndef RIVET_FinalStateBREITCURRENT_HH #define RIVET_FinalStateBREITCURRENT_HH #include "Rivet/Particle.hh" #include "Rivet/Event.hh" #include "Rivet/Projections/FinalState.hh" #include "Rivet/Projections/DISKinematics.hh" #include "Rivet/Projection.hh" #include "Rivet/Projections/DISLepton.hh" #include "Rivet/Projections/Beam.hh" namespace Rivet { /// Project all final state particles /// boosted to the breit frame, and store any in the current hemisphere. class FinalStateBreitCurrent: public FinalState { public: /// Constructor for Final State Breit FinalStateBreitCurrent(const DISKinematics& kinematicsp); /// Constructor for specific hemisphere /// hemisphere ==0 no cut,=1 current frame, =2 remnant frame /// elim =0 not cut, =n cut on greater than n FinalStateBreitCurrent(const DISKinematics& kinematicsp,const int& hemisphere, const double& elim); /// Clone on the heap. virtual const Projection* clone() const { return new FinalStateBreitCurrent(*this); } protected: /// Apply the projection on the supplied event. void project(const Event& e); /// Compare projections. int compare(const Projection& p) const; }; } #endif