Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-09-18 09:31:14

0001 // -*- C++ -*-
0002 #ifndef RIVET_METFinder_HH
0003 #define RIVET_METFinder_HH
0004 
0005 #include "Rivet/Projection.hh"
0006 
0007 namespace Rivet {
0008 
0009 
0010   /// Interface for projections that find missing transverse energy/momentum
0011   class METFinder : public Projection {
0012   public:
0013 
0014     /// Import to avoid warnings about overload-hiding
0015     using Projection::operator=;
0016 
0017     /// @name Transverse momentum functions
0018     ///
0019     /// @note This may be what you want, even if the paper calls it "missing Et"!
0020     /// @{
0021 
0022     /// The vector-summed visible transverse momentum in the event, as a 3-vector with z=0
0023     ///
0024     /// @note Reverse this vector with operator- to get the missing pT vector.
0025     /// @todo Currently equivalent to vectorEt
0026     virtual const Vector3& vectorPt() const = 0;
0027 
0028     /// Convenience vector MPT function
0029     const Vector3 vectorMissingPt() const { return -vectorPt(); }
0030     // Alias
0031     const Vector3 vectorMPT() const { return vectorMissingPt(); }
0032 
0033     /// The vector-summed missing transverse momentum in the event.
0034     double missingPt() const { return vectorPt().mod(); }
0035 
0036     /// The scalar-summed visible transverse momentum in the event.
0037     virtual double scalarPt() const = 0;
0038     /// Alias for scalarPt
0039     double scalarSumPt() const { return scalarPt(); }
0040 
0041     /// @}
0042 
0043 
0044     /// @name Transverse energy functions
0045     ///
0046     /// @warning Despite the common names "MET" and "SET", what's often meant is the pT functions above!
0047     /// @{
0048 
0049     /// The vector-summed visible transverse energy in the event, as a 3-vector with z=0
0050     ///
0051     /// @note Reverse this vector with operator- to get the missing ET vector.
0052     virtual const Vector3& vectorEt() const = 0;
0053 
0054     /// Convenience vector MET function
0055     const Vector3 vectorMissingEt() const { return -vectorEt(); }
0056     // Alias
0057     const Vector3 vectorMET() const { return vectorMissingEt(); }
0058 
0059     /// The vector-summed missing transverse energy in the event.
0060     double missingEt() const { return vectorMissingEt().mod(); }
0061     /// Alias for missingEt
0062     double met() const { return missingEt(); }
0063 
0064     /// The scalar-summed visible transverse energy in the event.
0065     virtual double scalarEt() const = 0;
0066     /// Alias for scalarEt
0067     double scalarSumEt() const { return scalarEt(); }
0068     /// Alias for scalarSumEt
0069     double set() const { return scalarEt(); }
0070 
0071     /// @}
0072 
0073 
0074     /// Reset the projection. Smearing functions will be unchanged.
0075     virtual void reset() {  }
0076 
0077   };
0078 
0079 
0080 }
0081 
0082 #endif