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 DEFAULT_RIVET_PROJ_CLONE(DISKinematics); 00031 00032 00033 protected: 00034 00035 /// Perform the projection operation on the supplied event. 00036 virtual void project(const Event& e); 00037 00038 /// Compare with other projections. 00039 virtual int compare(const Projection& p) const; 00040 00041 00042 public: 00043 00044 /// The \f$Q^2\f$. 00045 double Q2() const { return _theQ2; } 00046 00047 /// The \f$W^2\f$. 00048 double W2() const { return _theW2; } 00049 00050 /// The Bjorken \f$x\f$. 00051 double x() const { return _theX; } 00052 00053 /// The Inelasticity \f$y\f$ 00054 double y() const { return _theY; } 00055 00056 /// The centre of mass energy \f$s\f$ 00057 double s() const { return _theS; } 00058 00059 00060 00061 /// The LorentzRotation needed to boost a particle to the hadronic CM frame. 00062 const LorentzTransform& boostHCM() const { 00063 return _hcm; 00064 } 00065 00066 /// The LorentzRotation needed to boost a particle to the hadronic Breit frame. 00067 const LorentzTransform& boostBreit() const { 00068 return _breit; 00069 } 00070 00071 /// The incoming Hadron beam particle 00072 const Particle& beamHadron() const { 00073 return _inHadron; 00074 } 00075 00076 private: 00077 00078 /// The \f$Q^2\f$. 00079 double _theQ2; 00080 00081 /// The \f$W^2\f$. 00082 double _theW2; 00083 00084 /// The Bjorken \f$x\f$. 00085 double _theX; 00086 00087 /// The Inelasticity \f$y\f$ 00088 double _theY; 00089 00090 /// The centre of mass energy \f$s\f$ 00091 double _theS; 00092 00093 Particle _inHadron; 00094 00095 /// The LorentzRotation needed to boost a particle to the hadronic CM frame. 00096 LorentzTransform _hcm; 00097 00098 /// The LorentzRotation needed to boost a particle to the hadronic Breit frame. 00099 LorentzTransform _breit; 00100 }; 00101 00102 00103 } 00104 00105 #endif Generated on Tue Dec 13 2016 16:32:37 for The Rivet MC analysis system by ![]() |