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 {
11 public:
12 using amp_type = CompiledExpression<void(complex_v*, const size_t*, const real_t*, const real_v*)>;
13 MatrixElement() = default;
14 MatrixElement(const Particle& dt, const TotalCoupling& coupling, const amp_type& amp);
16 const TotalCoupling& coupling,
17 const MinuitParameterSet& mps,
18 const std::map<std::string, unsigned>& evtFormat,
19 const bool& debugThis=false);
20
21 const std::vector<complex_v> operator()(const Event& event) const;
22 template <class... arg_types> auto operator()(arg_types... args ) const { return amp_type::operator()(args...) ; }
23 void debug( const Event& event ) const;
24 const std::string decayDescriptor() const { return decayTree.decayDescriptor() ; }
29 bool workToDo = {false};
30 unsigned size = {1}; // size of the returned object
31 };
32 std::vector<size_t> processIndex(const std::vector<MatrixElement>& tm, const std::string& label);
33 size_t findIndex(const std::vector<MatrixElement>& tm, const std::string& decayDescriptor);
34 std::vector<size_t> findIndices(const std::vector<MatrixElement>& tm, const std::string& decayDescriptor);
35}
36#endif
Encapsulates the final state particles of a single event.
Definition Event.h:18
const std::string decayDescriptor() const
auto operator()(arg_types... args) const
CompiledExpression< void(complex_v *, const size_t *, const real_t *, const real_v *)> amp_type
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:46
std::vector< size_t > findIndices(const std::vector< MatrixElement > &tm, const std::string &decayDescriptor)
AVX::complex_v complex_v
Definition utils.h:47
std::vector< DebugSymbol > DebugSymbols
Definition Expression.h:111
std::vector< size_t > processIndex(const std::vector< MatrixElement > &tm, const std::string &label)