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   /// Project out the total energy vector, allowing missing
00015   /// \f$ E_T \f$ etc. to be calculated.
00016   /// @deprecated This is confusing because the visibility is not automatic. Use MissingMomentum instead.
00017   class TotalVisibleMomentum : public Projection {
00018  
00019   public:
00020  
00021     /// Constructor. Make sure you supply an appropriately vetoed FS!
00022     TotalVisibleMomentum(const FinalState& fsp)
00023     {
00024       setName("TotalVisibleMomentum");
00025       addProjection(fsp, "FS");
00026     }
00027 
00028     /// Clone on the heap.
00029     virtual const Projection* clone() const {
00030       return new TotalVisibleMomentum(*this);
00031     }
00032 
00033  
00034   public:
00035     /// The projected four-momentum vector
00036     FourMomentum& momentum() { return _momentum; }
00037 
00038     /// The projected four-momentum vector
00039     const FourMomentum& momentum() const { return _momentum; }
00040 
00041     /// The projected scalar transverse energy
00042     double scalarET() const { return _set; }
00043  
00044 
00045   protected:
00046  
00047     /// Apply the projection to the event.
00048     void project(const Event& e);
00049  
00050     /// Compare projections.
00051     int compare(const Projection& p) const;
00052      
00053   private:
00054  
00055     /// The total visible momentum
00056     FourMomentum _momentum;
00057  
00058     /// Scalar transverse energy
00059     double _set;
00060  
00061   };
00062 
00063 }
00064 
00065 
00066 #endif