00001 // -*- C++ -*- 00002 #ifndef RIVET_CentralEtHCM_HH 00003 #define RIVET_CentralEtHCM_HH 00004 00005 #include "Rivet/Particle.hh" 00006 #include "Rivet/Event.hh" 00007 #include "Rivet/Projections/FinalStateHCM.hh" 00008 00009 namespace Rivet { 00010 00011 00012 /// @brief Summed \f$ E_\perp \f$ of central particles in HCM system. 00013 /// 00014 /// Sum up \f$ E_\perp \f$ of all particles in the hadronic final state in the 00015 /// central rapidity bin of the HCM system. 00016 class CentralEtHCM : public Projection { 00017 00018 public: 00019 00020 /// The default constructor. Must specify a FinalStateHCM projection 00021 /// object which is guaranteed to live throughout the run. 00022 CentralEtHCM(const FinalStateHCM& fs) 00023 { 00024 setName("CentralEtHCM"); 00025 addProjection(fs, "FS"); 00026 } 00027 00028 /// Clone on the heap. 00029 virtual const Projection* clone() const { 00030 return new CentralEtHCM(*this); 00031 } 00032 00033 protected: 00034 00035 /// Apply the projection on to the Event. 00036 void project(const Event& e); 00037 00038 /// Compare with other projections 00039 int compare(const Projection& p) const; 00040 00041 public: 00042 00043 /// The sum of the Et in the central rapidity bin. 00044 double sumEt() const { return _sumet; } 00045 00046 private: 00047 00048 /// The sum of the Et in the central rapidity bin. 00049 double _sumet; 00050 00051 }; 00052 00053 } 00054 00055 00056 #endif