rivet is hosted by Hepforge, IPPP Durham
Rivet  2.7.0

Calculate the hemisphere masses and broadenings. More...

#include <Hemispheres.hh>

Inheritance diagram for Rivet::Hemispheres:
Rivet::Projection Rivet::ProjectionApplier

Public Member Functions

 Hemispheres (const AxesDefinition &ax)
 Constructor.
 
 DEFAULT_RIVET_PROJ_CLONE (Hemispheres)
 Clone on the heap.
 
void clear ()
 Reset the projection.
 
void calc (const Vector3 &n, const std::vector< FourMomentum > &p4s)
 Use the projection manually (i.e. outside the projection mechanism) with raw 4-momentum inputs.
 
void calc (const Vector3 &n, const Particles &particles)
 Use the projection manually (i.e. outside the projection mechanism) with particle inputs.
 
void calc (const Vector3 &n, const Jets &jets)
 Use the projection manually (i.e. outside the projection mechanism) with jet inputs.
 
bool massMatchesBroadening ()
 Is the hemisphere with the max mass the same as the one with the max broadening?
 
Hemisphere masses (scaled by \f$ 1 / E^2_\mathrm{vis} \f$).
double E2vis () const
 
double Evis () const
 
double M2high () const
 
double Mhigh () const
 
double M2low () const
 
double Mlow () const
 
double M2diff () const
 
double Mdiff () const
 
double M2sum () const
 
double Msum () const
 
double scaledM2high () const
 
double scaledMhigh () const
 
double scaledM2low () const
 
double scaledMlow () const
 
double scaledM2diff () const
 
double scaledMdiff () const
 
Hemisphere broadenings.
double Bmax () const
 
double Bmin () const
 
double Bsum () const
 
double Bdiff () const
 
- Public Member Functions inherited from Rivet::Projection
virtual std::string name () const
 Get the name of the projection.
 
 Projection ()
 The default constructor.
 
virtual unique_ptr< Projectionclone () const =0
 Clone on the heap.
 
virtual ~Projection ()
 The destructor.
 
bool before (const Projection &p) const
 
virtual const std::set< PdgIdPair > beamPairs () const
 
ProjectionaddPdgIdPair (PdgId beam1, PdgId beam2)
 
- Public Member Functions inherited from Rivet::ProjectionApplier
 ProjectionApplier ()
 Constructor.
 
void markAsOwned () const
 Mark this object as owned by a proj-handler.
 
std::set< ConstProjectionPtr > getProjections () const
 Get the contained projections, including recursion.
 
bool hasProjection (const std::string &name) const
 Does this applier have a projection registered under the name name?
 
template<typename PROJ >
const PROJ & getProjection (const std::string &name) const
 
template<typename PROJ >
const PROJ & get (const std::string &name) const
 
const ProjectiongetProjection (const std::string &name) const
 
template<typename PROJ >
const PROJ & applyProjection (const Event &evt, const Projection &proj) const
 Apply the supplied projection on event evt. More...
 
template<typename PROJ >
const PROJ & apply (const Event &evt, const Projection &proj) const
 
template<typename PROJ >
const PROJ & applyProjection (const Event &evt, const PROJ &proj) const
 Apply the supplied projection on event evt. More...
 
template<typename PROJ >
const PROJ & apply (const Event &evt, const PROJ &proj) const
 
template<typename PROJ >
const PROJ & applyProjection (const Event &evt, const std::string &name) const
 
template<typename PROJ >
const PROJ & apply (const Event &evt, const std::string &name) const
 
template<typename PROJ >
const PROJ & apply (const std::string &name, const Event &evt) const
 

Protected Member Functions

void project (const Event &e)
 Perform the projection on the Event.
 
int compare (const Projection &p) const
 Compare with other projections.
 
- Protected Member Functions inherited from Rivet::Projection
LoggetLog () const
 Get a Log object based on the getName() property of the calling projection object.
 
void setName (const std::string &name)
 Used by derived classes to set their name.
 
Cmp< ProjectionmkNamedPCmp (const Projection &otherparent, const std::string &pname) const
 
Cmp< ProjectionmkPCmp (const Projection &otherparent, const std::string &pname) const
 
virtual Projectionoperator= (const Projection &)
 Block Projection copying.
 
- Protected Member Functions inherited from Rivet::ProjectionApplier
LoggetLog () const
 
ProjectionHandlergetProjHandler () const
 Get a reference to the ProjectionHandler for this thread.
 
template<typename PROJ >
const PROJ & declareProjection (const PROJ &proj, const std::string &name)
 Register a contained projection. More...
 
template<typename PROJ >
const PROJ & declare (const PROJ &proj, const std::string &name)
 Register a contained projection (user-facing version) More...
 
template<typename PROJ >
const PROJ & declare (const std::string &name, const PROJ &proj)
 Register a contained projection (user-facing, arg-reordered version) More...
 
template<typename PROJ >
const PROJ & addProjection (const PROJ &proj, const std::string &name)
 Register a contained projection (user-facing version) More...
 

Detailed Description

Calculate the hemisphere masses and broadenings.

Calculate the hemisphere masses and broadenings, with event hemispheres defined by the plane normal to the thrust vector, $ \vec{n}_\mathrm{T} $.

The "high" hemisphere mass, $ M^2_\mathrm{high} / E^2_\mathrm{vis} $, is defined as

\[ \frac{M^2_\mathrm{high}}{E^2_\mathrm{vis}} = \frac{1}{E^2_\mathrm{vis}} \max \left( \left| \sum_{\vec{p}_k \cdot \vec{n}_\mathrm{T} > 0} p_k \right|^2 , \left| \sum_{\vec{p}_k \cdot \vec{n}_\mathrm{T} < 0} p_k \right|^2 \right) \]

and the corresponding "low" hemisphere mass, $ M^2_\mathrm{low} / E^2_\mathrm{vis} $, is the sum of momentum vectors in the opposite hemisphere, i.e. $ \max \rightarrow \min $ in the formula above.

Finally, we define a hemisphere mass difference:

\[ \frac{M^2_\mathrm{diff} }{ E^2_\mathrm{vis}} = \frac{ M^2_\mathrm{high} - M^2_\mathrm{low} }{ E^2_\mathrm{vis}} . \]

Similarly to the masses, we also define hemisphere broadenings, using the momenta transverse to the thrust axis:

\[ B_\pm = \frac{ \sum{\pm \vec{p}_i \cdot \vec{n}_\mathrm{T} > 0} |\vec{p}_i \times \vec{n}_\mathrm{T} | }{ 2 \sum_i | \vec{p}_i | } \]

and then a set of the broadening maximum, minimum, sum and difference as follows:

\[ B_\mathrm{max} = \max(B_+, B_-) \]

\[ B_\mathrm{min} = \min(B_+, B_-) \]

\[ B_\mathrm{sum} = B_+ + B_- \]

\[ B_\mathrm{diff} = |B_+ - B_-| \]

Internally, this projection uses a Thrust or Sphericity projection to determine the hemisphere orientation.


The documentation for this class was generated from the following files:
  • include/Rivet/Projections/Hemispheres.hh
  • src/Projections/Hemispheres.cc