00001 // -*- C++ -*- 00002 #ifndef RIVET_Beam_HH 00003 #define RIVET_Beam_HH 00004 00005 #include "Rivet/Projection.hh" 00006 #include "Rivet/Event.hh" 00007 #include "Rivet/Particle.hh" 00008 00009 00010 namespace Rivet { 00011 00012 /// Project out the incoming beams 00013 class Beam : public Projection { 00014 00015 public: 00016 00017 /// The default constructor. 00018 inline Beam() { } 00019 00020 /// The default destructor. 00021 inline ~Beam() { } 00022 00023 /// Return the name of the projection 00024 inline string getName() const { 00025 return "Beam"; 00026 } 00027 00028 /// The pair of beam particles in the current collision in GenEvent 00029 inline const ParticlePair& getBeams() const { 00030 return _theBeams; 00031 } 00032 00033 00034 protected: 00035 /// Project on to the Event 00036 virtual void project(const Event& e); 00037 00038 /// Compare with other projections. 00039 inline virtual int compare(const Projection& p) const { 00040 return 0; 00041 } 00042 00043 00044 private: 00045 /// The beam particles in the current collision in GenEvent 00046 ParticlePair _theBeams; 00047 00048 }; 00049 00050 } 00051 00052 #endif