Hammer
1.0.0
Helicity Amplitude Module for Matrix Element Reweighting
|
Base class for rates. More...
#include <RateBase.hh>
Public Member Functions | |
RateBase () | |
RateBase (const RateBase &other)=delete | |
RateBase & | operator= (const RateBase &other)=delete |
RateBase (RateBase &&other)=delete | |
RateBase & | operator= (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... | |
Tensor & | getTensor () |
returns a reference to itself as a Tensor More... | |
const Tensor & | getTensor () const |
returns a reference to itself as a Tensor More... | |
const IntegrationBoundaries & | getIntegrationBoundaries () const |
return the physical range of \( Q^2 \) for this process (to be used set the integration limits) More... | |
const EvaluationGrid & | getEvaluationPoints () 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 | |
ParticleData & | operator= (const ParticleData &other)=default |
ParticleData (ParticleData &&other)=default | |
ParticleData & | operator= (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) |
SettingsHandler * | getSettingsHandler () 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... | |
SettingsConsumer & | operator= (const SettingsConsumer &)=default |
virtual | ~SettingsConsumer () |
virtual destructor More... | |
Protected Member Functions | |
Log & | getLog () 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 | |
Log & | getLog () 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... | |
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.
Hammer::RateBase::RateBase | ( | ) |
Definition at line 21 of file RateBase.cc.
|
delete |
|
delete |
|
virtualdefaultnoexcept |
|
protected |
adds the \( q^2 \) integration limits for a specific signature to the \( q^2 \) range list.
It will be selected by calling setSignatureIndex
[in] | boundaries | \( q_{min} \) |
Definition at line 81 of file RateBase.cc.
|
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
[in] | tensor | the 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.
|
protectedvirtual |
defines new settings for this class
Implements Hammer::SettingsConsumer.
Definition at line 89 of file RateBase.cc.
|
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
[in] | parent | the parent Particle |
[in] | daughters | the daughters (and grand-daughters, if necessary) Particle list |
[in] | references | the parent Particle siblings (necessary e.g. for helicity amplitude phase conventions) |
Implements Hammer::ParticleData.
Definition at line 86 of file RateBase.cc.
|
protectedpure virtual |
evaluates the rate at a specific point in \( q^2 \) as a rank N Tensor
[in] | point | the \( q^2 \) value |
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)
Definition at line 77 of file RateBase.cc.
|
protected |
const string Hammer::RateBase::getPdgIdString | ( | ) |
Tensor & Hammer::RateBase::getTensor | ( | ) |
const Tensor & Hammer::RateBase::getTensor | ( | ) | const |
void Hammer::RateBase::init | ( | ) |
initializes the rate (defines settings associated to this rate, computes the rate tensor)
Definition at line 55 of file RateBase.cc.
|
protected |
Definition at line 114 of file RateBase.hh.
|
protected |
number of \( q^2 \) points used for the numerical integration
Definition at line 116 of file RateBase.hh.
|
protected |
list of \( q^2 \) integration limits (one for each signature)
Definition at line 115 of file RateBase.hh.
|
protected |
list of (list of) labels for the tensor indices (one for each signature)
Definition at line 117 of file RateBase.hh.