YAP
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Private Attributes | List of all members
DecayingParticle Class Reference

#include <DecayingParticle.h>

Inheritance diagram for DecayingParticle:
Particle Resonance

Public Member Functions

const DecayTreeVectorMap & decayTrees () const
 
virtual bool consistent () const override
 Check consistency of object.
 
virtual void checkDecayChannel (const DecayChannel &c) const
 
virtual std::shared_ptr
< DecayChannel
addChannel (std::shared_ptr< DecayChannel > c)
 
std::shared_ptr< DecayChanneladdChannel (const ParticleVector &daughters)
 
template<typename... Types>
std::shared_ptr< DecayChanneladdChannel (std::shared_ptr< Particle > A, std::shared_ptr< Particle > B, Types...other_daughters)
 
void printDecayChain () const
 Print complete decay chain.
 
const Modelmodel () const override
 
Getters
const DecayChannelVector & channels () const
 
std::shared_ptr< RealParameterradialSize ()
 
const BlattWeisskopfMap & blattWeisskopfs () const
 
- Public Member Functions inherited from Particle
const QuantumNumbersquantumNumbers () const
 const access QuantumNumbers object
 
const std::string & name () const
 Get name (const)
 
std::string & name ()
 Get name.
 
const ParticleCombinationSet & particleCombinations () const
 

Static Public Member Functions

static std::shared_ptr
< DecayingParticle
create (std::string name, const QuantumNumbers &q, double radialSize, std::shared_ptr< PhaseSpaceFactorFactory > phsp_factory=DefaultPHSPFactory)
 

Public Attributes

friend Model
 grant friend status to Model to call fixSolitaryFreeAmplitudes()
 
friend DecayChannel
 grant friend status to DecayChannel to call registerWithModel()
 

Protected Member Functions

 DecayingParticle (std::string name, const QuantumNumbers &q, double radialSize, std::shared_ptr< PhaseSpaceFactorFactory > phsp_factory)
 
virtual void addParticleCombination (const std::shared_ptr< ParticleCombination > &c) override
 add ParticleCombination to SymmetrizationIndices_ and BlattWeisskopfs_
 
virtual void pruneParticleCombinations () override
 prune ParticleCombinations_ to only contain ParticleCombination's tracing back up the ISP
 
virtual void registerWithModel () override
 register any necessary DataAccessor's with model
 
void fixSolitaryFreeAmplitudes ()
 if only one decay channel is available, fix its free amplitude to the current value
 
void printDecayChainLevel (int level) const
 
virtual void modifyDecayTree (DecayTree &dt)
 
virtual std::shared_ptr
< PhaseSpaceFactor
phaseSpaceFactor (const DecayChannel &dc, const SpinAmplitude &sa)
 
std::shared_ptr
< PhaseSpaceFactorFactory
phaseSpaceFactorFactory ()
 
- Protected Member Functions inherited from Particle
 Particle (std::string name, const QuantumNumbers &q)
 

Private Attributes

DecayChannelVector Channels_
 vector of decay channel objects
 
BlattWeisskopfMap BlattWeisskopfs_
 map of Blatt-Weisskopf barrier factors, key = angular momentum
 
std::shared_ptr< RealParameterRadialSize_
 Radial size parameter [GeV^-1].
 
DecayTreeVectorMap DecayTrees_
 Map of spin projection to DecayTreeVector.
 
std::shared_ptr
< PhaseSpaceFactorFactory
PhaseSpaceFactorFactory_
 PhaseSpaceFactorFactory.
 

Detailed Description

Class for a particle that will decay

Author
Johannes Rauch, Daniel Greenwald

The amplitude function returns a sum over the amplitudes of all DecayChannel's for the decay of the particle (denoted P, with daughters in channel c denoted D1, D2; and amplitude A_c):
A_c = a_c * Blatt-Weisskopf(P->D1+D2) * SpinAmplitude(P->D1+D2) * A(D1->xx) * A(D2->xx)
with free amplitude a_c.

Constructor & Destructor Documentation

DecayingParticle ( std::string  name,
const QuantumNumbers q,
double  radialSize,
std::shared_ptr< PhaseSpaceFactorFactory phsp_factory 
)
protected

Constructor see create

Member Function Documentation

std::shared_ptr< DecayChannel > addChannel ( std::shared_ptr< DecayChannel c)
virtual

Add a DecayChannel and set its parent to this DecayingParticle.

Parameters
cunique_ptr to DecayChannel, should be constructed in function call, or use std::move(c)
Returns
shared_ptr to DecayChannel that has been added

create decay trees for channel:

loop over spin amplitudes of channel

Reimplemented in Resonance.

std::shared_ptr< DecayChannel > addChannel ( const ParticleVector &  daughters)

Add a DecayChannel and set its parent to this DecayingParticle.

Parameters
daughtersParticleVector of daughters to create DecayChannel object from
Returns
shared_ptr to DecayChannel that has been added
std::shared_ptr<DecayChannel> addChannel ( std::shared_ptr< Particle A,
std::shared_ptr< Particle B,
Types...  other_daughters 
)
inline

Add a DecayChannel and set its parent to this DecayingParticle.

Parameters
Ashared_ptr to a daughter
Bshared_ptr to a daughter
other_daughters...other daughters
Returns
shared_ptr to DecayChannel that has been added
const BlattWeisskopfMap& blattWeisskopfs ( ) const
inline
Returns
Blatt-Weisskopf factors
const DecayChannelVector& channels ( ) const
inline
Returns
channels
void checkDecayChannel ( const DecayChannel c) const
virtual

Check if a DecayChannel is valid for DecayingParticle; will throw if invalid

Reimplemented in Resonance.

static std::shared_ptr<DecayingParticle> create ( std::string  name,
const QuantumNumbers q,
double  radialSize,
std::shared_ptr< PhaseSpaceFactorFactory phsp_factory = DefaultPHSPFactory 
)
inlinestatic

create

Parameters
nameName of decaying particle
qQuantumNumbers of decaying particle
radialSizeradial size of decaying particle
const DecayTreeVectorMap& decayTrees ( ) const
inline
Returns
DecayTrees map key is spin projection
const Model * model ( ) const
overridevirtual
Returns
raw pointer to Model through first DecayChannel

Implements Particle.

void modifyDecayTree ( DecayTree dt)
protectedvirtual

modify a DecayTree

Parameters
dtDecayTree to modify

Reimplemented in Resonance.

std::shared_ptr< PhaseSpaceFactor > phaseSpaceFactor ( const DecayChannel dc,
const SpinAmplitude sa 
)
protectedvirtual
Returns
PhaseSpaceFactor via PhaseSpaceFactorFactory

Reimplemented in Resonance.

std::shared_ptr<PhaseSpaceFactorFactory> phaseSpaceFactorFactory ( )
inlineprotected
Returns
PhaseSpaceFactorFactory_
std::shared_ptr<RealParameter> radialSize ( )
inline
Returns
Radial size [GeV^-1]

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