Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

Thrust Class Reference

#include <Thrust.hh>

Inheritance diagram for Thrust:

Inheritance graph
[legend]
Collaboration diagram for Thrust:

Collaboration graph
[legend]
List of all members.

Detailed Description

Obtain the e+ e- thrust event shape, consisting of the thrust basis and the thrust scalar values in each direction (the thrust, thrust major and thrust minor).

Author:
Andy Buckley
The scalar (maximum) thrust is defined as

\[ T = \mathrm{max}_{\vec{n}} \frac{\sum_i \left|\vec{p}_i \cdot \vec{n} \right|}{\sum_i |\vec{p}_i|} \]

, with the direction of the unit vector $ \vec{n} $ which maximises $ T $ being identified as the thrust axis. The unit vector which maximises the thrust scalar in the plane perpendicular to $ \vec{n} $ is the "thrust major" direction, and the vector perpendicular to both the thrust and thrust major directions is the thrust minor. Both the major and minor directions have associated thrust scalars.

Thrust calculations have particularly simple forms for less than 4 particles, and in those cases this projection is computationally minimal. For 4 or more particles, a more general calculation must be carried out, based on the Brandt/Dahmen method from Z. Phys. C1 (1978). While a polynomial improvement on the exponential scaling of the naive method, this algorithm scales asymptotically as $ \mathcal{O}\left( n^3 \right) $. Be aware that the thrust may easily be the most computationally demanding projection in Rivet for large events!

The Rivet implementation of thrust is based heavily on Stefan Gieseke's Herwig++ re-coding of the 'tasso' code from HERWIG.

Definition at line 42 of file Thrust.hh.


Public Member Functions

 Thrust (FinalState &fsp)
 Constructor. The FinalState projection must live throughout the run.
string getName () const
 Return the name of the projection.
bool before (const Projection &p) const
virtual const Cuts getCuts () const
virtual const set< BeamPairgetBeamPairs () const
set< Projection * > getProjections () const
 Get the contained projections, including recursion.
const double thrust () const
const double thrustMajor () const
 The thrust major scalar, $ M $, (thrust along thrust major axis).
const double thrustMinor () const
 The thrust minor scalar, $ m $, (thrust along thrust minor axis).
const double oblateness () const
 The oblateness, $ O = M - m $ .
const Vector3thrustAxis () const
const Vector3thrustMajorAxis () const
 The thrust major axis (axis of max thrust perpendicular to thrust axis).
const Vector3thrustMinorAxis () const
 The thrust minor axis (axis perpendicular to thrust and thrust major).

Protected Member Functions

void project (const Event &e)
 Perform the projection on the Event.
int compare (const Projection &p) const
 Compare projections.
ProjectionaddProjection (Projection &proj)
 Add a projection dependency to the projection list.
ProjectionaddBeamPair (const ParticleName &beam1, const ParticleName &beam2)
 Add a colliding beam pair.
ProjectionaddCut (const string &quantity, const Comparison &comparison, const double value)
 Add a cut.
LoggetLog ()
 Get a Log object based on the getName() property of the calling projection object.

Protected Attributes

Cuts _cuts
 Parameter constraints.
set< BeamPair_beamPairs
 Beam-type constraint.
set< Projection * > _projections
 Collection of pointers to projections, for automatically combining constraints.

Friends

class Event
 Event is a friend.
class Cmp<Projection>
 The Cmp specialization for Projection is a friend.

Constructor & Destructor Documentation

Thrust FinalState fsp  )  [inline]
 

Constructor. The FinalState projection must live throughout the run.

Definition at line 47 of file Thrust.hh.


Member Function Documentation

Projection& addBeamPair const ParticleName beam1,
const ParticleName beam2
[inline, protected, inherited]
 

Add a colliding beam pair.

Definition at line 145 of file Projection.hh.

References Rivet::BeamPair.

Projection& addCut const string &  quantity,
const Comparison comparison,
const double  value
[inline, protected, inherited]
 

Add a cut.

Definition at line 151 of file Projection.hh.

Projection& addProjection Projection proj  )  [inline, protected, inherited]
 

Add a projection dependency to the projection list.

Definition at line 139 of file Projection.hh.

bool before const Projection p  )  const [inline, inherited]
 

Determine whether this object should be ordered before the object p given as argument. If p is of a different class than this, the before() function of the corresponding type_info objects is used. Otherwise, if the objects are of the same class, the virtual compare(const Projection &) will be returned.

Definition at line 88 of file Projection.hh.

Referenced by less< const Rivet::Projection * >::operator()().

int compare const Projection p  )  const [protected, virtual]
 

Compare projections.

Implements Projection.

Definition at line 11 of file Thrust.cc.

virtual const set<BeamPair> getBeamPairs  )  const [inline, virtual, inherited]
 

Return the BeamConstraints for this projection. Derived classes should ensure that all contained projections are registered in the _projections set for the beam constraint chaining to work.

Definition at line 114 of file Projection.hh.

References Cuts::end(), and Rivet::intersection().

virtual const Cuts getCuts  )  const [inline, virtual, inherited]
 

Return the Cuts objects for this projection. Derived classes should ensure that all contained projections are registered in the _projections set for the cut chaining to work.

Definition at line 102 of file Projection.hh.

References Cuts::addCuts().

Log & getLog  )  [protected, inherited]
 

Get a Log object based on the getName() property of the calling projection object.

Definition at line 7 of file Projection.cc.

References Log::getLog(), and Projection::getName().

Referenced by VetoedFinalState::project(), TrackJet::project(), TotalVisibleMomentum::project(), Sphericity::project(), Multiplicity::project(), ChargedLeptons::project(), ChargedFinalState::project(), and Beam::project().

string getName  )  const [inline, virtual]
 

Return the name of the projection.

Reimplemented from Projection.

Definition at line 56 of file Thrust.hh.

set<Projection*> getProjections  )  const [inline, inherited]
 

Get the contained projections, including recursion.

Definition at line 128 of file Projection.hh.

References Cuts::end().

const double oblateness  )  const [inline]
 

The oblateness, $ O = M - m $ .

Definition at line 78 of file Thrust.hh.

Referenced by ZPhys73C11::analyze().

void project const Event e  )  [protected, virtual]
 

Perform the projection on the Event.

Implements Projection.

Definition at line 200 of file Thrust.cc.

References Event::applyProjection().

const double thrust  )  const [inline]
 

Thrust scalar accessors The thrust scalar, $ T $, (maximum thrust).

Definition at line 72 of file Thrust.hh.

Referenced by ZPhys73C11::analyze(), and TestAnalysis::analyze().

const Vector3& thrustAxis  )  const [inline]
 

Thrust axis accessors The thrust axis.

Definition at line 83 of file Thrust.hh.

Referenced by ZPhys73C11::analyze().

const double thrustMajor  )  const [inline]
 

The thrust major scalar, $ M $, (thrust along thrust major axis).

Definition at line 74 of file Thrust.hh.

Referenced by ZPhys73C11::analyze().

const Vector3& thrustMajorAxis  )  const [inline]
 

The thrust major axis (axis of max thrust perpendicular to thrust axis).

Definition at line 85 of file Thrust.hh.

Referenced by ZPhys73C11::analyze().

const double thrustMinor  )  const [inline]
 

The thrust minor scalar, $ m $, (thrust along thrust minor axis).

Definition at line 76 of file Thrust.hh.

Referenced by ZPhys73C11::analyze().

const Vector3& thrustMinorAxis  )  const [inline]
 

The thrust minor axis (axis perpendicular to thrust and thrust major).

Definition at line 87 of file Thrust.hh.

Referenced by ZPhys73C11::analyze().


Friends And Related Function Documentation

friend class Cmp<Projection> [friend, inherited]
 

The Cmp specialization for Projection is a friend.

Definition at line 31 of file Projection.hh.

friend class Event [friend, inherited]
 

Event is a friend.

Definition at line 28 of file Projection.hh.


Member Data Documentation

set<BeamPair> _beamPairs [protected, inherited]
 

Beam-type constraint.

Definition at line 164 of file Projection.hh.

Cuts _cuts [protected, inherited]
 

Parameter constraints.

Definition at line 161 of file Projection.hh.

set<Projection*> _projections [protected, inherited]
 

Collection of pointers to projections, for automatically combining constraints.

Definition at line 167 of file Projection.hh.


The documentation for this class was generated from the following files: