rivet is hosted by Hepforge, IPPP Durham
FinalState.hh
Go to the documentation of this file.
00001 // -*- C++ -*-
00002 #ifndef RIVET_FinalState_HH
00003 #define RIVET_FinalState_HH
00004 
00005 #include "Rivet/Projections/ParticleFinder.hh"
00006 #include "Rivet/Cuts.hh"
00007 
00008 namespace Rivet {
00009 
00010 
00011   /// @brief Project out all final-state particles in an event.
00012   /// Probably the most important projection in Rivet!
00013   class FinalState : public ParticleFinder {
00014   public:
00015 
00016     /// @name Standard constructors etc.
00017     //@{
00018 
00019     /// Construction using Cuts object
00020     FinalState(const Cut& c=Cuts::open());
00021 
00022     /// Old constructor with numeric cut arguments, retained for compatibility
00023     /// @deprecated Use the versions with Cut arguments
00024     //DEPRECATED("Use the versions with Cut arguments")
00025     FinalState(double mineta, double maxeta, double minpt=0.0*GeV);
00026 
00027     /// Clone on the heap.
00028     virtual const Projection* clone() const {
00029       return new FinalState(*this);
00030     }
00031 
00032     //@}
00033 
00034 
00035     /// Apply the projection to the event.
00036     virtual void project(const Event& e);
00037 
00038     /// Compare projections.
00039     virtual int compare(const Projection& p) const;
00040 
00041     /// Decide if a particle is to be accepted or not.
00042     /// @todo Rename to _accept or acceptFinal?
00043     virtual bool accept(const Particle& p) const;
00044 
00045   };
00046 
00047 
00048 }
00049 
00050 #endif