Hammer  1.0.0
Helicity Amplitude Module for Matrix Element Reweighting
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Hammer::ParticleData Class Referenceabstract

PDG code process signature class. More...

#include <ParticleData.hh>

+ Inheritance diagram for Hammer::ParticleData:
+ Collaboration diagram for Hammer::ParticleData:

Classes

struct  Signature
 Decay signature information. More...
 

Public Member Functions

 ParticleData ()
 default constructor More...
 
 ParticleData (const ParticleData &other)=default
 
ParticleDataoperator= (const ParticleData &other)=default
 
 ParticleData (ParticleData &&other)=default
 
ParticleDataoperator= (ParticleData &&other)=default
 
virtual ~ParticleData ()
 
virtual void eval (const Particle &parent, const ParticleList &daughters, const ParticleList &references)=0
 method to evaluate the object on a specific particle set More...
 
virtual bool setSignatureIndex (size_t idx=0)
 select a specific signature to be the current signature More...
 
HashId id () const
 returns the unique ID of the current decay signature More...
 
HashId hadronicId () const
 returns the hadronic unique ID (parent + hadronic daughters) of the current decay signature More...
 
const std::vector< double > & masses () const
 returns the particle masses of the current decay signature More...
 
size_t numSignatures () const
 returns the number of available signatures More...
 

Protected Member Functions

void addProcessSignature (PdgId parent, const std::vector< PdgId > &daughters, const std::vector< PdgId > &subDaughters={})
 adds a signature to the list by specifying the particles PDG codes. More...
 

Protected Attributes

std::vector< Signature_signatures
 the list of signatures More...
 
size_t _signatureIndex
 the index of the current signature More...
 

Private Member Functions

bool checkValidSignature (PdgId parent, const std::vector< PdgId > &daughters, const std::vector< PdgId > &granddaughters)
 

Detailed Description

PDG code process signature class.

Manages the particle signatures (hashes, pdg lists, particle masses) of an object that needs to be associated to a decay vertex, in order to associate it in a Process at runtime. Supports multiple signatures to lump together similar decays (e.g. \( B^0 \rightarrow D^- \bar \tau \nu_\tau \) with \( B^+ \rightarrow D^0 \bar \tau \nu_\tau \), \( B^+ \rightarrow D^0 \bar \mu \nu_\mu \), etc.). Each signature can be selected by a signature index.

Definition at line 33 of file ParticleData.hh.

Constructor & Destructor Documentation

Hammer::ParticleData::ParticleData ( )

default constructor

Definition at line 27 of file ParticleData.cc.

Hammer::ParticleData::ParticleData ( const ParticleData other)
default
Hammer::ParticleData::ParticleData ( ParticleData &&  other)
default
Hammer::ParticleData::~ParticleData ( )
virtual

Definition at line 31 of file ParticleData.cc.

Member Function Documentation

void Hammer::ParticleData::addProcessSignature ( PdgId  parent,
const std::vector< PdgId > &  daughters,
const std::vector< PdgId > &  subDaughters = {} 
)
protected

adds a signature to the list by specifying the particles PDG codes.

The internal particle ordering is automatically taken into account

Parameters
[in]parentthe parent PDG code
[in]daughtersthe list of daughter PDG codes
[in]subDaughtersthe list of subdaughters PDG codes for objects associated to 2-step decays

Definition at line 64 of file ParticleData.cc.

bool Hammer::ParticleData::checkValidSignature ( PdgId  parent,
const std::vector< PdgId > &  daughters,
const std::vector< PdgId > &  granddaughters 
)
private

Definition at line 48 of file ParticleData.cc.

virtual void Hammer::ParticleData::eval ( const Particle parent,
const ParticleList daughters,
const ParticleList references 
)
pure virtual
HashId Hammer::ParticleData::hadronicId ( ) const

returns the hadronic unique ID (parent + hadronic daughters) of the current decay signature

Returns
the hadronic UID

Definition at line 40 of file ParticleData.cc.

HashId Hammer::ParticleData::id ( ) const

returns the unique ID of the current decay signature

Returns
the UID

Definition at line 36 of file ParticleData.cc.

const vector< double > & Hammer::ParticleData::masses ( ) const

returns the particle masses of the current decay signature

Returns
the list of masses

Definition at line 44 of file ParticleData.cc.

size_t Hammer::ParticleData::numSignatures ( ) const

returns the number of available signatures

Returns
the number of signatures

Definition at line 111 of file ParticleData.cc.

ParticleData& Hammer::ParticleData::operator= ( const ParticleData other)
default
ParticleData& Hammer::ParticleData::operator= ( ParticleData &&  other)
default
bool Hammer::ParticleData::setSignatureIndex ( size_t  idx = 0)
virtual

select a specific signature to be the current signature

Parameters
[in]idxthe signature index

Reimplemented in Hammer::AmplitudeBase.

Definition at line 100 of file ParticleData.cc.

Member Data Documentation

size_t Hammer::ParticleData::_signatureIndex
protected

the index of the current signature

Definition at line 129 of file ParticleData.hh.

std::vector<Signature> Hammer::ParticleData::_signatures
protected

the list of signatures

Definition at line 128 of file ParticleData.hh.


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