Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef RIVET_NonPromptFinalState_HH
0003 #define RIVET_NonPromptFinalState_HH
0004 
0005 #include "Rivet/Projections/FinalState.hh"
0006 #include "Rivet/Projections/PromptFinalState.fhh"
0007 
0008 namespace Rivet {
0009 
0010   
0011   /// @brief Find final state particles NOT directly connected to the hard process.
0012   ///
0013   /// See PromptFinalState for details.
0014   class NonPromptFinalState : public FinalState {
0015   public:
0016 
0017     /// @name Constructors
0018     /// @{
0019 
0020     // Constructor from a final state.
0021     NonPromptFinalState(const FinalState& fsp,
0022             TauDecaysAs taudecays=TauDecaysAs::PROMPT,
0023             MuDecaysAs mudecays=MuDecaysAs::PROMPT);
0024 
0025     /// Constructor from a Cut (and implicit general FS).
0026     NonPromptFinalState(const Cut& c,
0027             TauDecaysAs taudecays=TauDecaysAs::PROMPT,
0028             MuDecaysAs mudecays=MuDecaysAs::PROMPT);
0029 
0030     // /// Constructor from a Cut and optional FinalState.
0031     // NonPromptFinalState(const Cut& c, const FinalState& fsp=FinalState(),
0032     //          TauDecaysAs taudecays=TauDecaysAs::PROMPT,
0033     //          MuDecaysAs mudecays=MuDecaysAs::PROMPT);
0034 
0035     /// Clone on the heap.
0036     RIVET_DEFAULT_PROJ_CLONE(NonPromptFinalState);
0037 
0038     /// @}
0039 
0040     /// Import to avoid warnings about overload-hiding
0041     using Projection::operator =;
0042 
0043 
0044     /// Treat particles from decays of prompt muons as non-prompt?
0045     void acceptMuonDecays(bool acc=true) { _mudecays = acc; }
0046     /// Treat particles from decays of prompt taus as non-prompt?
0047     void acceptTauDecays(bool acc=true) { _taudecays = acc; }
0048 
0049 
0050     /// Apply the projection on the supplied event.
0051     void project(const Event& e);
0052 
0053     /// Compare projections.
0054     CmpState compare(const Projection& p) const;
0055 
0056 
0057   protected:
0058 
0059     bool _mudecays, _taudecays;
0060 
0061   };
0062 
0063 
0064 }
0065 
0066 #endif