Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-05-12 09:05:02

0001 // -*- C++ -*-
0002 #ifndef RIVET_ChargedLeptons_HH
0003 #define RIVET_ChargedLeptons_HH
0004 
0005 #include "Rivet/Projection.hh"
0006 #include "Rivet/Projections/ChargedFinalState.hh"
0007 #include "Rivet/Particle.hh"
0008 #include "Rivet/Event.hh"
0009 
0010 namespace Rivet {
0011 
0012 
0013   /// @brief Get charged final-state leptons
0014   ///
0015   /// @todo This is just electrons and muons, unless you set taus stable!
0016   class ChargedLeptons : public FinalState {
0017   public:
0018 
0019     /// Constructor
0020     ChargedLeptons(const FinalState& fsp=FinalState()) {
0021       setName("ChargedLeptons");
0022       declare(ChargedFinalState(fsp), "ChFS");
0023     }
0024 
0025     /// Constructor via Cut
0026     ChargedLeptons(const Cut& c)
0027       : ChargedLeptons(FinalState(c))
0028     {    }
0029 
0030 
0031     /// Clone on the heap.
0032     RIVET_DEFAULT_PROJ_CLONE(ChargedLeptons);
0033 
0034     /// Import to avoid warnings about overload-hiding
0035     using Projection::operator =;
0036 
0037 
0038   protected:
0039 
0040     /// Apply the projection to the event.
0041     void project(const Event& evt);
0042 
0043     /// Compare projections.
0044     CmpState compare(const Projection& other) const;
0045 
0046   public:
0047 
0048     /// Access the projected leptons.
0049     const Particles& chargedLeptons() const {
0050       return _theParticles;
0051     }
0052 
0053   };
0054 
0055 
0056 }
0057 
0058 #endif