FinalStateHCM.hh

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 #ifndef RIVET_FinalStateHCM_HH
00003 #define RIVET_FinalStateHCM_HH
00004 
00005 #include "Rivet/Particle.hh"
00006 #include "Rivet/Event.hh"
00007 #include "Rivet/Projections/FinalState.hh"
00008 #include "Rivet/Projections/DISKinematics.hh"
00009 
00010 
00011 namespace Rivet {
00012 
00013   /// Project all final state particles (except the scattered lepton)
00014   /// boosted to the hadronic center of mass system.
00015   class FinalStateHCM: public FinalState {
00016 
00017   public:
00018     
00019     /// The default constructor. Must specify DISLepton, DISKinematics
00020     /// and FinalState projection objects which are assumed to live
00021     /// throughout the run.
00022     inline FinalStateHCM(DISLepton& leptonp, DISKinematics& kinematicsp, FinalState& fsp)
00023       : _lepton(&leptonp), _kinematics(&kinematicsp), _fsproj(&fsp) 
00024     { 
00025       addProjection(leptonp);
00026       addProjection(kinematicsp);
00027       addProjection(fsp);
00028     }
00029     
00030 
00031   public:
00032     /// Return the name of the projection
00033     inline string getName() const {
00034       return "FinalStateHCM";
00035     }
00036     
00037   protected:
00038     
00039     /// Apply the projection on the supplied event.
00040     void project(const Event& e);
00041     
00042     /// Compare projections.
00043     int compare(const Projection& p) const;
00044     
00045   private:
00046     
00047     /// The projector for the DIS lepton.
00048     DISLepton* _lepton;
00049     
00050     /// The projector for the DIS kinematics.
00051     DISKinematics* _kinematics;
00052 
00053     /// The projector for the full final state.
00054     FinalState* _fsproj;
00055         
00056   };
00057   
00058 }
00059 
00060 
00061 #endif