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 
00018     /// Construction from another FinalState
00019     NeutralFinalState(const FinalState& fsp, double etmin=0*GeV)
00020       : _Etmin(etmin)
00021     {
00022       setName("NeutralFinalState");
00023       addProjection(fsp, "FS");
00024     }
00025 
00026     /// Construction using Cuts object
00027     NeutralFinalState(const Cut& c=Cuts::open()) : _Etmin(0.0*GeV) {
00028       setName("NeutralFinalState");
00029       addProjection(FinalState(c), "FS");
00030     }
00031 
00032     /// Construction from explicit eta range and min ET cut values
00033     NeutralFinalState(double mineta, double maxeta, double etmin=0*GeV)
00034       : _Etmin(etmin)
00035     {
00036       setName("NeutralFinalState");
00037       addProjection(FinalState(mineta, maxeta, 0.0*GeV), "FS");
00038     }
00039 
00040     /// Clone on the heap.
00041     virtual const Projection* clone() const {
00042       return new NeutralFinalState(*this);
00043     }
00044 
00045     //@}
00046 
00047 
00048   protected:
00049 
00050     /// Apply the projection on the supplied event.
00051     void project(const Event& e);
00052 
00053     /// The minimum allowed transverse energy.
00054     double _Etmin;
00055 
00056     /// Compare projections.
00057     int compare(const Projection& p) const;
00058   };
00059 
00060 
00061 }
00062 
00063 
00064 #endif