rivet is hosted by Hepforge, IPPP Durham
NeutralFinalState.hh
Go to the documentation of this file.
00001 // -*- C++ -*-
00002 #ifndef RIVET_NeutralFinalState_HH
00003 #define RIVET_NeutralFinalState_HH
00004 
00005 #include "Rivet/Projections/FinalState.hh"
00006 
00007 namespace Rivet {
00008 
00009 
00010   /// @brief Project only neutral final state particles.
00011   class NeutralFinalState : public FinalState {
00012 
00013   public:
00014 
00015     /// @name Constructors
00016     //@{
00017     NeutralFinalState(const FinalState& fsp)  : _Etmin(0.0*GeV) {
00018       setName("NeutralFinalState");
00019       addProjection(fsp, "FS");
00020     }
00021 
00022     NeutralFinalState(double mineta = -MAXDOUBLE,
00023                       double maxeta =  MAXDOUBLE,
00024                       double minEt  =  0.0*GeV) : _Etmin(minEt)
00025     {
00026       setName("NeutralFinalState");
00027       addProjection(FinalState(mineta, maxeta, 0.0*GeV), "FS");
00028     }
00029 
00030     /// Clone on the heap.
00031     virtual const Projection* clone() const {
00032       return new NeutralFinalState(*this);
00033     }
00034     //@}
00035 
00036   protected:
00037 
00038     /// Apply the projection on the supplied event.
00039     void project(const Event& e);
00040 
00041     /// The minimum allowed transverse energy.
00042     double _Etmin;
00043 
00044     /// Compare projections.
00045     int compare(const Projection& p) const;
00046   };
00047 
00048 
00049 }
00050 
00051 
00052 #endif