1#ifndef AMPGEN_AMPLITUDERULES_H
2#define AMPGEN_AMPLITUDERULES_H
33 std::string
name()
const {
return m_name; }
34 std::string
head()
const {
return m_particle.name(); }
35 std::string
prefix()
const {
return m_prefix; }
46 std::string m_prefix{
""};
47 std::string m_name{
""};
48 MinuitProxy m_re{
nullptr};
49 MinuitProxy m_im{
nullptr};
50 MinuitExpression *m_expr{
nullptr};
52 Property<coordinateType> m_coord{
this,
"CouplingConstant::Coordinates", coordinateType::cartesian};
53 Property<angType> m_angUnit{
this,
"CouplingConstant::AngularUnits", angType::rad};
68 size_t size()
const {
return couplings.size(); }
69 std::vector<CouplingConstant>::const_iterator
begin()
const {
return couplings.begin(); }
70 std::vector<CouplingConstant>::const_iterator
end()
const {
return couplings.end(); }
73 std::vector<CouplingConstant> couplings;
82 std::vector<CouplingConstant>
rulesForDecay(
const std::string &head,
const std::string &prefix =
"")
const;
84 const std::map<std::string, std::vector<CouplingConstant>> &
rules()
const;
92 std::map<std::string, std::vector<CouplingConstant>> m_rules;
std::vector< std::pair< Particle, TotalCoupling > > getMatchingRules(const EventType &type, const std::string &prefix="")
bool hasDecay(const std::string &head) const
static const AmplitudeRules * get()
const std::map< std::string, std::vector< CouplingConstant > > & rules() const
static AmplitudeRules * create(const MinuitParameterSet &mps)
std::vector< CouplingConstant > rulesForDecay(const std::string &head, const std::string &prefix="") const
std::vector< std::pair< Particle, TotalCoupling > > expand(const CouplingConstant &coupling) const
AmplitudeRules(const MinuitParameterSet &mps)
void add_rule(const Particle &p, double coupling)
std::vector< CouplingConstant > processesThatProduce(const Particle &particle) const
virtual ~CouplingConstant()=default
std::string prefix() const
CouplingConstant(MinuitExpression *expression)
const Particle & particle() const
CouplingConstant(const Particle &particle, double f)
complex_t operator()() const
coordinateType coordinates() const
Expression to_expression() const
angType angularUnit() const
CouplingConstant(MinuitProxy re, MinuitProxy im)
EventType eventType() const
CouplingConstant()=default
Deals with final state configuration of events, specifically dealing with the ordering of particles i...
Wrapper class for shared_ptrs to virtual expressions for use in conjunction with operators to build e...
Describes a particle, its decay process and subsequent decay products, which are also Particles.
TotalCoupling(const CouplingConstant &pA)
bool contains(const std::string &name) const
CouplingConstant operator[](const size_t &index)
TotalCoupling(const TotalCoupling &other, const CouplingConstant &pA)
std::vector< CouplingConstant >::const_iterator begin() const
std::complex< double > operator()() const
Expression to_expression() const
std::vector< CouplingConstant >::const_iterator end() const
std::complex< real_t > complex_t