The SpinInfo is the base class for the spin information for the spin correlation algorithm. More...
#include <SpinInfo.h>
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 Lorentz5Momentum & | productionMomentum () const |
Return the momentum of the particle when it was produced. | |
const Lorentz5Momentum & | currentMomentum () 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< 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. | |
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. | |
RhoDMatrix & | rhoMatrix () |
Access the rho matrix. | |
RhoDMatrix | DMatrix () const |
Access the D matrix. | |
RhoDMatrix & | DMatrix () |
Access the D matrix. | |
bool | isNear (const Lorentz5Momentum &p) |
Check if momentum is near to the current momentum. | |
SpinInfo & | operator= (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. | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
Assignment. | |
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.
Definition at line 58 of file SpinInfo.h.
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.
|
inline |
Default constructor.
Definition at line 79 of file SpinInfo.h.
|
inline |
Standard Constructor.
s | the spin. |
p | the production momentum. |
time | true if the particle is time-like. |
Definition at line 90 of file SpinInfo.h.
|
virtual |
Standard clone method.
Reimplemented from ThePEG::EventInfoBase.
Reimplemented in ThePEG::Helicity::FermionSpinInfo, ThePEG::Helicity::Rank3TensorSpinInfo, ThePEG::Helicity::RSFermionSpinInfo, ThePEG::Helicity::ScalarSpinInfo, ThePEG::Helicity::TensorSpinInfo, and ThePEG::Helicity::VectorSpinInfo.
|
inline |
The current momentum of the particle.
Definition at line 278 of file SpinInfo.h.
References _currentmomentum.
Referenced by isNear().
|
inline |
|
inline |
|
inline |
|
inline |
Get the vertex at which the particle decayed or branched.
Definition at line 213 of file SpinInfo.h.
References _decay.
|
inline |
Set the vertex at which the particle decayed or branched.
Definition at line 189 of file SpinInfo.h.
|
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.
|
inline |
|
inline |
|
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.
|
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().
|
inline |
|
inline |
Needs update.
Definition at line 252 of file SpinInfo.h.
References _developed, _oldDeveloped, and NeedsUpdate.
|
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.
|
inline |
Access to the locations.
Production Location
Definition at line 295 of file SpinInfo.h.
References _prodloc.
|
inline |
Return the momentum of the particle when it was produced.
Definition at line 271 of file SpinInfo.h.
References _productionmomentum.
|
inline |
Get the vertex at which the particle was produced.
Definition at line 184 of file SpinInfo.h.
References _production.
|
inline |
Set the vertex at which the particle was produced.
Definition at line 171 of file SpinInfo.h.
References _prodloc, _production, and _timelike.
|
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.
|
inlinevirtual |
Reset - Undoes any transformations and calls undecay.
Reimplemented in ThePEG::Helicity::FermionSpinInfo, ThePEG::Helicity::Rank3TensorSpinInfo, ThePEG::Helicity::RSFermionSpinInfo, ThePEG::Helicity::TensorSpinInfo, and ThePEG::Helicity::VectorSpinInfo.
Definition at line 159 of file SpinInfo.h.
References _currentmomentum, and _productionmomentum.
Referenced by ThePEG::Helicity::FermionSpinInfo::reset(), ThePEG::Helicity::Rank3TensorSpinInfo::reset(), ThePEG::Helicity::RSFermionSpinInfo::reset(), ThePEG::Helicity::TensorSpinInfo::reset(), and ThePEG::Helicity::VectorSpinInfo::reset().
|
inline |
|
inline |
|
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.
|
inline |
Return true if particle is timelike (rather than spacelike).
Definition at line 285 of file SpinInfo.h.
References _timelike.
|
inlinevirtual |
Perform a lorentz rotation of the spin information.
Reimplemented in ThePEG::Helicity::FermionSpinInfo, ThePEG::Helicity::Rank3TensorSpinInfo, ThePEG::Helicity::RSFermionSpinInfo, ThePEG::Helicity::ScalarSpinInfo, ThePEG::Helicity::TensorSpinInfo, and ThePEG::Helicity::VectorSpinInfo.
Definition at line 151 of file SpinInfo.h.
References _currentmomentum, and ThePEG::Lorentz5Vector< Value >::transform().
|
virtual |
Calculate the rho matrix for the decay if not already done.
Reimplemented in ThePEG::Helicity::FermionSpinInfo, ThePEG::Helicity::Rank3TensorSpinInfo, ThePEG::Helicity::RSFermionSpinInfo, ThePEG::Helicity::TensorSpinInfo, and ThePEG::Helicity::VectorSpinInfo.
Referenced by ThePEG::Helicity::FermionSpinInfo::undecay(), ThePEG::Helicity::Rank3TensorSpinInfo::undecay(), ThePEG::Helicity::RSFermionSpinInfo::undecay(), ThePEG::Helicity::TensorSpinInfo::undecay(), and ThePEG::Helicity::VectorSpinInfo::undecay().
|
private |
Current momentum of the particle.
Definition at line 437 of file SpinInfo.h.
Referenced by currentMomentum(), reset(), and transform().
|
mutableprivate |
Pointers to the decay vertex for the particle.
Definition at line 372 of file SpinInfo.h.
Referenced by decayVertex().
|
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().
|
mutableprivate |
Location in the hard vertex array at decay.
Definition at line 389 of file SpinInfo.h.
Referenced by decayLocation(), and decayVertex().
|
mutableprivate |
Momentum of the particle when it decayed.
Definition at line 432 of file SpinInfo.h.
|
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().
|
mutableprivate |
|
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().
|
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().
|
mutableprivate |
Location in the hard vertex array at production.
Definition at line 384 of file SpinInfo.h.
Referenced by productionLocation(), and productionVertex().
|
mutableprivate |
Pointer to the production vertex for the particle.
Definition at line 367 of file SpinInfo.h.
Referenced by productionVertex().
|
private |
Momentum of the particle when it was produced.
Definition at line 427 of file SpinInfo.h.
Referenced by productionMomentum(), and reset().
|
mutableprivate |
|
private |
|
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().
|
staticprivate |
Describe a concrete class without persistent data.
Definition at line 342 of file SpinInfo.h.