TotalVisibleMomentum.hh

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 #ifndef RIVET_TotalVisibleMomentum_HH
00003 #define RIVET_TotalVisibleMomentum_HH
00004 
00005 #include "Rivet/Rivet.hh"
00006 #include "Rivet/Projection.hh"
00007 #include "Rivet/Projections/FinalState.hh"
00008 #include "Rivet/Particle.hh"
00009 #include "Rivet/Event.hh"
00010 
00011 namespace Rivet {
00012 
00013 
00014   /// @brief Get the total energy vector, allowing missing \f$ E_T \f$ etc. to be calculated.
00015   /// @deprecated This is confusing because the visibility is not automatic. Use MissingMomentum instead.
00016   class TotalVisibleMomentum : public Projection {
00017 
00018   public:
00019 
00020     /// Constructor. Make sure you supply an appropriately vetoed FS!
00021     TotalVisibleMomentum(const FinalState& fsp)
00022     {
00023       setName("TotalVisibleMomentum");
00024       addProjection(fsp, "FS");
00025       getLog() << Log::WARNING << "TotalVisibleMomentum projection is deprecated: "
00026                << "please use the MissingMomentum projection instead." << endl;
00027     }
00028 
00029     /// Clone on the heap.
00030     virtual const Projection* clone() const {
00031       return new TotalVisibleMomentum(*this);
00032     }
00033 
00034 
00035   public:
00036     /// The projected four-momentum vector
00037     FourMomentum& momentum() { return _momentum; }
00038 
00039     /// The projected four-momentum vector
00040     const FourMomentum& momentum() const { return _momentum; }
00041 
00042     /// The projected scalar transverse energy
00043     double scalarET() const { return _set; }
00044 
00045 
00046   protected:
00047 
00048     /// Apply the projection to the event.
00049     void project(const Event& e);
00050 
00051     /// Compare projections.
00052     int compare(const Projection& p) const;
00053 
00054   private:
00055 
00056     /// The total visible momentum
00057     FourMomentum _momentum;
00058 
00059     /// Scalar transverse energy
00060     double _set;
00061 
00062   };
00063 
00064 }
00065 
00066 
00067 #endif