2 #ifndef RIVET_Sphericity_HH
3 #define RIVET_Sphericity_HH
5 #include "Rivet/Projection.hh"
6 #include "Rivet/Projections/AxesDefinition.hh"
7 #include "Rivet/Projections/FinalState.hh"
8 #include "Rivet/Event.hh"
85 double sphericity()
const {
return 3.0 / 2.0 * (lambda2() + lambda3()); }
87 double transSphericity()
const {
return 2.0 * lambda2() / ( lambda1() + lambda2() ); }
91 double aplanarity()
const {
return 3 / 2.0 * lambda3(); }
97 const Vector3& sphericityAxis()
const {
return _sphAxes[0]; }
113 double lambda1()
const {
return _lambdas[0]; }
114 double lambda2()
const {
return _lambdas[1]; }
115 double lambda3()
const {
return _lambdas[2]; }
124 void calc(
const FinalState& fs);
127 void calc(
const vector<Particle>& fsparticles);
130 void calc(
const vector<FourMomentum>& fsmomenta);
133 void calc(
const vector<Vector3>& fsmomenta);
141 vector<double> _lambdas;
144 vector<Vector3> _sphAxes;
147 const double _regparam;
152 void _calcSphericity(
const vector<Vector3>& fsmomenta);