Back to home page

EIC code displayed by LXR

 
 

    


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

0001 // -*- C++ -*-
0002 #ifndef RIVET_PrimaryHadrons_HH
0003 #define RIVET_PrimaryHadrons_HH
0004 
0005 #include "Rivet/Projections/FinalState.hh"
0006 #include "Rivet/Projections/UnstableParticles.hh"
0007 #include "Rivet/Particle.hh"
0008 #include "Rivet/Event.hh"
0009 
0010 namespace Rivet {
0011 
0012 
0013   /// @brief Project out the first hadrons from hadronisation.
0014   ///
0015   /// @todo Also be able to return taus? Prefer a separate tau finder.
0016   ///
0017   /// @todo This assumes that the primary hadrons are unstable... should we also look for stable primary hadrons?
0018   class PrimaryHadrons : public FinalState {
0019   public:
0020 
0021     /// @name Constructors and destructors.
0022     /// @{
0023 
0024     /// Constructor with cuts argument
0025     PrimaryHadrons(const Cut& c=Cuts::open()) {
0026       setName("PrimaryHadrons");
0027       declare(UnstableParticles(c), "UFS");
0028     }
0029 
0030     /// Constructor with specification of the minimum and maximum pseudorapidity
0031     /// \f$ \eta \f$ and the min \f$ p_T \f$ (in GeV).
0032     PrimaryHadrons(double mineta, double maxeta, double minpt=0.0*GeV) {
0033       setName("PrimaryHadrons");
0034       declare(UnstableParticles(Cuts::etaIn(mineta, maxeta) && Cuts::pT > minpt), "UFS");
0035     }
0036 
0037     /// Clone on the heap.
0038     RIVET_DEFAULT_PROJ_CLONE(PrimaryHadrons);
0039 
0040     /// @}
0041 
0042 
0043     /// Import to avoid warnings about overload-hiding
0044     using Projection::operator =;
0045 
0046 
0047     /// Apply the projection to the event.
0048     virtual void project(const Event& e);
0049 
0050     // /// Compare projections.
0051     // CmpState compare(const Projection& p) const;
0052 
0053   };
0054 
0055 
0056 }
0057 
0058 
0059 #endif