rivet is hosted by Hepforge, IPPP Durham
Rivet  2.7.0
Sphericity.hh
1 // -*- C++ -*-
2 #ifndef RIVET_Sphericity_HH
3 #define RIVET_Sphericity_HH
4 
5 #include "Rivet/Projection.hh"
6 #include "Rivet/Projections/AxesDefinition.hh"
7 #include "Rivet/Projections/FinalState.hh"
8 #include "Rivet/Event.hh"
9 #include "Rivet/Jet.fhh"
10 
11 namespace Rivet {
12 
13 
14 
52  class Sphericity : public AxesDefinition {
53  public:
54 
56 
57 
59  Sphericity(double rparam=2.0): _regparam(rparam){}
60 
61  Sphericity(const FinalState& fsp, double rparam=2.0);
62 
65 
67 
68 
69  protected:
70 
72  void project(const Event& e);
73 
75  int compare(const Projection& p) const;
76 
77 
78  public:
79 
81  void clear();
82 
84 
85  double sphericity() const { return 3.0 / 2.0 * (lambda2() + lambda3()); }
88  double transSphericity() const { return 2.0 * lambda2() / ( lambda1() + lambda2() ); }
90  double planarity() const { return 2 * (sphericity() - 2 * aplanarity()) / 3.0; }
92  double aplanarity() const { return 3 / 2.0 * lambda3(); }
94 
95 
97 
98  const Vector3& sphericityAxis() const { return _sphAxes[0]; }
101  const Vector3& sphericityMajorAxis() const { return _sphAxes[1]; }
103  const Vector3& sphericityMinorAxis() const { return _sphAxes[2]; }
105 
106 
108 
109  const Vector3& axis1() const { return sphericityAxis(); }
110  const Vector3& axis2() const { return sphericityMajorAxis(); }
111  const Vector3& axis3() const { return sphericityMinorAxis(); }
113 
114 
116 
117  double lambda1() const { return _lambdas[0]; }
118  double lambda2() const { return _lambdas[1]; }
119  double lambda3() const { return _lambdas[2]; }
121 
122  Vector3 mkEigenVector(Matrix3 A, const double &lambda);
123 
126 
127 
129  void calc(const FinalState& fs);
130 
132  void calc(const Particles& particles);
133 
135  void calc(const Jets& jets);
136 
138  void calc(const vector<FourMomentum>& momenta);
139 
143  void calc(const vector<Vector3>& momenta);
144 
146 
147 
148  private:
149 
151  vector<double> _lambdas;
152 
154  vector<Vector3> _sphAxes;
155 
157  const double _regparam;
158 
159  };
160 
161 
162 }
163 
164 #endif
Definition: ALICE_2010_I880049.cc:13
DEFAULT_RIVET_PROJ_CLONE(Sphericity)
Clone on the heap.
void calc(const FinalState &fs)
Manually calculate the sphericity, without engaging the caching system.
Definition: Sphericity.cc:38
const Vector3 & sphericityAxis() const
Sphericity axis.
Definition: Sphericity.hh:99
void project(const Event &e)
Perform the projection on the Event.
Definition: Sphericity.cc:32
Base class for projections which define a spatial basis.
Definition: AxesDefinition.hh:19
double aplanarity() const
Aplanarity.
Definition: Sphericity.hh:92
std::vector< GenParticle const * > particles(const GenEvent *ge)
Definition: RivetHepMC.hh:36
Specialisation of MatrixN to aid 3 dimensional rotations.
Definition: Matrix3.hh:13
const Vector3 & axis2() const
The 2nd most significant ("major") axis.
Definition: Sphericity.hh:110
Calculate the sphericity event shape.
Definition: Sphericity.hh:52
Definition: Event.hh:22
const Vector3 & sphericityMajorAxis() const
Sphericity major axis.
Definition: Sphericity.hh:101
const Vector3 & axis1() const
Definition: Sphericity.hh:109
const Vector3 & sphericityMinorAxis() const
Sphericity minor axis.
Definition: Sphericity.hh:103
Project out all final-state particles in an event. Probably the most important projection in Rivet! ...
Definition: FinalState.hh:12
const Vector3 & axis3() const
The least significant ("minor") axis.
Definition: Sphericity.hh:111
double transSphericity() const
Transverse sphericity.
Definition: Sphericity.hh:88
Base class for all Rivet projections.
Definition: Projection.hh:29
Three-dimensional specialisation of Vector.
Definition: Vector3.hh:26
Sphericity(double rparam=2.0)
Constructor.
Definition: Sphericity.hh:59
void clear()
Reset the projection.
Definition: Sphericity.cc:17
double sphericity() const
Sphericity.
Definition: Sphericity.hh:86
int compare(const Projection &p) const
Compare with other projections.
Definition: Sphericity.cc:23
double planarity() const
Planarity.
Definition: Sphericity.hh:90