00001
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
00011 namespace Rivet {
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 class ParisiTensor : public Projection {
00041
00042 public:
00043
00044
00045 inline ParisiTensor(FinalState& fsp)
00046 : _C(0), _D(0), _sphproj(Sphericity(fsp, 1.0))
00047 {
00048 addProjection(_sphproj);
00049 }
00050
00051 public:
00052
00053 inline string getName() const {
00054 return "ParisiTensor";
00055 }
00056
00057 protected:
00058
00059
00060 void project(const Event& e);
00061
00062
00063 int compare(const Projection& p) const;
00064
00065 public:
00066
00067
00068
00069 inline const double C() const { return _C; }
00070 inline const double D() const { return _D; }
00071
00072
00073
00074
00075 inline const double lambda1() const { return _lambda[0]; }
00076 inline const double lambda2() const { return _lambda[1]; }
00077 inline const double lambda3() const { return _lambda[2]; }
00078
00079
00080 private:
00081
00082
00083 double _C, _D;
00084
00085
00086 double _lambda[3];
00087
00088
00089 Sphericity _sphproj;
00090
00091 };
00092
00093 }
00094
00095
00096 #endif