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{
18 class EventType;
19 class FitFraction;
22
35 {
36 public:
42 IncoherentSum(const EventType& eventType, const AmpGen::MinuitParameterSet& mps, const std::string& prefix = "Inco");
43
45 real_t prob( const Event& evt ) const;
46 real_t operator()(const Event& evt) const { return prob(evt) ; }
47 real_v operator()(const real_v*, const unsigned) const;
48 #if ENABLE_AVX
49 double operator()(const double*, const unsigned) const;
50 #endif
51
53 real_t prob_unnormalised( const Event& evt ) const;
54
60 real_t norm() const;
61 complex_t norm(const size_t& i, const size_t& j){ return i==j ? m_normalisations.get(i, i) : 0; }
62 complex_t norm(const size_t& i) { return m_normalisations.get(i, i); }
63 real_t norm( const Bilinears& norms ) const;
64 std::vector<FitFraction> fitFractions( const LinearErrorPropagator& linProp );
65
67 void debug( const Event& evt, const std::string& nameMustContain="");
68
69 std::function<real_t(const Event&)> evaluator(const EventList_type* = nullptr) const;
70 KeyedFunctors<double(Event)> componentEvaluator(const EventList_type* = nullptr) const;
71
72 //void prepare();
73 };
74} // namespace AmpGen
75
76#endif
std::string prefix() const
Definition CoherentSum.h:56
Bilinears norms() const
Definition CoherentSum.h:99
EventList EventList_type
Definition CoherentSum.h:50
Bilinears m_normalisations
Normalisation integrals.
EventType eventType() const
Encapsulates the final state particles of a single event.
Definition Event.h:18
Deals with final state configuration of events, specifically dealing with the ordering of particles i...
Definition EventType.h:22
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 operator()(const Event &evt) const
real_v operator()(const real_v *, const unsigned) const
real_t prob(const Event &evt) const
Evaluates the normalised probability for an event.
real_t norm() const
Returns the normalisation for this PDF, given by.
real_t prob_unnormalised(const Event &evt) const
Calculates the unnormalised probability for an event.
IncoherentSum(const EventType &eventType, const AmpGen::MinuitParameterSet &mps, const std::string &prefix="Inco")
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:46