ThePEG 2.3.0
|
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>
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 DecaySelector & | decaySelector () 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< MixedParticleData > | initMixedParticleData |
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. | |
MixedParticleData & | operator= (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, Length > | generateLifeTime () const |
For a given paricle decide is it undergoes mixing and generate the lifetime. | |
pair< Complex, Complex > | mixingAmplitudes (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< tDMPtr > | DecaySelector |
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. | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
Assignment. | |
Protected Member Functions inherited from ThePEG::Named | |
const Named & | operator= (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. | |
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).\]
Definition at line 50 of file MixedParticleData.h.
|
inline |
The default constructor.
Definition at line 57 of file MixedParticleData.h.
|
inline |
|
inline |
Mixing parameters.
The mass difference
Definition at line 86 of file MixedParticleData.h.
References _deltam.
|
protectedvirtual |
Initialize this object after the setup phase before saving an EventGenerator to disk.
InitException | if object could not be initialized properly. |
Reimplemented from ThePEG::ParticleData.
|
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.
|
privatedelete |
The assignment operator is private and must never be called.
In fact, it should not even be implemented.
|
protectedvirtual |
ParticleData clone method.
Reimplemented from ThePEG::ParticleData.
void ThePEG::MixedParticleData::persistentInput | ( | PersistentIStream & | is, |
int | version | ||
) |
Function used to read in object persistently.
is | the persistent input stream read from. |
version | the version number of the object when written. |
void ThePEG::MixedParticleData::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
|
inline |
|
inline |
The time-integrated mixing probabilities.
Definition at line 116 of file MixedParticleData.h.
References _prob.
|
inline |
|
inline |
|
inline |
|
private |
The width difference.
Definition at line 240 of file MixedParticleData.h.
Referenced by deltaGamma().
|
private |
Mixing parameters.
The mass difference
Definition at line 235 of file MixedParticleData.h.
Referenced by deltaM().
|
private |
|
private |
The magnitude of \(p/q\).
Definition at line 245 of file MixedParticleData.h.
|
private |
The phase of \(p/q\).
Definition at line 250 of file MixedParticleData.h.
|
private |
The time-integrated mixing probabilities.
Definition at line 285 of file MixedParticleData.h.
Referenced by prob().
|
private |
|
private |
|
private |
|
private |
The magnitude of \(z\).
Definition at line 260 of file MixedParticleData.h.
|
private |
The phase of \(z\).
Definition at line 265 of file MixedParticleData.h.
|
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.