Physics:Sphericity tensor

From HandWiki

The sphericity tensor is the basis for calculation of sphericity and aplanarity, two event shape observables particularly suited for [math]\displaystyle{ e^+ e^- \rightarrow Z^0/\gamma* \rightarrow q\bar{q} }[/math], and routinely used in several LEP analyses.

Definition

The sphericity tensor is defined as:

[math]\displaystyle{ S^{ab} = \frac{\sum_i p_i^a p_i^b}{\sum_i |p_i|^2}. }[/math]

Here [math]\displaystyle{ p_i }[/math] are the four-momenta of all particles in an event. Superscript a and b indicates spatial components, and the sphericity tensor can thus be represented as a 3-by-3 matrix. As such, three eigenvalues can be found. If they are ordered as [math]\displaystyle{ \lambda_1 \geq \lambda_2 \geq \lambda_3 }[/math], the sphericity is defined as:

[math]\displaystyle{ S = \frac{3}{2}(\lambda_2 + \lambda_3). }[/math]

The similar quantity aplanarity is defined as:

[math]\displaystyle{ A = \frac{3}{2}\lambda_1 }[/math]

Physical meaning

The eigenvector corresponding to [math]\displaystyle{ \lambda_1 }[/math] is called the sphericity axis. S measures the amount of [math]\displaystyle{ p_\perp^2 }[/math] with respect to that axis, and is constrained to values [math]\displaystyle{ 1 \geq S \geq 0 }[/math]. An event with sphericity 0 is a clean dijet event, and sphericity 1 signifies an isotropic event.

The eigenvectors corresponding to [math]\displaystyle{ \lambda_2 }[/math] and [math]\displaystyle{ \lambda_3 }[/math] spans a plane, the so-called sphericity plane. Aplanarity measures the [math]\displaystyle{ p_\perp }[/math] out of that plane, is constrained to [math]\displaystyle{ 0.5 \geq A \geq 0 }[/math]. Similarly to S, A is used to signify the isotropicity of the event.

Sphericity is not an infrared safe quantity. Since it is quadratic in particle momenta, its value will change if a particle splits up into two collinear particles.

Data and description

Sphericity and aplanarity was measured in all the LEP experiments, and the data are particularly important for tuning of parton showers. Measurements and comparisons to event generators can be found at MCplots for sphericity and aplanarity.

The [math]\displaystyle{ p_\perp }[/math] out of the sphericity plane is a particularly interesting observable, as it has been problematic to describe for all the standard parton shower generators, see e.g. the measurement by ALEPH in the figure.

In Rivet

In the Rivet framework, projections are in place to calculate the sphericity tensor, its eigenvalues and corresponding eigenvectors. Below example code is shown for calculating them all. The example is a full Rivet analysis in itself, which can be compiled with rivet-buildplugin RivetSphericityExample.so SphericityExample.cc --std=c++11. The example just calculates the quantities. One should then fill histograms as needed, etc.

// -*- C++ -*-
#include "Rivet/Analysis.hh"
#include "Rivet/Projections/ChargedFinalState.hh"
#include "Rivet/Projections/Sphericity.hh"

namespace Rivet {

  /// @brief Sphericity example calculation
  class SphericityExample : public Analysis {
  public:

    /// Constructor
    SphericityExample()
      : Analysis("SphericityExample")
    {    }

    /// @name Analysis methods
    //@{

    void init() {
      // Projection containing charged particles of the event
      const ChargedFinalState cfs;
      addProjection(cfs, "CFS");
      // The sphericity projection
      addProjection(Sphericity(cfs), "Sphericity");
    }

    /// Perform the per-event analysis
    void analyze(const Event& event) {
      // The charged final state particles
      const ChargedFinalState& cfs = applyProjection<ChargedFinalState>(event, "CFS");
      // Apply the projection
      const Sphericity& sphericity = applyProjection<Sphericity>(event, "Sphericity");
      // Calculate the sphericity
      const double sph = sphericity.sphericity();
      // Calculate the aplanarity
      const double apl = sphericity.aplanarity();
      
      // We now loop over the charged particles
      for(const Particle& p : cfs.particles()){
	// We calculated the particle pT wrt. the axes of the sphericity plane
	// First pTout
	const double pTout = dot(p.p3(),sphericity.sphericityMinorAxis());
	// Then pTin
	const double pTin = dot(p.p3(),sphericity.sphericityMajorAxis());
      }
    }
    
    void finalize() {
    }

    //@}
  };

  // The hook for the plugin system
  DECLARE_RIVET_PLUGIN(SphericityExample);


}