thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
ThePEG::MixedParticleData Class Reference

The MixedParticleData class is designed to store the particle data for particles which undergo mixing with their anti-particle, e.g. More...

#include <MixedParticleData.h>

Inheritance diagram for ThePEG::MixedParticleData:

Public Member Functions

 MixedParticleData ()
 The default constructor.
 
- Public Member Functions inherited from ThePEG::ParticleData
 ParticleData ()
 Default constructor.
 
long id () const
 Return the PDG id number.
 
const string & PDGName () const
 Return the generic PDG name.
 
const string & genericName () const
 Return the generic PDG name.
 
PPtr produceParticle (const Lorentz5Momentum &) const
 Produce a particle specifying momentum.
 
PPtr produceParticle (const LorentzMomentum &) const
 Produce a particle specifying momentum.
 
PPtr produceParticle (const LorentzMomentum &, Energy m) const
 Produce a particle specifying 4-momentum and a mass.
 
PPtr produceParticle (const Momentum3 &pp=Momentum3()) const
 Produce a particle specifying 3-momentum.
 
PPtr produceParticle (Energy m, const Momentum3 &pp=Momentum3()) const
 Produce a particle specifying mass and 3-momentum.
 
PPtr produceParticle (Energy plus, Energy minus, Energy px, Energy py) const
 Produce a particle specifying light-cone momentum components and transverse momentum components.
 
Energy generateMass () const
 Generate a mass for an instance of this particle type.
 
Energy generateWidth (Energy mass) const
 Generate a width for an instance of this particle type.
 
Length generateLifeTime (Energy mass, Energy width) const
 Generate a mass for an instance of this particle type.
 
const DecaySelectordecaySelector () const
 Return the nominal decay selector for this particle.
 
tDMPtr selectMode (Particle &p) const
 Selects a decay mode randomly according to the branching ratios.
 
const DecaySet & decayModes () const
 Access all the decay modes, including those which are switched off, or have zero branching ratio.
 
Energy mass (Energy)
 Set the nominal mass.
 
Energy mass () const
 Return the nominal mass.
 
Energy hardProcessMass () const
 Return the mass to be used when evaluating hard process cross sections.
 
Energy massMax () const
 Return the maximum possible mass of this particle type.
 
Energy massMin () const
 Return the minimum possible mass of this particle type.
 
virtual Energy constituentMass () const
 Return the constituent mass of this particle if relevant.
 
Energy width (Energy)
 Set the width.
 
Energy width () const
 Get the width.
 
Energy widthCut (Energy wci)
 Set the width cut.
 
Energy widthCut () const
 Get the width cut.
 
Energy widthUpCut (Energy)
 Set the upper width cut.
 
Energy widthUpCut () const
 Get the upper width cut.
 
Energy widthLoCut (Energy)
 Set the lower width cut.
 
Energy widthLoCut () const
 Get the lower width cut.
 
Length cTau (Length)
 Set the life time cTau.
 
Length cTau () const
 Get the life time cTau cTau.
 
Energy hardProcessWidth () const
 Return the width to be used when evaluating hard process cross sections.
 
PDT::Charge iCharge (PDT::Charge)
 Set the charge.
 
Charge charge () const
 Get the charge.
 
PDT::Charge iCharge () const
 Get the charge.
 
bool charged () const
 Return true if charged.
 
bool positive () const
 Return true if positively charged.
 
bool negative () const
 Return true if negatively charged.
 
PDT::Spin iSpin (PDT::Spin)
 Set the spin.
 
AngularMomentum spin () const
 Get the spin.The spin is returned in standard units.
 
PDT::Spin iSpin () const
 Get the spin.
 
PDT::Colour iColour (PDT::Colour)
 Set the colour of the particle in units of PDT::Colour.
 
PDT::Colour iColour () const
 Get the colour of the particle in units of PDT::Colour.
 
bool coloured () const
 Return true if coloured.
 
bool hasColour (bool anti=false) const
 Return true if (anti) coloured or colour-octet.
 
bool hasAntiColour () const
 Return true if anti coloured or colour-octet.
 
PDT::ColouredInteraction colouredInteraction () const
 Return what kind of colour charge this particle carries.
 
void stable (bool stab)
 Specify if particle is to be considered stable according to stab.
 
bool stable () const
 Return true if particle is to be considered stable.
 
tPDPtr CC () const
 Get the pointer to the corresponding anti partner.
 
void synchronized (bool sync)
 Specify if the anti partner chould be changed automatically when this object is changed according to sync.
 
bool synchronized () const
 Return true if the anti partner chould be changed automatically when this object is changed.
 
void synchronize ()
 If there is an anti-partner, update this object to have correct anti-properties.
 
void massGenerator (tMassGenPtr)
 Set the mass generator object.
 
tMassGenPtr massGenerator () const
 Get the mass generator object.
 
void widthGenerator (tWidthGeneratorPtr)
 Set the width generator object.
 
tWidthGeneratorPtr widthGenerator () const
 Get the width generator object.
 
void variableRatio (bool varRatio)
 Specify if the branching ratio of the Particle instances should vary with their masses.
 
bool variableRatio () const
 Return true if the branching ratio should vary with the mass of the Particle instance.
 
void persistentOutput (PersistentOStream &os) const
 Function used to write out object persistently.
 
void persistentInput (PersistentIStream &is, int version)
 Function used to read in object persistently.
 
- Public Member Functions inherited from ThePEG::Interfaced
virtual ~Interfaced ()
 Empty virtual destructor.
 
virtual bool defaultInit ()
 Functions which are to be used during the actual event generation, after the setup is complete.
 
PPtr getParticle (PID) const
 Create a new Particle instance given a id number.
 
PDPtr getParticleData (PID) const
 Return a pointer to the ParticleData object corresponding to the given id number.
 
bool used () const
 Returns true if this object has actally been used.
 
void useMe () const
 Should be called to indicate that this object has actually been used.
 
tEGPtr generator () const
 Return a pointer to the EventGenerator controlling the run.
 
void persistentOutput (PersistentOStream &os) const
 Function used to write out object persistently.
 
void persistentInput (PersistentIStream &is, int version)
 Function used to read in object persistently.
 
- Public Member Functions inherited from ThePEG::InterfacedBase
virtual ~InterfacedBase ()
 The virtual (empty) destructor;.
 
string fullName () const
 Returns the full name of this object including its path, e.g.
 
string name () const
 Returns the name of this object, without the path.
 
string path () const
 Returns the path to this object including the trailing '/'.
 
string comment () const
 Returns a comment assigned to this object.
 
void setup (istream &is)
 Read setup info from a standard istream is.
 
void update ()
 Calls the doupdate() function with recursion prevention.
 
void init ()
 Calls the doinit() function with recursion prevention.
 
virtual bool preInitialize () const
 Return true if this object needs to be initialized before all other objects (except those for which this function also returns true).
 
void initrun ()
 Calls the doinitrun() function with recursion prevention.
 
void finish ()
 Calls the dofinish() function with recursion prevention.
 
void touch ()
 This function should be called every time something in this object has changed in a way that a sanity check with update() is needed.
 
void reset ()
 Set the state of this object to uninitialized.
 
void clear ()
 Calls reset() and unTouch().
 
InitState state () const
 Return the state of initialization of this object.
 
bool locked () const
 Return true if the BaseRepository is not allowed to change the state of this object.
 
bool touched () const
 Return true if the state of this object has been changed since the last call to update().
 
void persistentOutput (PersistentOStream &os) const
 Function used to write out object persistently.
 
void persistentInput (PersistentIStream &is, int version)
 Function used to read in object persistently.
 
virtual void debugme () const
 Print out debugging information for this object on std::cerr.
 
- 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.
 
- Public Member Functions inherited from ThePEG::Named
 Named (const string &newName=string())
 Constructor with name.
 
 Named (const Named &)=default
 Explicit default copy-constructor (too avoid compiler warnings)
 
const string & name () const
 Return name.
 
bool operator== (const Named &other) const
 Test for equality.
 
bool operator< (const Named &other) const
 Lexicographical comparison.
 

Standard Interfaced functions.

static ClassDescription< MixedParticleDatainitMixedParticleData
 The static object used to initialize the description of this class.
 
Energy _deltam
 Mixing parameters.
 
Energy _deltagamma
 The width difference.
 
double _pqmag
 The magnitude of \(p/q\).
 
double _pqphase
 The phase of \(p/q\).
 
Complex _pq
 \(p/q\)
 
double _zmag
 The magnitude of \(z\).
 
double _zphase
 The phase of \(z\).
 
Complex _z
 The \(z\) parameter.
 
double _x
 The \(x\) mixing variable.
 
double _y
 the \(y\) mixing variable
 
pair< double, double > _prob
 The time-integrated mixing probabilities.
 
virtual void doinit ()
 Initialize this object after the setup phase before saving an EventGenerator to disk.
 
void setDeltaM (Energy)
 Function for the interface to set the mass difference.
 
void setDeltaGamma (Energy)
 Function for the interface to set the width difference.
 
void setPQMagnitude (double)
 Function for the interface to set the magnitude of p/q.
 
void setPQPhase (double)
 Function for the interface to set the phase of p/q.
 
void setZMagnitude (double)
 Function for the interface to set the magnitude of z.
 
void setZPhase (double)
 Function for the interface to set the phase of z.
 
MixedParticleDataoperator= (const MixedParticleData &)=delete
 The assignment operator is private and must never be called.
 

The Create methods are special interfaces for ParticleData

classes.

Energy deltaM () const
 Mixing parameters.
 
Energy deltaGamma () const
 The width difference.
 
Complex pq () const
 \(p/q\)
 
Complex z () const
 \(z\)
 
double x () const
 The \(x\) mixing variable.
 
double y () const
 the \(y\) mixing variable
 
pair< double, double > prob () const
 The time-integrated mixing probabilities.
 
pair< bool, LengthgenerateLifeTime () const
 For a given paricle decide is it undergoes mixing and generate the lifetime.
 
pair< Complex, ComplexmixingAmplitudes (Length, bool) const
 The amplitudes for the different states.
 
static PDPtr Create (long newId, string newPDGName)
 Create a Particle which is its own anti-particle.
 
static PDPair Create (long newId, string newPDGName, string newAntiPDGName)
 Create a particle - anti particle pair.
 

Functions used by the persistent I/O system.

void persistentOutput (PersistentOStream &os) const
 Function used to write out object persistently.
 
void persistentInput (PersistentIStream &is, int version)
 Function used to read in object persistently.
 
static void Init ()
 The standard Init function used to initialize the interfaces.
 
 MixedParticleData (long newId, string newPDGName)
 Protected constructor only to be used by subclasses or by the Create method.
 
virtual PDPtr pdclone () const
 ParticleData clone method.
 

Additional Inherited Members

- Public Types inherited from ThePEG::ParticleData
typedef Selector< tDMPtrDecaySelector
 A selector of DecayMode objects.
 
- Public Types inherited from ThePEG::InterfacedBase
enum  InitState { initializing = -1 , uninitialized = 0 , initialized = 1 , runready = 2 }
 Enumeration reflecting the state of an InterfacedBase object. More...
 
- Public Types inherited from ThePEG::Pointer::ReferenceCounted
typedef unsigned int CounterType
 The integer type used for counting.
 
- Static Public Member Functions inherited from ThePEG::ParticleData
static PDPtr Create (PID newId, const string &newPDGName)
 Create a Particle which is its own anti-particle.
 
static PDPair Create (PID newId, const string &newPDGName, const string &newAntiPDGName)
 Create a particle - anti particle pair.
 
static void Init ()
 
- Static Public Member Functions inherited from ThePEG::Interfaced
static void Init ()
 Standard Init function.
 
- Static Public Member Functions inherited from ThePEG::InterfacedBase
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::ParticleData
virtual void doupdate ()
 Check sanity of the object during the setup phase.
 
virtual void rebind (const TranslationMap &trans)
 Rebind pointer to other Interfaced objects.
 
virtual IVector getReferences ()
 Return a vector of all pointers to Interfaced objects used in this object.
 
virtual void doinitrun ()
 Initialize this object.
 
void addDecayMode (tDMPtr)
 Add a decay mode for this particle.
 
void removeDecayMode (tDMPtr)
 Remove a decay mode for this particle.
 
virtual IBPtr clone () const
 Make a simple clone of this object.
 
virtual IBPtr fullclone () const
 Make a clone of this object, possibly modifying the cloned object to make it sane.
 
 ParticleData (PID newId, const string &newPDGName)
 Protected constructor only to be used by subclasses or by the Create method.
 
virtual void readSetup (istream &is)
 Read setup info from a standard stream.
 
- Protected Member Functions inherited from ThePEG::Interfaced
void reporeg (IBPtr object, string name) const
 Register the given object in the Repository with the given name in a subdirectory with the same name as this object.
 
template<typename PtrT >
bool setDefaultReference (PtrT &ptr, string classname, string objectname)
 If the pointer, ptr, to an object is not set, create an object of class classname and register it with the Repository with the given objectname in a sib-directory with the same name as this object.
 
 Interfaced ()
 Protected default constructor.
 
 Interfaced (const string &newName)
 Protected constructor taking a name as argument.
 
 Interfaced (const Interfaced &i)
 Protected copy-constructor.
 
void setGenerator (tEGPtr generator)
 Protected function to reset the generator pointer, required for automatic decayer generation in Herwig++ BSM models.
 
- Protected Member Functions inherited from ThePEG::InterfacedBase
virtual void dofinish ()
 Finalize this object.
 
 InterfacedBase ()
 Protected default constructor.
 
 InterfacedBase (string newName)
 Protected constructor with the name given as argument.
 
 InterfacedBase (const InterfacedBase &i)
 Protected copy-constructor.
 
- Protected Member Functions inherited from ThePEG::Pointer::ReferenceCounted
 ReferenceCounted ()
 Default constructor.
 
 ReferenceCounted (const ReferenceCounted &)
 Copy-constructor.
 
ReferenceCountedoperator= (const ReferenceCounted &)
 Assignment.
 
- Protected Member Functions inherited from ThePEG::Named
const Namedoperator= (const Named &other)
 Assignment.
 
const string & name (const string &newName)
 Set new name.
 
- Static Protected Member Functions inherited from ThePEG::ParticleData
static void antiSetup (const PDPair &pap)
 Used by subclasses or by the Create method to setup anti-relationship.
 
- Static Protected Member Functions inherited from ThePEG::Interfaced
static void registerRepository (IBPtr)
 Register an Interfaced object with the Repository.
 
static void registerRepository (IBPtr, string newName)
 Register an Interfaced object with the Repository, giving it a name.
 

Detailed Description

The MixedParticleData class is designed to store the particle data for particles which undergo mixing with their anti-particle, e.g.

\(B^0-\bar{B}^0\), \(B_s^0-\bar{B}_s^0\), \(D^0-\bar{D}^0\).

The key parameters are the mass difference between the heavier and lighter states, \(\Delta m = m_H-m_L\), the width difference \(\Delta\Gamma = \Gamma_H-\Gamma_L\). While the mass difference is positive by definition the sign of the width difference must be determined experimentally. It should be noted that because the width difference is expected to be negative in the Standard Model many experiment results use the convention \(\Delta\Gamma = \Gamma_L - \Gamma_H\) so care should be taken.

In order to be as general as possible we have included the option of CPT violation, in addition to the violation of CP, in the mixing in this case the light and heavy eigenstates are given by

\[|M_L\rangle \propto p \sqrt{1-z}| M^0 \rangle + q \sqrt{1+z}|\bar{M}^0\rangle,\]

\[|M_H\rangle \propto p \sqrt{1+z}| M^0 \rangle - q \sqrt{1-z}|\bar{M}^0\rangle,\]

where \(p\), \(q\) and \(z\) are complex parameters with \(z=0\) if CPT is conserved.

This gives the time evolution of the states

\[|M^0_{\rm phys}(t)\rangle = (g_+(t)+zg_-(t))|M^0\rangle -sqrt{1-z^2}\frac{q}{p}g_-(t)|\bar{M}^0\rangle,\]

\[\bar{M}^-_{\rm phys}\rangle = (g_+(t)+zg_-(t))|\bar{M}^0\rangle -sqrt{1-z^2}\frac{p}{q}g_-(t)|M^0\rangle,\]

for particles initially in a pure particle or antiparticle state where

\[g_\pm(t)=\frac12\left(e^{-im_Ht-\frac12\Gamma_Ht} \pm e^{-im_Lt-\frac12\Gamma_Lt}\right).\]

See also
The interfaces defined for MixedParticleData.

Definition at line 50 of file MixedParticleData.h.

Constructor & Destructor Documentation

◆ MixedParticleData()

ThePEG::MixedParticleData::MixedParticleData ( )
inline

The default constructor.

Definition at line 57 of file MixedParticleData.h.

Member Function Documentation

◆ deltaGamma()

Energy ThePEG::MixedParticleData::deltaGamma ( ) const
inline

The width difference.

Definition at line 91 of file MixedParticleData.h.

References _deltagamma.

◆ deltaM()

Energy ThePEG::MixedParticleData::deltaM ( ) const
inline

Mixing parameters.

The mass difference

Definition at line 86 of file MixedParticleData.h.

References _deltam.

◆ doinit()

virtual void ThePEG::MixedParticleData::doinit ( )
protectedvirtual

Initialize this object after the setup phase before saving an EventGenerator to disk.

Exceptions
InitExceptionif object could not be initialized properly.

Reimplemented from ThePEG::ParticleData.

◆ Init()

static void ThePEG::MixedParticleData::Init ( )
static

The standard Init function used to initialize the interfaces.

Called exactly once for each class by the class description system before the main function starts or when this class is dynamically loaded.

◆ operator=()

MixedParticleData & ThePEG::MixedParticleData::operator= ( const MixedParticleData )
privatedelete

The assignment operator is private and must never be called.

In fact, it should not even be implemented.

◆ pdclone()

virtual PDPtr ThePEG::MixedParticleData::pdclone ( ) const
protectedvirtual

ParticleData clone method.

Reimplemented from ThePEG::ParticleData.

◆ persistentInput()

void ThePEG::MixedParticleData::persistentInput ( PersistentIStream is,
int  version 
)

Function used to read in object persistently.

Parameters
isthe persistent input stream read from.
versionthe version number of the object when written.

◆ persistentOutput()

void ThePEG::MixedParticleData::persistentOutput ( PersistentOStream os) const

Function used to write out object persistently.

Parameters
osthe persistent output stream written to.

◆ pq()

Complex ThePEG::MixedParticleData::pq ( ) const
inline

\(p/q\)

Definition at line 96 of file MixedParticleData.h.

References _pq.

◆ prob()

pair< double, double > ThePEG::MixedParticleData::prob ( ) const
inline

The time-integrated mixing probabilities.

Definition at line 116 of file MixedParticleData.h.

References _prob.

◆ x()

double ThePEG::MixedParticleData::x ( ) const
inline

The \(x\) mixing variable.

Definition at line 106 of file MixedParticleData.h.

References _x.

◆ y()

double ThePEG::MixedParticleData::y ( ) const
inline

the \(y\) mixing variable

Definition at line 111 of file MixedParticleData.h.

References _y.

◆ z()

Complex ThePEG::MixedParticleData::z ( ) const
inline

\(z\)

Definition at line 101 of file MixedParticleData.h.

References _z.

Member Data Documentation

◆ _deltagamma

Energy ThePEG::MixedParticleData::_deltagamma
private

The width difference.

Definition at line 240 of file MixedParticleData.h.

Referenced by deltaGamma().

◆ _deltam

Energy ThePEG::MixedParticleData::_deltam
private

Mixing parameters.

The mass difference

Definition at line 235 of file MixedParticleData.h.

Referenced by deltaM().

◆ _pq

Complex ThePEG::MixedParticleData::_pq
private

\(p/q\)

Definition at line 255 of file MixedParticleData.h.

Referenced by pq().

◆ _pqmag

double ThePEG::MixedParticleData::_pqmag
private

The magnitude of \(p/q\).

Definition at line 245 of file MixedParticleData.h.

◆ _pqphase

double ThePEG::MixedParticleData::_pqphase
private

The phase of \(p/q\).

Definition at line 250 of file MixedParticleData.h.

◆ _prob

pair<double,double> ThePEG::MixedParticleData::_prob
private

The time-integrated mixing probabilities.

Definition at line 285 of file MixedParticleData.h.

Referenced by prob().

◆ _x

double ThePEG::MixedParticleData::_x
private

The \(x\) mixing variable.

Definition at line 275 of file MixedParticleData.h.

Referenced by x().

◆ _y

double ThePEG::MixedParticleData::_y
private

the \(y\) mixing variable

Definition at line 280 of file MixedParticleData.h.

Referenced by y().

◆ _z

Complex ThePEG::MixedParticleData::_z
private

The \(z\) parameter.

Definition at line 270 of file MixedParticleData.h.

Referenced by z().

◆ _zmag

double ThePEG::MixedParticleData::_zmag
private

The magnitude of \(z\).

Definition at line 260 of file MixedParticleData.h.

◆ _zphase

double ThePEG::MixedParticleData::_zphase
private

The phase of \(z\).

Definition at line 265 of file MixedParticleData.h.

◆ initMixedParticleData

ClassDescription<MixedParticleData> ThePEG::MixedParticleData::initMixedParticleData
staticprivate

The static object used to initialize the description of this class.

Indicates that this is a concrete class with persistent data.

Definition at line 218 of file MixedParticleData.h.


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