21 RateBase::RateBase() : _integ{}, _PSRanges{}, _nPoints{
22 _integ.getPointsNumber()}, _tensorList{} {
67 for(
auto& daughter : sig.daughters){
68 ds = ds +
" " + to_string(daughter);
70 return to_string(sig.parent) +
" ->" + ds;
104 for (
IndexType i = 0; i < points.size(); ++i) {
virtual Tensor evalAtPSPoint(const std::vector< double > &point)=0
evaluates the rate at a specific point in as a rank N Tensor
const EvaluationWeights & getEvaluationWeights() const
Tensor & addAt(const Tensor &t, IndexLabel coord, IndexType position)
add a tensor of rank N-1 to a specific position in a specific coordinate the dimension of the tensor ...
const EvaluationGrid & getEvaluationPoints() const
returns the position of the evaluation points given an integration range
virtual void eval(const Particle &parent, const ParticleList &daughters, const ParticleList &references)
method to evaluate the object on a specific particle set.
void addIntegrationBoundaries(const IntegrationBoundaries &boundaries)
adds the integration limits for a specific signature to the range list.
std::vector< BoundaryFunction > IntegrationBoundaries
void calcTensor()
evaluates the rate by computing the (rank N) rate tensor at different points using evalAtPSPoint on ...
void init()
initializes the rate (defines settings associated to this rate, computes the rate tensor) ...
static Log & getLog(const std::string &name)
Get a logger with the given name.
void addTensor(Tensor &&tensor)
adds the index labels for the amplitude tensor for a specific signature to the index labels signature...
Interface class for tensor container data structure.
std::vector< Particle > ParticleList
std::vector< IntegrationBoundaries > _PSRanges
list of integration limits (one for each signature)
Multidimensional tensor class with complex numbers as elements.
Tensor & getTensor()
returns a reference to itself as a Tensor
void clearData()
sets all the elements to 0
std::vector< Signature > _signatures
the list of signatures
Hammer numerical integration classes.
const IntegrationBoundaries & getIntegrationBoundaries() const
return the physical range of for this process (to be used set the integration limits) ...
virtual void defineSettings()
defines new settings for this class
size_t _signatureIndex
the index of the current signature
const std::string getPdgIdString()
returns string of pdg ids in the process
void applyRange(const IntegrationBoundaries &boundaries)
apply rescaling factor for the size of the interval from the canonical [-1,1] interval to the actual ...
const EvaluationGrid & getEvaluationPoints() const
std::vector< double > EvaluationWeights
std::vector< std::vector< double >> EvaluationGrid
Log & getLog() const
logging facility
std::vector< Tensor > _tensorList
list of (list of) labels for the tensor indices (one for each signature)