1#ifndef AMPGEN_COHERENTSUM_H
2#define AMPGEN_COHERENTSUM_H
76 void reset(
bool resetEvents =
false );
81 WARNING(
"Setting events from a AoS container, will need to make a copy");
84 WARNING(
"Setting integration events from a AoS container, will need to make a copy");
92 void debug(
const Event& evt,
const std::string& nameMustContain=
"");
93 void generateSourceCode(
const std::string& fname,
const double& normalisation = 1,
bool add_mt =
false );
real_t norm(const Bilinears &norms) const
std::string prefix() const
void debug(const Event &evt, const std::string &nameMustContain="")
auto matrixElements() const
std::string m_objCache
Directory that contains (cached) amplitude objects.
bool m_dbThis
Flag to generate amplitude level debugging.
void printVal(const Event &evt)
CoherentSum(const EventType &type, const AmpGen::MinuitParameterSet &mps, const std::string &prefix="")
bool m_ownEvents
Flag as to whether events are owned by this PDF or not.
Integrator m_integrator
Tool to calculate integrals.
std::string m_prefix
Prefix for matrix elements.
complex_t getValNoCache(const Event &evt) const
void setMC(const EventList_type &sim)
std::function< real_t(const Event &)> evaluator(const EventList_type *=nullptr) const
void setWeight(MinuitProxy param)
MinuitProxy m_weight
Weight (i.e. the normalised yield)
void setEvents(const EventList_type &list)
std::vector< FitFraction > fitFractions(const LinearErrorPropagator &linProp)
void addMatrixElement(std::pair< Particle, TotalCoupling > &particleWithCoupling, const MinuitParameterSet &mps)
auto & operator[](const size_t &index) const
bool m_verbosity
Flag for verbose printing.
size_t m_printFreq
Frequency to print verbose PDF info.
Bilinears m_normalisations
Normalisation integrals.
complex_t getVal(const Event &evt) const
const auto & cache() const
EventType eventType() const
EventType m_eventType
Final state for this amplitude.
real_t getNorm(const Bilinears &normalisations)
const EventList_type * m_events
Data events to evaluate PDF on.
size_t m_lastPrint
Last time verbose PDF info was printed.
void makeTotalExpression()
real_t operator()(const Event &evt) const
const MinuitParameterSet * m_mps
std::vector< MatrixElement > m_matrixElements
Vector of matrix elements.
void reset(bool resetEvents=false)
FunctionCache< EventList_type, complex_v, Alignment::AoS > m_cache
Store of intermediate values for the PDF calculation.
real_v operator()(const real_v *, const unsigned) const
std::map< std::string, std::vector< unsigned int > > getGroupedAmplitudes()
KeyedFunctors< double(Event)> componentEvaluator(const EventList_type *=nullptr) const
double m_norm
Normalisation integral.
bool m_isConstant
Flag for a constant PDF.
auto & operator[](const size_t &index)
void transferParameters()
complex_t norm(const size_t &x, const size_t &y) const
std::function< complex_t(const Event &)> amplitudeEvaluator(const EventList_type *=nullptr) const
size_t m_prepareCalls
Number of times prepare has been called.
void generateSourceCode(const std::string &fname, const double &normalisation=1, bool add_mt=false)
Encapsulates the final state particles of a single event.
Deals with final state configuration of events, specifically dealing with the ordering of particles i...
Propagates uncertainties on functors using either a MinuitParameterSet (thus assuming a diagonal cova...
Describes a particle, its decay process and subsequent decay products, which are also Particles.
#define WARNING(X)
Used for printing warning messages, can be switched off using WARNINGLEVEL.
std::complex< real_t > complex_t