12 #ifndef HAMMER_RATE_BASE
13 #define HAMMER_RATE_BASE
123 return ([qmin, qmax](
const std::vector<double>&) -> std::pair<double, double> {
124 return std::make_pair(pow(qmin, 2.), pow(qmax, 2.));
virtual Tensor evalAtPSPoint(const std::vector< double > &point)=0
evaluates the rate at a specific point in as a rank N Tensor
Hammer decay PDG code management.
IndexType _nPoints
number of points used for the numerical integration
std::function< std::pair< double, double >(const std::vector< double > &)> BoundaryFunction
Message logging routines.
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) ...
Base class to access the settings repository.
void addTensor(Tensor &&tensor)
adds the index labels for the amplitude tensor for a specific signature to the index labels signature...
std::vector< Particle > ParticleList
std::vector< IntegrationBoundaries > _PSRanges
list of integration limits (one for each signature)
virtual ~RateBase() noexcept=default
Multidimensional tensor class with complex numbers as elements.
Tensor & getTensor()
returns a reference to itself as a Tensor
Base class for accessing Hammer settings repository.
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
const std::string getPdgIdString()
returns string of pdg ids in the process
Forward declarations for particle class.
BoundaryFunction makeQ2Function(double qmin, double qmax)
const EvaluationGrid & getEvaluationPoints() const
RateBase & operator=(const RateBase &other)=delete
std::vector< std::vector< double >> EvaluationGrid
Log & getLog() const
logging facility
Tensor integration class.
PDG code process signature class.
std::vector< Tensor > _tensorList
list of (list of) labels for the tensor indices (one for each signature)