AmpGen 2.1
Loading...
Searching...
No Matches
MatrixElement.h
Go to the documentation of this file.
1#ifndef AMPGEN_TRANSITIONMATRIXELEMENT_H
2#define AMPGEN_TRANSITIONMATRIXELEMENT_H
3
6#include "AmpGen/Particle.h"
7
8namespace AmpGen {
9 class MatrixElement : public CompiledExpression<void(complex_v *, const size_t *, const real_t *, const real_v *)> {
10 public:
11 using amp_type = CompiledExpression<void(complex_v *, const size_t *, const real_t *, const real_v *)>;
12 MatrixElement() = default;
13 MatrixElement(const Particle &dt, const TotalCoupling &coupling, const amp_type &amp);
14 MatrixElement(const Particle &dt, const TotalCoupling &coupling, const MinuitParameterSet &mps, const std::map<std::string, unsigned> &evtFormat,
15 const bool &debugThis = false);
16
17 const std::vector<complex_v> operator()(const Event &event) const;
18 template <class... arg_types> auto operator()(arg_types... args) const { return amp_type::operator()(args...); }
19 void debug(const Event &event) const;
20 const std::string decayDescriptor() const { return decayTree.decayDescriptor(); }
25 bool workToDo = {false};
26 unsigned size = {1}; // size of the returned object
27 };
28 std::vector<size_t> processIndex(const std::vector<MatrixElement> &tm, const std::string &label);
29 size_t findIndex(const std::vector<MatrixElement> &tm, const std::string &decayDescriptor);
30 std::vector<size_t> findIndices(const std::vector<MatrixElement> &tm, const std::string &decayDescriptor);
31}
32#endif
Encapsulates the final state particles of a single event.
Definition Event.h:19
const std::string decayDescriptor() const
CompiledExpression< void(complex_v *, const size_t *, const real_t *, const real_v *)> amp_type
auto operator()(arg_types... args) const
MatrixElement(const Particle &dt, const TotalCoupling &coupling, const amp_type &amp)
TotalCoupling coupling
const std::vector< complex_v > operator()(const Event &event) const
MatrixElement(const Particle &dt, const TotalCoupling &coupling, const MinuitParameterSet &mps, const std::map< std::string, unsigned > &evtFormat, const bool &debugThis=false)
void debug(const Event &event) const
Describes a particle, its decay process and subsequent decay products, which are also Particles.
Definition Particle.h:103
double real_t
Definition Types.h:6
size_t findIndex(const std::vector< MatrixElement > &tm, const std::string &decayDescriptor)
std::complex< real_t > complex_t
Definition Types.h:7
AVX::real_v real_v
Definition utils.h:47
std::vector< size_t > findIndices(const std::vector< MatrixElement > &tm, const std::string &decayDescriptor)
AVX::complex_v complex_v
Definition utils.h:48
std::vector< DebugSymbol > DebugSymbols
Definition Expression.h:111
std::vector< size_t > processIndex(const std::vector< MatrixElement > &tm, const std::string &label)