PromptFinalState.hh
Go to the documentation of this file.
00001 // -*- C++ -*- 00002 #ifndef RIVET_PromptFinalState_HH 00003 #define RIVET_PromptFinalState_HH 00004 00005 #include "Rivet/Projections/FinalState.hh" 00006 00007 namespace Rivet { 00008 00009 00010 /// @brief Find final state particles directly connected to the hard process. 00011 /// 00012 /// The definition of "prompt" used in Rivet is that from high-scale physics, i.e. 00013 /// particles directly connected to the hard process in an interaction, regardless 00014 /// of realistic reconstructibility of displaced vertices, etc. By construction 00015 /// hadrons cannot be considered prompt as they will be colour connected to other 00016 /// parts of the event through non-perturbative effects: this projection can 00017 /// return electrons, muons, photons, and exotic particles which do not have a 00018 /// hadron in their post-hadronization ancestor chain. Flags exist to choose 00019 /// whether intermediate tau or muon decays invalidate a particle's promptness. 00020 /// 00021 /// @todo Decide how to treat brem photons off prompt leptons -- are they also prompt? "Decay" does not change the lepton PID... 00022 class PromptFinalState : public FinalState { 00023 public: 00024 00025 /// @name Constructors 00026 //@{ 00027 // Final State 00028 PromptFinalState(const FinalState& fsp); 00029 00030 /// Cut constructor. 00031 PromptFinalState(const Cut & c); 00032 00033 /// Clone on the heap. 00034 virtual const Projection* clone() const { 00035 return new PromptFinalState(*this); 00036 } 00037 //@} 00038 00039 /// Accept particles from decays of prompt muons as themselves being prompt? 00040 void acceptMuonDecays(bool acc=true) { _acceptMuDecays = acc; } 00041 /// Accept particles from decays of prompt taus as themselves being prompt? 00042 void acceptTauDecays(bool acc=true) { _acceptTauDecays = acc; } 00043 00044 /// Decide if a given particle is prompt based on set definition flags 00045 /// @todo Move into ParticleUtils / MCUtils 00046 /// @note This one doesn't make any judgements about final-stateness 00047 bool isPrompt(const Particle& p) const; 00048 00049 protected: 00050 00051 /// Apply the projection on the supplied event. 00052 void project(const Event& e); 00053 00054 /// Compare projections. 00055 int compare(const Projection& p) const; 00056 00057 private: 00058 00059 bool _acceptMuDecays, _acceptTauDecays; 00060 00061 }; 00062 00063 } 00064 00065 00066 #endif Generated on Wed Oct 7 2015 12:09:14 for The Rivet MC analysis system by ![]() |