Rivet  1.8.0
DISFinalState.hh
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 
00014   class DISFinalState: public FinalState {
00015   public:
00016 
00018     enum BoostType { HCM, BREIT };
00019 
00020 
00022 
00023 
00025     DISFinalState(const DISKinematics& kinematicsp, BoostType boosttype)
00026       : _boosttype(boosttype)
00027     {
00028       setName("DISFinalState");
00029       addProjection(kinematicsp, "Kinematics");
00030     }
00031 
00033     virtual const Projection* clone() const {
00034       return new DISFinalState(*this);
00035     }
00036 
00038 
00039 
00040   protected:
00041 
00043     void project(const Event& e);
00044 
00046     int compare(const Projection& p) const {
00047       const DISFinalState& other = dynamic_cast<const DISFinalState&>(p);
00048       return mkNamedPCmp(p, "Kinematics") || cmp(_boosttype, other._boosttype);
00049     }
00050 
00051 
00052   private:
00053 
00054     BoostType _boosttype;
00055 
00056   };
00057 
00058 
00059 }
00060 
00061 #endif