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::RateBase Class Referenceabstract

Base class for rates. More...

#include <RateBase.hh>

+ Inheritance diagram for Hammer::RateBase:
+ Collaboration diagram for Hammer::RateBase:

Public Member Functions

 RateBase ()
 
 RateBase (const RateBase &other)=delete
 
RateBaseoperator= (const RateBase &other)=delete
 
 RateBase (RateBase &&other)=delete
 
RateBaseoperator= (RateBase &&other)=delete
 
virtual ~RateBase () noexcept=default
 
void init ()
 initializes the rate (defines settings associated to this rate, computes the rate tensor) More...
 
const std::string getPdgIdString ()
 returns string of pdg ids in the process More...
 
TensorgetTensor ()
 returns a reference to itself as a Tensor More...
 
const TensorgetTensor () const
 returns a reference to itself as a Tensor More...
 
const IntegrationBoundariesgetIntegrationBoundaries () const
 return the physical range of \( Q^2 \) for this process (to be used set the integration limits) More...
 
const EvaluationGridgetEvaluationPoints () const
 
void calcTensor ()
 evaluates the rate by computing the (rank N) rate tensor at different \( q^2 \) points using evalAtPSPoint on the integration points determined by Integrator and creating a rank N+1 tensor. More...
 
- Public Member Functions inherited from Hammer::ParticleData
 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 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...
 
- Public Member Functions inherited from Hammer::SettingsConsumer
virtual void setSettingsHandler (SettingsHandler &sh)
 set link to settings repository handler. More...
 
void setSettingsHandler (const SettingsConsumer &other)
 
SettingsHandlergetSettingsHandler () const
 provide the pointer to the repository handler More...
 
WTerm setWeightTerm (WTerm group)
 
virtual void addRefs () const
 
 SettingsConsumer ()
 base constructor More...
 
 SettingsConsumer (const SettingsConsumer &)=default
 default copy constructor More...
 
SettingsConsumeroperator= (const SettingsConsumer &)=default
 
virtual ~SettingsConsumer ()
 virtual destructor More...
 

Protected Member Functions

LoggetLog () const
 logging facility More...
 
virtual void defineSettings ()
 defines new settings for this class More...
 
virtual Tensor evalAtPSPoint (const std::vector< double > &point)=0
 evaluates the rate at a specific point in \( q^2 \) as a rank N Tensor More...
 
void addIntegrationBoundaries (const IntegrationBoundaries &boundaries)
 adds the \( q^2 \) integration limits for a specific signature to the \( q^2 \) range list. More...
 
void addTensor (Tensor &&tensor)
 adds the index labels for the amplitude tensor for a specific signature to the index labels signature list. More...
 
- Protected Member Functions inherited from Hammer::ParticleData
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 Member Functions inherited from Hammer::SettingsConsumer
LoggetLog () const
 logging facility More...
 
void initSettings ()
 
void setPath (const std::string &path)
 provide the basic path for the settings defined by this class, as in "<path>:<setting>" More...
 
template<typename T >
void addSetting (const std::string &name, const T &defaultValue)
 template method to add a new setting More...
 
void removeSetting (const std::string &name)
 
template<typename T >
T * getSetting (const std::string &name) const
 template method to return a setting defined by this class More...
 
template<typename T >
T * getSetting (const std::string &otherPath, const std::string &name) const
 template method to return a setting defined by this class More...
 
bool isOn (const std::string &name) const
 method to check a boolean setting defined by this class More...
 
bool isOn (const std::string &otherPath, const std::string &name) const
 method to check a boolean setting by its name and path More...
 
template<typename T >
void updateVectorOfSettings (const std::vector< T > &values, const std::vector< std::string > &names, const std::string &path="", WTerm group=WTerm::COMMON)
 
template<typename T >
void updateVectorOfSettings (const std::map< std::string, T > &values, const std::string &path="", WTerm group=WTerm::COMMON)
 

Protected Attributes

Integrator _integ
 
std::vector
< IntegrationBoundaries
_PSRanges
 list of \( q^2 \) integration limits (one for each signature) More...
 
IndexType _nPoints
 number of \( q^2 \) points used for the numerical integration More...
 
std::vector< Tensor_tensorList
 list of (list of) labels for the tensor indices (one for each signature) More...
 
- Protected Attributes inherited from Hammer::ParticleData
std::vector< Signature_signatures
 the list of signatures More...
 
size_t _signatureIndex
 the index of the current signature More...
 
- Protected Attributes inherited from Hammer::SettingsConsumer
SettingsHandler_settingHandler
 pointer to the settings repository handler. More...
 
std::string _settingPath
 path of the settings defined by this class More...
 
WTerm _group
 
std::set< std::string > _ownedSettings
 

Private Member Functions

virtual void eval (const Particle &parent, const ParticleList &daughters, const ParticleList &references)
 method to evaluate the object on a specific particle set. More...
 

Detailed Description

Base class for rates.

Provides the rate of a decay process as a N+1-dimensional tensor, whose last index is the is the \( d\Gamma/dq^2 \) (up to wilson coefficients and form factors) evaluated at different \( q^2 \) values, so that the \( q^2 \) integration can be expressed as \( \mbox{Tr} (R \cdot w \cdot FF) \), where \( R \) is the rate tensor, \( FF \) the (outer) squared form factor tensor evaluated at the same \( q^2 \) points and \( W \) is a diagonal matrix encoding the weights for the gaussian quadrature integration. Internally, rate units are always in GeV (same as Pdg class partial widths etc).

Definition at line 39 of file RateBase.hh.

Constructor & Destructor Documentation

Hammer::RateBase::RateBase ( )

Definition at line 21 of file RateBase.cc.

Hammer::RateBase::RateBase ( const RateBase other)
delete
Hammer::RateBase::RateBase ( RateBase &&  other)
delete
virtual Hammer::RateBase::~RateBase ( )
virtualdefaultnoexcept

Member Function Documentation

void Hammer::RateBase::addIntegrationBoundaries ( const IntegrationBoundaries boundaries)
protected

adds the \( q^2 \) integration limits for a specific signature to the \( q^2 \) range list.

It will be selected by calling setSignatureIndex

Parameters
[in]boundaries\( q_{min} \)

Definition at line 81 of file RateBase.cc.

void Hammer::RateBase::addTensor ( Tensor &&  tensor)
protected

adds the index labels for the amplitude tensor for a specific signature to the index labels signature list.

It will be selected by calling setSignatureIndex

Parameters
[in]tensorthe tensor indices labels

Definition at line 109 of file RateBase.cc.

void Hammer::RateBase::calcTensor ( )

evaluates the rate by computing the (rank N) rate tensor at different \( q^2 \) points using evalAtPSPoint on the integration points determined by Integrator and creating a rank N+1 tensor.

Definition at line 96 of file RateBase.cc.

void Hammer::RateBase::defineSettings ( )
protectedvirtual

defines new settings for this class

Implements Hammer::SettingsConsumer.

Definition at line 89 of file RateBase.cc.

void Hammer::RateBase::eval ( const Particle parent,
const ParticleList daughters,
const ParticleList references 
)
privatevirtual

method to evaluate the object on a specific particle set.

Implementation necessary from ParticleData, but empty for rates because they are pre-computed in the init method

Parameters
[in]parentthe parent Particle
[in]daughtersthe daughters (and grand-daughters, if necessary) Particle list
[in]referencesthe parent Particle siblings (necessary e.g. for helicity amplitude phase conventions)

Implements Hammer::ParticleData.

Definition at line 86 of file RateBase.cc.

virtual Tensor Hammer::RateBase::evalAtPSPoint ( const std::vector< double > &  point)
protectedpure virtual

evaluates the rate at a specific point in \( q^2 \) as a rank N Tensor

Parameters
[in]pointthe \( q^2 \) value
Returns
the rate tensor

Implemented in Hammer::RateBD0starLepNu, Hammer::RateBD1LepNu, Hammer::RateBD1starLepNu, Hammer::RateBD2starLepNu, Hammer::RateBDLepNu, Hammer::RateBDstarLepNu, Hammer::RateLbLcLepNu, and Hammer::RateTau3PiNu.

const EvaluationGrid & Hammer::RateBase::getEvaluationPoints ( ) const

Definition at line 92 of file RateBase.cc.

const IntegrationBoundaries & Hammer::RateBase::getIntegrationBoundaries ( ) const

return the physical range of \( Q^2 \) for this process (to be used set the integration limits)

Returns
\( [Q^2_{min}, Q^2_{max}] \)

Definition at line 77 of file RateBase.cc.

Log & Hammer::RateBase::getLog ( ) const
protected

logging facility

Returns
stream to be used for logging

Definition at line 113 of file RateBase.cc.

const string Hammer::RateBase::getPdgIdString ( )

returns string of pdg ids in the process

Returns
string

Definition at line 64 of file RateBase.cc.

Tensor & Hammer::RateBase::getTensor ( )

returns a reference to itself as a Tensor

Returns
itself

Definition at line 60 of file RateBase.cc.

const Tensor & Hammer::RateBase::getTensor ( ) const

returns a reference to itself as a Tensor

Returns
itself

Definition at line 73 of file RateBase.cc.

void Hammer::RateBase::init ( )

initializes the rate (defines settings associated to this rate, computes the rate tensor)

Todo:
anything else?

Definition at line 55 of file RateBase.cc.

RateBase& Hammer::RateBase::operator= ( const RateBase other)
delete
RateBase& Hammer::RateBase::operator= ( RateBase &&  other)
delete

Member Data Documentation

Integrator Hammer::RateBase::_integ
protected

Definition at line 114 of file RateBase.hh.

IndexType Hammer::RateBase::_nPoints
protected

number of \( q^2 \) points used for the numerical integration

Definition at line 116 of file RateBase.hh.

std::vector<IntegrationBoundaries> Hammer::RateBase::_PSRanges
protected

list of \( q^2 \) integration limits (one for each signature)

Definition at line 115 of file RateBase.hh.

std::vector<Tensor> Hammer::RateBase::_tensorList
protected

list of (list of) labels for the tensor indices (one for each signature)

Definition at line 117 of file RateBase.hh.


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