00001 // -*- C++ -*- 00002 #ifndef RIVET_WZandh_HH 00003 #define RIVET_WZandh_HH 00004 00005 #include "Rivet/Projection.hh" 00006 #include "Rivet/Particle.hh" 00007 #include "Rivet/Event.hh" 00008 00009 00010 namespace Rivet { 00011 00012 /// Project out the vector bosons and Higgs particles. 00013 class WZandh: public Projection { 00014 00015 public: 00016 00017 /// @name Standard constructors and destructors. */ 00018 //@{ 00019 /// The default constructor. 00020 inline WZandh() {} 00021 00022 public: 00023 /// Return the name of the projection 00024 inline string getName() const { 00025 return "WZandh"; 00026 } 00027 00028 protected: 00029 00030 /// Apply the projection to the event. 00031 void project(const Event& e); 00032 00033 /// Compare projections. 00034 int compare(const Projection& p) const; 00035 00036 public: 00037 00038 /// Access the Z's decayed to e+e- 00039 inline const ParticleVector& Zees() const { return _theZees; } 00040 00041 /// Access the W's decayed to e neutrino 00042 inline const ParticleVector& Wens() const { return _theWens; } 00043 00044 /// Access the W's decayed to mu neutrino 00045 inline const ParticleVector& Wmns() const { return _theWmns; } 00046 00047 /// Access the Z's decayed to mu mu 00048 inline const ParticleVector& Zmms() const { return _theZmms; } 00049 00050 /// Access the W's decayed to tau neutrino 00051 inline const ParticleVector& Wtns() const { return _theWtns; } 00052 00053 /// Access the Z's decayed to tau tau 00054 inline const ParticleVector& Ztts() const { return _theZtts; } 00055 00056 /// Access the Z's decayed to nu nu 00057 inline const ParticleVector& Znns() const { return _theZnns; } 00058 00059 /// Access the W's decayed to qq 00060 inline const ParticleVector& Wqqs() const { return _theWqqs; } 00061 00062 /// Access the Z's decayed to qq 00063 inline const ParticleVector& Zqqs() const { return _theZqqs; } 00064 00065 /// Access Higgses 00066 inline const ParticleVector& hs() const { return _thehs; } 00067 00068 private: 00069 00070 /// @name The particles. 00071 //@{ 00072 ParticleVector _theWens; 00073 ParticleVector _theZees; 00074 ParticleVector _theWmns; 00075 ParticleVector _theZmms; 00076 ParticleVector _theWtns; 00077 ParticleVector _theZtts; 00078 ParticleVector _theZnns; 00079 ParticleVector _theWqqs; 00080 ParticleVector _theZqqs; 00081 ParticleVector _thehs; 00082 //@} 00083 00084 }; 00085 00086 } 00087 00088 00089 #endif