DISKinematics.hh
Go to the documentation of this file.
00001 // -*- C++ -*- 00002 #ifndef RIVET_DISKinematics_HH 00003 #define RIVET_DISKinematics_HH 00004 00005 #include "Rivet/Particle.hh" 00006 #include "Rivet/Event.hh" 00007 #include "Rivet/Projection.hh" 00008 #include "Rivet/Projections/DISLepton.hh" 00009 #include "Rivet/Projections/Beam.hh" 00010 00011 namespace Rivet { 00012 00013 00014 /// @brief Get the DIS kinematic variables and relevant boosts for an event. 00015 class DISKinematics : public Projection { 00016 00017 public: 00018 00019 /// The default constructor. 00020 DISKinematics() 00021 : _theQ2(-1.0), _theW2(-1.0), _theX(-1.0), _theY(-1.0), _theS(-1.0) 00022 { 00023 setName("DISKinematics"); 00024 //addPdgIdPair(ANY, hadid); 00025 addProjection(Beam(), "Beam"); 00026 addProjection(DISLepton(), "Lepton"); 00027 } 00028 00029 /// Clone on the heap. 00030 virtual const Projection* clone() const { 00031 return new DISKinematics(*this); 00032 } 00033 00034 00035 protected: 00036 00037 /// Perform the projection operation on the supplied event. 00038 virtual void project(const Event& e); 00039 00040 /// Compare with other projections. 00041 virtual int compare(const Projection& p) const; 00042 00043 00044 public: 00045 00046 /// The \f$Q^2\f$. 00047 double Q2() const { return _theQ2; } 00048 00049 /// The \f$W^2\f$. 00050 double W2() const { return _theW2; } 00051 00052 /// The Bjorken \f$x\f$. 00053 double x() const { return _theX; } 00054 00055 /// The Inelasticity \f$y\f$ 00056 double y() const { return _theY; } 00057 00058 /// The centre of mass energy \f$s\f$ 00059 double s() const { return _theS; } 00060 00061 00062 00063 /// The LorentzRotation needed to boost a particle to the hadronic CM frame. 00064 const LorentzTransform& boostHCM() const { 00065 return _hcm; 00066 } 00067 00068 /// The LorentzRotation needed to boost a particle to the hadronic Breit frame. 00069 const LorentzTransform& boostBreit() const { 00070 return _breit; 00071 } 00072 00073 /// The incoming Hadron beam particle 00074 const Particle& beamHadron() const { 00075 return _inHadron; 00076 } 00077 00078 private: 00079 00080 /// The \f$Q^2\f$. 00081 double _theQ2; 00082 00083 /// The \f$W^2\f$. 00084 double _theW2; 00085 00086 /// The Bjorken \f$x\f$. 00087 double _theX; 00088 00089 /// The Inelasticity \f$y\f$ 00090 double _theY; 00091 00092 /// The centre of mass energy \f$s\f$ 00093 double _theS; 00094 00095 Particle _inHadron; 00096 00097 /// The LorentzRotation needed to boost a particle to the hadronic CM frame. 00098 LorentzTransform _hcm; 00099 00100 /// The LorentzRotation needed to boost a particle to the hadronic Breit frame. 00101 LorentzTransform _breit; 00102 }; 00103 00104 00105 } 00106 00107 #endif Generated on Thu Feb 6 2014 17:38:44 for The Rivet MC analysis system by ![]() |