AmpGen 2.1
Loading...
Searching...
No Matches
IncoherentSum.h
Go to the documentation of this file.
1#ifndef AMPGEN_INCOHERENTSUM_H
2#define AMPGEN_INCOHERENTSUM_H
3
4#include <complex>
5#include <iomanip>
6#include <string>
7#include <vector>
8
9#include "AmpGen/EventList.h"
10#include "AmpGen/CoherentSum.h"
11#include "AmpGen/Integrator.h"
12#include "AmpGen/MsgService.h"
13#include "AmpGen/Event.h"
14#include "AmpGen/Types.h"
15
16namespace AmpGen {
17 class EventType;
18 class FitFraction;
21
33 class IncoherentSum : public CoherentSum {
34 public:
40 IncoherentSum(const EventType &eventType, const AmpGen::MinuitParameterSet &mps, const std::string &prefix = "Inco");
41
43 real_t prob(const Event &evt) const;
44 real_t operator()(const Event &evt) const { return prob(evt); }
45 real_v operator()(const real_v *, const unsigned) const;
46#if ENABLE_AVX
47 double operator()(const double *, const unsigned) const;
48#endif
49
51 real_t prob_unnormalised(const Event &evt) const;
52
58 real_t norm() const;
59 complex_t norm(const size_t &i, const size_t &j) { return i == j ? m_normalisations.get(i, i) : 0; }
60 complex_t norm(const size_t &i) { return m_normalisations.get(i, i); }
61 real_t norm(const Bilinears &norms) const;
62 std::vector<FitFraction> fitFractions(const LinearErrorPropagator &linProp);
63
65 void debug(const Event &evt, const std::string &nameMustContain = "");
66
67 std::function<real_t(const Event &)> evaluator(const EventList_type * = nullptr) const;
68 KeyedFunctors<double(Event)> componentEvaluator(const EventList_type * = nullptr) const;
69
70 // void prepare();
71 };
72} // namespace AmpGen
73
74#endif
std::string prefix() const
Definition CoherentSum.h:56
Bilinears norms() const
EventList EventList_type
Definition CoherentSum.h:50
Bilinears m_normalisations
Normalisation integrals.
EventType eventType() const
real_v operator()(const real_v *, const unsigned) const
Encapsulates the final state particles of a single event.
Definition Event.h:19
Deals with final state configuration of events, specifically dealing with the ordering of particles i...
Definition EventType.h:22
An incoherent sum of resonances, traditionally considered as an approximate background model.
real_t prob_unnormalisedNoCache(const Event &evt) const
KeyedFunctors< double(Event)> componentEvaluator(const EventList_type *=nullptr) const
std::vector< FitFraction > fitFractions(const LinearErrorPropagator &linProp)
complex_t norm(const size_t &i)
real_t norm() const
Constructs an incoherentSum from the type of event this is expected to describe, and a set of paramet...
void debug(const Event &evt, const std::string &nameMustContain="")
std::function< real_t(const Event &)> evaluator(const EventList_type *=nullptr) const
real_t norm(const Bilinears &norms) const
complex_t norm(const size_t &i, const size_t &j)
Propagates uncertainties on functors using either a MinuitParameterSet (thus assuming a diagonal cova...
double real_t
Definition Types.h:6
std::complex< real_t > complex_t
Definition Types.h:7
AVX::real_v real_v
Definition utils.h:47