Rivet  1.8.0
ParisiTensor.hh
1 // -*- C++ -*-
2 #ifndef RIVET_ParisiTensor_HH
3 #define RIVET_ParisiTensor_HH
4 
5 #include "Rivet/Projection.hh"
6 #include "Rivet/Projections/FinalState.hh"
7 #include "Rivet/Projections/Sphericity.hh"
8 #include "Rivet/Event.hh"
9 
10 namespace Rivet {
11 
12 
40  class ParisiTensor : public Projection {
41  public:
42 
45  {
46  setName("ParisiTensor");
47  addProjection(fsp, "FS");
48  addProjection(Sphericity(fsp, 1.0), "Sphericity");
49  clear();
50  }
51 
53  virtual const Projection* clone() const {
54  return new ParisiTensor(*this);
55  }
56 
57 
58  protected:
59 
61  void project(const Event& e);
62 
64  int compare(const Projection& p) const;
65 
66 
67  public:
68 
70  void clear();
71 
72 
73  public:
74 
77  double C() const { return _C; }
78  double D() const { return _D; }
80 
83  double lambda1() const { return _lambda[0]; }
84  double lambda2() const { return _lambda[1]; }
85  double lambda3() const { return _lambda[2]; }
87 
88 
89  private:
90 
92  double _C, _D;
93 
95  double _lambda[3];
96 
97  };
98 
99 
100 }
101 
102 
103 #endif