thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
ThePEG::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::SpinInfo:

Public Types

enum  DevelopedStatus { Undeveloped =0 , Developed =1 , NeedsUpdate =2 , StopUpdate =3 }
 Status for the implementation of spin correlations. More...
 
- Public Types inherited from ThePEG::Pointer::ReferenceCounted
typedef unsigned int CounterType
 The integer type used for counting.
 

Public Member Functions

Access the vertices.
void productionVertex (VertexPtr in) const
 Set the vertex at which the particle was produced.
 
tcVertexPtr productionVertex () const
 Get the vertex at which the particle was produced.
 
void decayVertex (VertexPtr in) const
 Set the vertex at which the particle decayed or branched.
 
tcVertexPtr decayVertex () 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 decay (bool recursive=false) const
 Calculate the rho matrix for the decay if not already done.
 
virtual void undecay () 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.
 
void needsUpdate () const
 Needs update.
 
void stopUpdate () const
 Used for an unstable particle to temporarily stop redevelop and redecay at that particle.
 
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.
 
virtual void rebind (const EventTranslationMap &)
 Rebind to cloned objects.
 
virtual EIPtr clone () const
 Standard clone method.
 
- Public Member Functions inherited from ThePEG::Base
virtual ~Base ()
 The virtual destructor.
 
void debug () const
 Print out debugging information for this object on std::cerr.
 
virtual void debugme () const
 Print out debugging information for this object on std::cerr.
 
- Public Member Functions inherited from ThePEG::Pointer::ReferenceCounted
CounterType referenceCount () const
 Return the reference count.
 

Access the rho and D matrices.

static NoPIOClassDescription< SpinInfoinitSpinInfo
 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.
 
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.
 
DevelopedStatus _oldDeveloped
 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.
 
RhoDMatrix rhoMatrix () const
 Access the rho matrix.
 
RhoDMatrixrhoMatrix ()
 Access the rho matrix.
 
RhoDMatrix DMatrix () const
 Access the D matrix.
 
RhoDMatrixDMatrix ()
 Access the D matrix.
 
bool isNear (const Lorentz5Momentum &p)
 Check if momentum is near to the current momentum.
 
SpinInfooperator= (const SpinInfo &)=delete
 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.
 
void redecay () const
 Recursively recalulate all the rho matrices from the top of the chain.
 

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.
 
virtual bool hasPolarization () const
 Returns true if the polarization() has been implemented in a subclass.
 
virtual DPair polarization () const
 Return the angles of the polarization vector as a pair of doubles.
 
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 &m, const LorentzRotation &r)
 Perform a lorentz rotation of the spin information.
 
virtual void reset ()
 Reset - Undoes any transformations and calls undecay.
 
static void Init ()
 Standard Init function.
 

Additional Inherited Members

- Static Public Member Functions inherited from ThePEG::EventInfoBase
static void Init ()
 Standard Init function.
 
- Static Public Member Functions inherited from ThePEG::Base
static void Init ()
 The standard Init function used to initialize the interfaces.
 
- Public Attributes inherited from ThePEG::Pointer::ReferenceCounted
const unsigned long uniqueId
 The unique ID.
 
- Protected Member Functions inherited from ThePEG::Pointer::ReferenceCounted
 ReferenceCounted ()
 Default constructor.
 
 ReferenceCounted (const ReferenceCounted &)
 Copy-constructor.
 
ReferenceCountedoperator= (const ReferenceCounted &)
 Assignment.
 

Detailed Description

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

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 58 of file SpinInfo.h.

Member Enumeration Documentation

◆ DevelopedStatus

Status for the implementation of spin correlations.

Enumerator
Undeveloped 

Not developed.

Developed 

Developed.

NeedsUpdate 

Developed but needs recalculating due to some change.

StopUpdate 

Stop recalculating at this spin info.

Definition at line 65 of file SpinInfo.h.

Constructor & Destructor Documentation

◆ SpinInfo() [1/2]

ThePEG::SpinInfo::SpinInfo ( )
inline

Default constructor.

Definition at line 79 of file SpinInfo.h.

◆ SpinInfo() [2/2]

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

Standard Constructor.

Parameters
sthe spin.
pthe production momentum.
timetrue if the particle is time-like.

Definition at line 90 of file SpinInfo.h.

Member Function Documentation

◆ clone()

◆ currentMomentum()

const Lorentz5Momentum & ThePEG::SpinInfo::currentMomentum ( ) const
inline

The current momentum of the particle.

Definition at line 278 of file SpinInfo.h.

References _currentmomentum.

Referenced by isNear().

◆ decayed() [1/2]

bool ThePEG::SpinInfo::decayed ( ) const
inline

Has the particle decayed?

Definition at line 221 of file SpinInfo.h.

References _decayed.

◆ decayed() [2/2]

void ThePEG::SpinInfo::decayed ( bool  b) const
inline

Set if the particle has decayed.

Definition at line 226 of file SpinInfo.h.

References _decayed.

◆ decayLocation()

int ThePEG::SpinInfo::decayLocation ( ) const
inline

Decay Location.

Definition at line 300 of file SpinInfo.h.

References _decayloc.

◆ decayVertex() [1/2]

tcVertexPtr ThePEG::SpinInfo::decayVertex ( ) const
inline

Get the vertex at which the particle decayed or branched.

Definition at line 213 of file SpinInfo.h.

References _decay.

◆ decayVertex() [2/2]

void ThePEG::SpinInfo::decayVertex ( VertexPtr  in) const
inline

Set the vertex at which the particle decayed or branched.

Definition at line 189 of file SpinInfo.h.

References _decay, _decayloc, and _timelike.

◆ developed()

DevelopedStatus ThePEG::SpinInfo::developed ( ) const
inline

Return true if the decay matrix required to perform the decays of the siblings of a particle has been calculated.

Definition at line 232 of file SpinInfo.h.

References _developed.

◆ DMatrix() [1/2]

RhoDMatrix & ThePEG::SpinInfo::DMatrix ( )
inline

Access the D matrix.

Definition at line 325 of file SpinInfo.h.

References _Dmatrix.

◆ DMatrix() [2/2]

RhoDMatrix ThePEG::SpinInfo::DMatrix ( ) const
inline

Access the D matrix.

Definition at line 320 of file SpinInfo.h.

References _Dmatrix.

◆ hasPolarization()

virtual bool ThePEG::SpinInfo::hasPolarization ( ) const
inlinevirtual

Returns true if the polarization() has been implemented in a subclass.

This default version returns false.

Definition at line 111 of file SpinInfo.h.

◆ isNear()

bool ThePEG::SpinInfo::isNear ( const Lorentz5Momentum p)
inline

Check if momentum is near to the current momentum.

Definition at line 333 of file SpinInfo.h.

References _eps, currentMomentum(), and ThePEG::LorentzVector< Value >::isNear().

◆ iSpin()

PDT::Spin ThePEG::SpinInfo::iSpin ( ) const
inline

Return 2s+1 for the particle.

Definition at line 266 of file SpinInfo.h.

References _spin.

◆ needsUpdate()

void ThePEG::SpinInfo::needsUpdate ( ) const
inline

Needs update.

Definition at line 252 of file SpinInfo.h.

References _developed, _oldDeveloped, and NeedsUpdate.

◆ polarization()

virtual DPair ThePEG::SpinInfo::polarization ( ) const
inlinevirtual

Return the angles of the polarization vector as a pair of doubles.

first is the polar angle and second is the azimuth wrt. the particles direction. This default version of the function returns 0,0, and if a subclass implements a proper function it should also implement 'hasPolarization()' to return true.

Definition at line 121 of file SpinInfo.h.

◆ productionLocation()

int ThePEG::SpinInfo::productionLocation ( ) const
inline

Access to the locations.

Production Location

Definition at line 295 of file SpinInfo.h.

References _prodloc.

◆ productionMomentum()

const Lorentz5Momentum & ThePEG::SpinInfo::productionMomentum ( ) const
inline

Return the momentum of the particle when it was produced.

Definition at line 271 of file SpinInfo.h.

References _productionmomentum.

◆ productionVertex() [1/2]

tcVertexPtr ThePEG::SpinInfo::productionVertex ( ) const
inline

Get the vertex at which the particle was produced.

Definition at line 184 of file SpinInfo.h.

References _production.

◆ productionVertex() [2/2]

void ThePEG::SpinInfo::productionVertex ( VertexPtr  in) const
inline

Set the vertex at which the particle was produced.

Definition at line 171 of file SpinInfo.h.

References _prodloc, _production, and _timelike.

◆ rebind()

virtual void ThePEG::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.

◆ reset()

◆ rhoMatrix() [1/2]

RhoDMatrix & ThePEG::SpinInfo::rhoMatrix ( )
inline

Access the rho matrix.

Definition at line 315 of file SpinInfo.h.

References _rhomatrix.

◆ rhoMatrix() [2/2]

RhoDMatrix ThePEG::SpinInfo::rhoMatrix ( ) const
inline

Access the rho matrix.

Definition at line 310 of file SpinInfo.h.

References _rhomatrix.

◆ stopUpdate()

void ThePEG::SpinInfo::stopUpdate ( ) const
inline

Used for an unstable particle to temporarily stop redevelop and redecay at that particle.

Definition at line 261 of file SpinInfo.h.

References _developed, and StopUpdate.

◆ timelike()

bool ThePEG::SpinInfo::timelike ( ) const
inline

Return true if particle is timelike (rather than spacelike).

Definition at line 285 of file SpinInfo.h.

References _timelike.

◆ transform()

virtual void ThePEG::SpinInfo::transform ( const LorentzMomentum m,
const LorentzRotation r 
)
inlinevirtual

◆ undecay()

Member Data Documentation

◆ _currentmomentum

Lorentz5Momentum ThePEG::SpinInfo::_currentmomentum
private

Current momentum of the particle.

Definition at line 437 of file SpinInfo.h.

Referenced by currentMomentum(), reset(), and transform().

◆ _decay

VertexPtr ThePEG::SpinInfo::_decay
mutableprivate

Pointers to the decay vertex for the particle.

Definition at line 372 of file SpinInfo.h.

Referenced by decayVertex().

◆ _decayed

bool ThePEG::SpinInfo::_decayed
mutableprivate

Has the particle been decayed? (I.e.

has the rho matrix for the decay been calculated.)

Definition at line 395 of file SpinInfo.h.

Referenced by decayed().

◆ _decayloc

int ThePEG::SpinInfo::_decayloc
mutableprivate

Location in the hard vertex array at decay.

Definition at line 389 of file SpinInfo.h.

Referenced by decayLocation(), and decayVertex().

◆ _decaymomentum

Lorentz5Momentum ThePEG::SpinInfo::_decaymomentum
mutableprivate

Momentum of the particle when it decayed.

Definition at line 432 of file SpinInfo.h.

◆ _developed

DevelopedStatus ThePEG::SpinInfo::_developed
mutableprivate

Has the particle been developed? (I.e.

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

Definition at line 401 of file SpinInfo.h.

Referenced by developed(), needsUpdate(), and stopUpdate().

◆ _Dmatrix

RhoDMatrix ThePEG::SpinInfo::_Dmatrix
mutableprivate

Storage of the decay matrix.

Definition at line 417 of file SpinInfo.h.

Referenced by DMatrix().

◆ _eps

const double ThePEG::SpinInfo::_eps
staticprivate

A small energy for comparing momenta to check if Lorentz Transformations should be performed.

Definition at line 443 of file SpinInfo.h.

Referenced by isNear().

◆ _oldDeveloped

DevelopedStatus ThePEG::SpinInfo::_oldDeveloped
mutableprivate

Has the particle been developed? (I.e.

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

Definition at line 407 of file SpinInfo.h.

Referenced by needsUpdate().

◆ _prodloc

int ThePEG::SpinInfo::_prodloc
mutableprivate

Location in the hard vertex array at production.

Definition at line 384 of file SpinInfo.h.

Referenced by productionLocation(), and productionVertex().

◆ _production

VertexPtr ThePEG::SpinInfo::_production
mutableprivate

Pointer to the production vertex for the particle.

Definition at line 367 of file SpinInfo.h.

Referenced by productionVertex().

◆ _productionmomentum

Lorentz5Momentum ThePEG::SpinInfo::_productionmomentum
private

Momentum of the particle when it was produced.

Definition at line 427 of file SpinInfo.h.

Referenced by productionMomentum(), and reset().

◆ _rhomatrix

RhoDMatrix ThePEG::SpinInfo::_rhomatrix
mutableprivate

Storage of the rho matrix.

Definition at line 412 of file SpinInfo.h.

Referenced by rhoMatrix().

◆ _spin

PDT::Spin ThePEG::SpinInfo::_spin
private

The spin of the particle.

Definition at line 422 of file SpinInfo.h.

Referenced by iSpin().

◆ _timelike

bool ThePEG::SpinInfo::_timelike
private

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.

Definition at line 379 of file SpinInfo.h.

Referenced by decayVertex(), productionVertex(), and timelike().

◆ initSpinInfo

NoPIOClassDescription<SpinInfo> ThePEG::SpinInfo::initSpinInfo
staticprivate

Describe a concrete class without persistent data.

Definition at line 342 of file SpinInfo.h.


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