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 
00007 namespace Rivet {
00008 
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 
00019   public:
00020 
00021     /// @name Standard constructors etc.
00022     //@{
00023 
00024     /// Construction using Cuts object
00025     FinalState(const Cut& c=Cuts::open());
00026 
00027     // /// Construction using Cuts object and another FinalState
00028     // FinalState(const Cut& c=Cuts::open(), const FinalState& fsp=FinalState());
00029 
00030     /// Old constructor with numeric cut arguments, retained for compatibility
00031     /// @deprecated Use the versions with Cut arguments
00032     //DEPRECATED("Use the versions with Cut arguments")
00033     FinalState(double mineta, double maxeta, double minpt=0.0*GeV);
00034 
00035     /// Clone on the heap.
00036     DEFAULT_RIVET_PROJ_CLONE(FinalState);
00037 
00038     //@}
00039 
00040 
00041     /// Apply the projection to the event.
00042     virtual void project(const Event& e);
00043 
00044     /// Compare projections.
00045     virtual int compare(const Projection& p) const;
00046 
00047     /// Decide if a particle is to be accepted or not.
00048     /// @todo Rename to _accept or acceptFinal?
00049     virtual bool accept(const Particle& p) const;
00050 
00051   };
00052 
00053 
00054 }
00055 
00056 #endif