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);
411 struct BaseClassTrait<ThePEG::SpinInfo,1>:
public ClassTraitsType {
421 struct ClassTraits<ThePEG::SpinInfo>
422 :
public ClassTraitsBase<ThePEG::SpinInfo> {
426 static string className() {
return "ThePEG::SpinInfo"; }
int _prodloc
Location in the hard vertex array at production.
bool _timelike
Is this is timelike (true) or spacelike (false ) particle? This is used to decide if the particle is ...
virtual void rebind(const EventTranslationMap &trans)
Rebind to cloned objects.
SpinInfo(PDT::Spin s, const Lorentz5Momentum &p=Lorentz5Momentum(), bool time=false)
Standard Constructor.
DevelopedStatus _developed
Has the particle been developed? (I.e.
EventInfoBase is a base class for information objects.
bool isNear(const LorentzVector< Value > &w, double epsilon) const
Are two vectors nearby, using Euclidean measure ?
RhoDMatrix DMatrix() const
Access the D matrix.
PDT::Spin _spin
The spin of the particle.
RhoDMatrix & DMatrix()
Access the D matrix.
Developed but needs recalculating due to some change.
bool timelike() const
Return true if particle is timelike (rather than spacelike).
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.
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.
void update() const
Method to handle the delelation.
virtual bool hasPolarization() const
Returns true if the polarization() has been implemented in a subclass.
void needsUpdate() const
Needs update.
const Lorentz5Momentum & currentMomentum() const
The current momentum of the particle.
void decay() const
Calculate the rho matrix for the decay if not already done.
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.
virtual EIPtr clone() const
Standard clone method.
VertexPtr _production
Pointer to the production vertex for the particle.
PDT::Spin iSpin() const
Return 2s+1 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.
virtual DPair polarization() const
Return the angles of the polarization vector as a pair of doubles.
tcVertexPtr decayVertex() const
Get the vertex at which the particle decayed or branched.
SpinInfo()
Default constructor.
tcVertexPtr productionVertex() const
Get the vertex at which the particle was produced.
RCPtr is a reference counted (smart) pointer.
DevelopedStatus developed() const
Return true if the decay matrix required to perform the decays of the siblings of a particle has been...
pair< double, double > DPair
A pair of doubles.
int decayLocation() const
Decay Location.
bool isNear(const Lorentz5Momentum &p)
Check if momentum is near to the current momentum.
Lorentz5Momentum _decaymomentum
Momentum of the particle when it decayed.
Lorentz5Vector & transform(const LorentzRotation &r)
Perform a Lorentz transformation.
Lorentz5Momentum _productionmomentum
Momentum of the particle when it was produced.
RhoDMatrix rhoMatrix() const
Access the rho matrix.
int productionLocation() const
Access to the locations.
int _decayloc
Location in the hard vertex array at decay.
bool decayed() const
Has the particle decayed?
void productionVertex(VertexPtr in) const
Set the vertex at which the particle was produced.
const Lorentz5Momentum & productionMomentum() const
Return the momentum of the particle when it was produced.
static string className()
Return the name of class T.
DevelopedStatus
Status for the implementation of spin correlations.
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
void decayVertex(VertexPtr in) const
Set the vertex at which the particle decayed or branched.
void develop() const
Set the developed flag and calculate the D matrix for the decay.
SpinInfo & operator=(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...
RhoDMatrix & rhoMatrix()
Access the rho matrix.
static NoPIOClassDescription< SpinInfo > initSpinInfo
Describe a concrete class without persistent data.
void decayed(bool b) const
Set if the particle has decayed.
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...