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/RivetCLHEP.hh"
00007 #include "Rivet/Projection.hh"
00008 #include "Rivet/Projections/VetoedFinalState.hh"
00009 #include "Rivet/Particle.hh"
00010 #include "Rivet/Event.hh"
00011 
00012 
00013 namespace Rivet {
00014 
00015   /// Project out the total visible energy vector, allowing missing 
00016   /// \f$ E_T \f$ etc. to be calculated.
00017   class TotalVisibleMomentum: public Projection {
00018     
00019   public:
00020     
00021     /// Constructor. The provided FinalState projection must live throughout the run.
00022     inline TotalVisibleMomentum(FinalState& fsp)
00023       : _fsproj(&fsp)
00024     { 
00025       addProjection(*_fsproj);
00026     }
00027     
00028   public:
00029     /// Return the name of the projection
00030     inline string getName() const {
00031       return "TotalVisibleMomentum";
00032     }
00033 
00034     /// The projected four-momentum vector
00035     inline LorentzVector& getMomentum() { return _momentum; }
00036 
00037     /// The projected four-momentum vector
00038     inline const LorentzVector& getMomentum() const { return _momentum; }
00039 
00040     /// The projected Scalar Transverse Momentum
00041     inline const double getSET() const { return _set; }
00042 
00043     
00044   protected:
00045     
00046     /// Apply the projection to the event.
00047     void project(const Event& e);
00048     
00049     /// Compare projections.
00050     int compare(const Projection& p) const;
00051         
00052   private:
00053         
00054     /// The FinalState projection used by this projection
00055     FinalState* _fsproj;
00056 
00057     /// The total visible momentum
00058     LorentzVector _momentum;
00059     
00060     /// Scalar Transverse Energy
00061     double _set;
00062 
00063 //   private:
00064     
00065 //     /// Hide the assignment operator.
00066 //     TotalVisibleMomentum& operator=(const TotalVisibleMomentum&);
00067     
00068   };
00069   
00070 }
00071 
00072 
00073 #endif