MissingMomentum.hh
Go to the documentation of this file.
00001 // -*- C++ -*- 00002 #ifndef RIVET_MissingMomentum_HH 00003 #define RIVET_MissingMomentum_HH 00004 00005 #include "Rivet/Config/RivetCommon.hh" 00006 #include "Rivet/Projection.hh" 00007 #include "Rivet/Projections/VisibleFinalState.hh" 00008 #include "Rivet/Particle.hh" 00009 #include "Rivet/Event.hh" 00010 00011 namespace Rivet { 00012 00013 00014 /// @brief Calculate missing \f$ E \f$, \f$ E_\perp \f$ etc. 00015 /// 00016 /// Project out the total visible energy vector, allowing missing 00017 /// \f$ E \f$, \f$ E_\perp \f$ etc. to be calculated. Final state 00018 /// visibility restrictions are automatic. 00019 class MissingMomentum : public Projection { 00020 public: 00021 00022 /// Default constructor with optional cut. 00023 MissingMomentum(const Cut& c=Cuts::open()) { 00024 setName("MissingMomentum"); 00025 FinalState fs(c); 00026 addProjection(fs, "FS"); 00027 addProjection(VisibleFinalState(fs), "VisibleFS"); 00028 } 00029 00030 00031 /// Constructor. 00032 MissingMomentum(const FinalState& fs) { 00033 setName("MissingMomentum"); 00034 addProjection(fs, "FS"); 00035 addProjection(VisibleFinalState(fs), "VisibleFS"); 00036 } 00037 00038 00039 /// Clone on the heap. 00040 virtual const Projection* clone() const { 00041 return new MissingMomentum(*this); 00042 } 00043 00044 00045 public: 00046 00047 /// The vector-summed visible four-momentum in the event. 00048 /// 00049 /// @note Reverse this vector with .reverse() to get the missing momentum vector. 00050 /// 00051 /// @note The optional @a mass argument is used to set a mass on the 4-vector. By 00052 /// default it is zero (since missing momentum is really a 3-momentum quantity: 00053 /// adding the E components of visible momenta just gives a huge mass) 00054 const FourMomentum visibleMomentum(double mass=0*GeV) const; 00055 /// Alias for visibleMomentum 00056 const FourMomentum visibleMom(double mass=0*GeV) const { return visibleMomentum(mass); } 00057 00058 /// The missing four-momentum in the event, required to balance the final state. 00059 /// 00060 /// @note The optional @a mass argument is used to set a mass on the 4-vector. By 00061 /// default it is zero (since missing momentum is really a 3-momentum quantity: 00062 /// adding the E components of visible momenta just gives a huge mass) 00063 const FourMomentum missingMomentum(double mass=0*GeV) const { return visibleMomentum(mass).reverse(); } 00064 /// Alias for missingMomentum 00065 const FourMomentum missingMom(double mass=0*GeV) const { return missingMomentum(mass); } 00066 00067 /// The vector-summed visible transverse energy in the event, as a 3-vector with z=0 00068 /// @note Reverse this vector with operator- to get the missing ET vector. 00069 const Vector3& vectorEt() const { return _vet; } 00070 00071 /// The vector-summed missing transverse energy in the event. 00072 double missingEt() const { return vectorEt().mod(); } 00073 /// Alias for missingEt 00074 double met() const { return missingEt(); } 00075 00076 /// The scalar-summed visible transverse energy in the event. 00077 double scalarEt() const { return _set; } 00078 /// Alias for scalarEt 00079 double set() const { return scalarEt(); } 00080 00081 00082 protected: 00083 00084 /// Apply the projection to the event. 00085 void project(const Event& e); 00086 00087 /// Compare projections. 00088 int compare(const Projection& p) const; 00089 00090 00091 public: 00092 00093 /// Clear the projection results. 00094 void clear(); 00095 00096 00097 private: 00098 00099 /// The total visible momentum 00100 FourMomentum _momentum; 00101 00102 /// Scalar transverse energy 00103 double _set; 00104 00105 /// Vector transverse energy 00106 Vector3 _vet; 00107 00108 }; 00109 00110 00111 } 00112 00113 #endif Generated on Thu Mar 10 2016 08:29:51 for The Rivet MC analysis system by ![]() |