InitialQuarks.hh

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 #ifndef RIVET_InitialQuarks_HH
00003 #define RIVET_InitialQuarks_HH
00004 
00005 #include "Rivet/Projection.hh"
00006 #include "Rivet/Particle.hh"
00007 #include "Rivet/Event.hh"
00008 
00009 namespace Rivet {
00010 
00011 
00012   /// Project out quarks from the hard process in e+ e- -> Z0 events
00013   /// @deprecated This is a very dangerous and specific projection! Use e.g. PID::hasBottom and friends instead
00014   class InitialQuarks : public Projection { 
00015   public:
00016  
00017     /// @name Standard constructors and destructors.
00018     //@{
00019     /// The default constructor. May specify the minimum and maximum
00020     /// pseudorapidity \f$ \eta \f$ and the min \f$ p_T \f$ (in GeV).
00021     InitialQuarks()
00022     {
00023       setName("InitialQuarks");
00024     }
00025 
00026 
00027     /// Clone on the heap.
00028     virtual const Projection* clone() const {
00029       return new InitialQuarks(*this);
00030     }
00031     //@}
00032      
00033     /// Access the projected final-state particles.
00034     virtual const ParticleVector& particles() const { return _theParticles; }
00035 
00036     /// Is this final state empty?
00037     virtual bool empty() const { return _theParticles.empty(); }
00038     /// @deprecated Is this final state empty?
00039     virtual bool isEmpty() const { return _theParticles.empty(); }
00040 
00041 
00042   protected:
00043  
00044     /// Apply the projection to the event.
00045     virtual void project(const Event& e);
00046  
00047     /// Compare projections.
00048     virtual int compare(const Projection& p) const;
00049  
00050 
00051   protected:
00052 
00053     /// The final-state particles.
00054     ParticleVector _theParticles;
00055  
00056   };
00057 
00058 }
00059 
00060 
00061 #endif