![]() |
|
|||
File indexing completed on 2025-05-12 09:05:03
0001 // -*- C++ -*- 0002 #ifndef RIVET_PromptFinalState_HH 0003 #define RIVET_PromptFinalState_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 directly connected to the hard process. 0012 /// 0013 /// The definition of "prompt" used in Rivet is that from high-scale physics, i.e. 0014 /// particles directly connected to the hard process in an interaction, regardless 0015 /// of realistic reconstructibility of displaced vertices, etc. By construction 0016 /// hadrons cannot be considered prompt as they will be colour connected to other 0017 /// parts of the event through non-perturbative effects: this projection can 0018 /// return electrons, muons, photons, and exotic particles which do not have a 0019 /// hadron in their post-hadronization ancestor chain. Flags exist to choose 0020 /// whether intermediate tau or muon decays invalidate a particle's promptness. 0021 /// 0022 /// @todo Decide how to treat brem photons off prompt leptons -- are they also prompt? "Decay" does not change the lepton PID... 0023 /// 0024 /// @todo Use enums for tau, mu, brem 0025 class PromptFinalState : public FinalState { 0026 public: 0027 0028 /// @name Constructors 0029 /// @{ 0030 0031 /// Constructor without cuts 0032 PromptFinalState(TauDecaysAs taudecays=TauDecaysAs::NONPROMPT, MuDecaysAs mudecays=MuDecaysAs::NONPROMPT); 0033 0034 /// Constructor from a cut 0035 PromptFinalState(const Cut& c, TauDecaysAs taudecays=TauDecaysAs::NONPROMPT, MuDecaysAs mudecays=MuDecaysAs::NONPROMPT); 0036 0037 // Constructor from a FinalState 0038 PromptFinalState(const FinalState& fsp, TauDecaysAs taudecays=TauDecaysAs::NONPROMPT, MuDecaysAs mudecays=MuDecaysAs::NONPROMPT); 0039 0040 // Constructor from a FinalState with an extra cut 0041 PromptFinalState(const FinalState& fsp, const Cut& c, TauDecaysAs taudecays=TauDecaysAs::NONPROMPT, MuDecaysAs mudecays=MuDecaysAs::NONPROMPT); 0042 0043 /// Clone on the heap. 0044 RIVET_DEFAULT_PROJ_CLONE(PromptFinalState); 0045 0046 /// @} 0047 0048 /// Import to avoid warnings about overload-hiding 0049 using Projection::operator =; 0050 0051 0052 /// Accept leptons from decays of prompt muons as themselves being prompt? 0053 void acceptMuonDecays(bool acc=true) { _mudecays = acc; } 0054 /// Accept leptons from decays of prompt taus as themselves being prompt? 0055 void acceptTauDecays(bool acc=true) { _taudecays = acc; } 0056 0057 0058 /// Apply the projection on the supplied event. 0059 void project(const Event& e); 0060 0061 /// Compare projections. 0062 CmpState compare(const Projection& p) const; 0063 0064 0065 protected: 0066 0067 bool _mudecays, _taudecays; 0068 0069 }; 0070 0071 0072 } 0073 0074 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |