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   /// @brief Project out all final-state particles in an event.
00011   /// Probably the most important projection in Rivet!
00012   class FinalState : public ParticleFinder {
00013   private:
00014     // hide lossy copy constructors for all classes derived from FinalState
00015     template<typename T> FinalState(const T& rhs);
00016     template<typename T> FinalState const& operator=(T const& rhs);
00017 
00018   public:
00019 
00020     /// @name Standard constructors etc.
00021     //@{
00022 
00023     /// Construction using Cuts object
00024     FinalState(const Cut& c=Cuts::open());
00025 
00026     /// Old constructor with numeric cut arguments, retained for compatibility
00027     /// @deprecated Use the versions with Cut arguments
00028     //DEPRECATED("Use the versions with Cut arguments")
00029     FinalState(double mineta, double maxeta, double minpt=0.0*GeV);
00030 
00031     /// Clone on the heap.
00032     virtual const Projection* clone() const {
00033       return new FinalState(*this);
00034     }
00035 
00036     //@}
00037 
00038 
00039     /// Apply the projection to the event.
00040     virtual void project(const Event& e);
00041 
00042     /// Compare projections.
00043     virtual int compare(const Projection& p) const;
00044 
00045     /// Decide if a particle is to be accepted or not.
00046     /// @todo Rename to _accept or acceptFinal?
00047     virtual bool accept(const Particle& p) const;
00048 
00049   };
00050 
00051 
00052 }
00053 
00054 #endif