Rivet
1.8.0
|
00001 // -*- C++ -*- 00002 #ifndef RIVET_ParisiTensor_HH 00003 #define RIVET_ParisiTensor_HH 00004 00005 #include "Rivet/Projection.hh" 00006 #include "Rivet/Projections/FinalState.hh" 00007 #include "Rivet/Projections/Sphericity.hh" 00008 #include "Rivet/Event.hh" 00009 00010 namespace Rivet { 00011 00012 00040 class ParisiTensor : public Projection { 00041 public: 00042 00044 ParisiTensor(const FinalState& fsp) 00045 { 00046 setName("ParisiTensor"); 00047 addProjection(fsp, "FS"); 00048 addProjection(Sphericity(fsp, 1.0), "Sphericity"); 00049 clear(); 00050 } 00051 00053 virtual const Projection* clone() const { 00054 return new ParisiTensor(*this); 00055 } 00056 00057 00058 protected: 00059 00061 void project(const Event& e); 00062 00064 int compare(const Projection& p) const; 00065 00066 00067 public: 00068 00070 void clear(); 00071 00072 00073 public: 00074 00077 double C() const { return _C; } 00078 double D() const { return _D; } 00080 00083 double lambda1() const { return _lambda[0]; } 00084 double lambda2() const { return _lambda[1]; } 00085 double lambda3() const { return _lambda[2]; } 00087 00088 00089 private: 00090 00092 double _C, _D; 00093 00095 double _lambda[3]; 00096 00097 }; 00098 00099 00100 } 00101 00102 00103 #endif