ThePEG::Helicity::SpinInfo Class Reference

The SpinInfo is the base class for the spin information for the spin correlation algorithm. More...

#include <SpinInfo.h>

Inheritance diagram for ThePEG::Helicity::SpinInfo:

ThePEG::SpinBase ThePEG::EventInfoBase ThePEG::Base ThePEG::Pointer::ReferenceCounted ThePEG::Helicity::FermionSpinInfo ThePEG::Helicity::RSFermionSpinInfo ThePEG::Helicity::ScalarSpinInfo ThePEG::Helicity::TensorSpinInfo ThePEG::Helicity::VectorSpinInfo

List of all members.

Public Types

enum  DevelopedStatus { Undeveloped = 0, Developed = 1, NeedsUpdate = 2 }
 Enum to store the status.

Public Member Functions

virtual void rebind (const EventTranslationMap &trans)
 Rebind to cloned objects.
virtual EIPtr clone () const
 Standard clone method.
void update () const
 Method to handle the delelation.
virtual void transform (const LorentzMomentum &, const LorentzRotation &r)
 Perform a lorentz rotation of the spin information.
Standard constructors and destructors.
 SpinInfo ()
 Default constructor.
 SpinInfo (PDT::Spin s, const Lorentz5Momentum &p=Lorentz5Momentum(), bool time=false)
 Standard Constructor.
 SpinInfo (const SpinInfo &)
 Copy-constructor.
Access the vertices.
void setProductionVertex (VertexPtr in) const
 Set the vertex at which the particle was produced.
tcVertexPtr getProductionVertex () const
 Get the vertex at which the particle was produced.
void setDecayVertex (VertexPtr in) const
 Set the vertex at which the particle decayed or branched.
tcVertexPtr getDecayVertex () const
 Get the vertex at which the particle decayed or branched.
Access information about the associated particle.
bool decayed () const
 Has the particle decayed?
void decayed (bool b) const
 Set if the particle has decayed.
DevelopedStatus developed () const
 Return true if the decay matrix required to perform the decays of the siblings of a particle has been calculated.
void needsUpdate () const
 Needs update.
void decay () const
 Calculate the rho matrix for the decay if not already done.
void develop () const
 Set the developed flag and calculate the D matrix for the decay.
PDT::Spin iSpin () const
 Return 2s+1 for the particle.
const Lorentz5MomentumproductionMomentum () const
 Return the momentum of the particle when it was produced.
const Lorentz5MomentumcurrentMomentum () const
 The current momentum of the particle.
bool timelike () const
 Return true if particle is timelike (rather than spacelike).
int productionLocation () const
 Access to the locations.
int decayLocation () const
 Decay Location.
Access the rho and D matrices.
RhoDMatrix rhoMatrix () const
 Access the rho matrix.
RhoDMatrixrhoMatrix ()
 Access the rho matrix.
RhoDMatrix DMatrix () const
 Access the D matrix.
RhoDMatrixDMatrix ()
 Access the D matrix.

Static Public Member Functions

static void Init ()
 Standard Init function.

Protected Member Functions

bool isNear (const Lorentz5Momentum &p)
 Check if momentum is near to the current momentum.

Private Member Functions

SpinInfooperator= (const SpinInfo &)
 Private and non-existent assignment operator.
void redevelop () const
 Set the developed flag and calculate the D matrix for the decay, and all decays further up the chain.

Private Attributes

VertexPtr _production
 Pointer to the production vertex for the particle.
VertexPtr _decay
 Pointers to the decay vertex for the particle.
bool _timelike
 Is this is timelike (true) or spacelike (false ) particle? This is used to decide if the particle is incoming or outgoing at the production vertex.
int _prodloc
 Location in the hard vertex array at production.
int _decayloc
 Location in the hard vertex array at decay.
bool _decayed
 Has the particle been decayed? (I.e.
DevelopedStatus _developed
 Has the particle been developed? (I.e.
RhoDMatrix _rhomatrix
 Storage of the rho matrix.
RhoDMatrix _Dmatrix
 Storage of the decay matrix.
PDT::Spin _spin
 The spin of the particle.
Lorentz5Momentum _productionmomentum
 Momentum of the particle when it was produced.
Lorentz5Momentum _decaymomentum
 Momentum of the particle when it decayed.
Lorentz5Momentum _currentmomentum
 Current momentum of the particle.

Static Private Attributes

static NoPIOClassDescription
< SpinInfo
initSpinInfo
 Describe a concrete class without persistent data.
static const double _eps
 A small energy for comparing momenta to check if Lorentz Transformations should be performed.


Detailed Description

The SpinInfo is the base class for the spin information for the spin correlation algorithm.

It inherits from ThePEG SpinBase class and in turn the implementations for different spin states inherit from this.

The class contains pointers to the vertex where the particle is produced and where it decays, together with methods to set/get these.

There are two flags decayed which store information on the state of the particle.

The decayed() members provides access to the _decay data member which is true if the spin density matrix required to perform the decay of a timelike particle has been calculated (this would be a decay matrix for a spacelike particle.) This is set by the decay() method which calls a method from the production vertex to calculate this matrix. The decay() method should be called by a decayer which uses spin correlation method before it uses the spin density matrix to calculate the matrix element for the decay.

The developed() member provides access to the _developed data member which is true if the decay matrix required to perform the decays of the siblings of a particle has been calculated (this would a spin density matrix for a spacelike particle.) This is set by the developed() method which calls a method from the decay vertex to calculate the matrix. The developed() method is called by a DecayHandler which is capable of performing spin correlations after all the unstable particles produced by a decaying particle are decayed.

Methods are also provided to access the spin density and decay matrices for a particle.

Author:
Peter Richardson

Definition at line 62 of file SpinInfo.h.


Constructor & Destructor Documentation

ThePEG::Helicity::SpinInfo::SpinInfo ( PDT::Spin  s,
const Lorentz5Momentum p = Lorentz5Momentum(),
bool  time = false 
) [inline]

Standard Constructor.

Parameters:
s the spin.
p the production momentum.
time true if the particle is time-like.

Definition at line 93 of file SpinInfo.h.


Member Function Documentation

virtual void ThePEG::Helicity::SpinInfo::rebind ( const EventTranslationMap trans  )  [virtual]

Rebind to cloned objects.

If a FermionSpinInfo is cloned together with a whole Event and this has pointers to other event record objects, these should be rebound to their clones in this function.

Reimplemented from ThePEG::EventInfoBase.

int ThePEG::Helicity::SpinInfo::productionLocation (  )  const [inline]

Access to the locations.

Production Location

Definition at line 246 of file SpinInfo.h.

References _prodloc.


Member Data Documentation

bool ThePEG::Helicity::SpinInfo::_decayed [mutable, private]

Has the particle been decayed? (I.e.

has the rho matrix for the decay been calculated.)

Definition at line 341 of file SpinInfo.h.

Referenced by decayed().

Has the particle been developed? (I.e.

has the D matrix encoding the info about the decay been calculated)

Definition at line 347 of file SpinInfo.h.

Referenced by developed(), and needsUpdate().


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

Generated on Thu Apr 29 12:43:26 2010 for ThePEG by  doxygen 1.5.5