Rivet  1.8.0
ParisiTensor.hh
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