9 #ifndef ThePEG_SpinInfo_H 10 #define ThePEG_SpinInfo_H 13 #include "ThePEG/EventRecord/EventInfoBase.h" 14 #include "ThePEG/PDT/PDT.h" 15 #include "ThePEG/Interface/ClassDocumentation.h" 16 #include "HelicityVertex.h" 165 if(
_timelike) in->addOutgoing(
this,temp);
167 else in->addIncoming(
this,temp);
182 in->addIncoming(
this,temp);
426 static string className() {
return "ThePEG::SpinInfo"; }
int _prodloc
Location in the hard vertex array at production.
bool decayed() const
Has the particle decayed?
void decay() const
Calculate the rho matrix for the decay if not already done.
bool _timelike
Is this is timelike (true) or spacelike (false ) particle? This is used to decide if the particle is ...
const Lorentz5Momentum & productionMomentum() const
Return the momentum of the particle when it was produced.
virtual EIPtr clone() const
Standard clone method.
DevelopedStatus developed() const
Return true if the decay matrix required to perform the decays of the siblings of a particle has been...
virtual void rebind(const EventTranslationMap &trans)
Rebind to cloned objects.
void decayVertex(VertexPtr in) const
Set the vertex at which the particle decayed or branched.
SpinInfo(PDT::Spin s, const Lorentz5Momentum &p=Lorentz5Momentum(), bool time=false)
Standard Constructor.
void develop() const
Set the developed flag and calculate the D matrix for the decay.
virtual bool hasPolarization() const
Returns true if the polarization() has been implemented in a subclass.
ClassTraitsType is an empty, non-polymorphic, base class.
DevelopedStatus _developed
Has the particle been developed? (I.e.
EventInfoBase is a base class for information objects.
PDT::Spin _spin
The spin of the particle.
const Lorentz5Momentum & currentMomentum() const
The current momentum of the particle.
int decayLocation() const
Decay Location.
RhoDMatrix & DMatrix()
Access the D matrix.
Developed but needs recalculating due to some change.
void productionVertex(VertexPtr in) const
Set the vertex at which the particle was produced.
The LorentzRotation class combine a SpinOneLorentzRotation and a spin SpinHalfLorentzRotation to prov...
RhoDMatrix _rhomatrix
Storage of the rho matrix.
Rebinder is a class associating pairs of pointers to objects.
PDT::Spin iSpin() const
Return 2s+1 for the particle.
static const double _eps
A small energy for comparing momenta to check if Lorentz Transformations should be performed...
This is the main namespace within which all identifiers in ThePEG are declared.
virtual void transform(const LorentzMomentum &m, const LorentzRotation &r)
Perform a lorentz rotation of the spin information.
A concreate implementation of ClassDescriptionBase describing a concrete class without persistent dat...
Lorentz5Momentum _currentmomentum
Current momentum of the particle.
void redevelop() const
Set the developed flag and calculate the D matrix for the decay, and all decays further up the chain...
VertexPtr _production
Pointer to the production vertex for the particle.
bool _decayed
Has the particle been decayed? (I.e.
VertexPtr _decay
Pointers to the decay vertex for the particle.
static void Init()
Standard Init function.
Spin
Definition of enumerated values used for spin information.
The SpinInfo is the base class for the spin information for the spin correlation algorithm.
void decayed(bool b) const
Set if the particle has decayed.
SpinInfo()
Default constructor.
RCPtr is a reference counted (smart) pointer.
void update() const
Method to handle the delelation.
pair< double, double > DPair
A pair of doubles.
virtual DPair polarization() const
Return the angles of the polarization vector as a pair of doubles.
tcVertexPtr productionVertex() const
Get the vertex at which the particle was produced.
bool isNear(const Lorentz5Momentum &p)
Check if momentum is near to the current momentum.
Lorentz5Momentum _decaymomentum
Momentum of the particle when it decayed.
bool isNear(const LorentzVector< Value > &w, double epsilon) const
Are two vectors nearby, using Euclidean measure ?
Lorentz5Vector & transform(const LorentzRotation &r)
Perform a Lorentz transformation.
Lorentz5Momentum _productionmomentum
Momentum of the particle when it was produced.
tcVertexPtr decayVertex() const
Get the vertex at which the particle decayed or branched.
int _decayloc
Location in the hard vertex array at decay.
The default concrete implementation of ClassTraitsBase.
DevelopedStatus
Status for the implementation of spin correlations.
void needsUpdate() const
Needs update.
SpinInfo & operator=(const SpinInfo &)
Private and non-existent assignment operator.
RhoDMatrix DMatrix() const
Access the D matrix.
RhoDMatrix & rhoMatrix()
Access the rho matrix.
bool timelike() const
Return true if particle is timelike (rather than spacelike).
static NoPIOClassDescription< SpinInfo > initSpinInfo
Describe a concrete class without persistent data.
RhoDMatrix _Dmatrix
Storage of the decay matrix.
The RhoDMatrix class is designed to implement the storage of the rho and D matrices which are require...
int productionLocation() const
Access to the locations.
BaseClassTraits describes the base classes of the templated class.
RhoDMatrix rhoMatrix() const
Access the rho matrix.
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...