rivet is hosted by Hepforge, IPPP Durham
DISFinalState.hh
Go to the documentation of this file.
00001 // -*- C++ -*-
00002 #ifndef RIVET_DISFinalState_HH
00003 #define RIVET_DISFinalState_HH
00004 
00005 #include "Rivet/Projections/FinalState.hh"
00006 #include "Rivet/Projections/DISKinematics.hh"
00007 
00008 namespace Rivet {
00009 
00010 
00011   /// @brief Final state particles boosted to the hadronic center of mass system.
00012   ///
00013   /// NB. The DIS scattered lepton is not included in the final state particles.
00014   class DISFinalState: public FinalState {
00015   public:
00016 
00017     /// Type of DIS boost to apply
00018     enum BoostType { HCM, BREIT };
00019 
00020 
00021     /// @name Constructors
00022     //@{
00023 
00024     /// Constructor
00025     DISFinalState(const DISKinematics& kinematicsp, BoostType boosttype)
00026       : _boosttype(boosttype)
00027     {
00028       setName("DISFinalState");
00029       addProjection(kinematicsp, "Kinematics");
00030     }
00031 
00032     /// Clone on the heap.
00033     DEFAULT_RIVET_PROJ_CLONE(DISFinalState);
00034 
00035     //@}
00036 
00037 
00038   protected:
00039 
00040     /// Apply the projection on the supplied event.
00041     void project(const Event& e);
00042 
00043     /// Compare projections.
00044     int compare(const Projection& p) const {
00045       const DISFinalState& other = dynamic_cast<const DISFinalState&>(p);
00046       return mkNamedPCmp(p, "Kinematics") || cmp(_boosttype, other._boosttype);
00047     }
00048 
00049 
00050   private:
00051 
00052     BoostType _boosttype;
00053 
00054   };
00055 
00056 
00057 }
00058 
00059 #endif