1#ifndef AMPGEN_EVENTTYPE_H
2#define AMPGEN_EVENTTYPE_H
8#include <initializer_list>
29 EventType(
const std::vector<std::string>&,
const bool& isTD =
false );
33 EventType conj(
const bool& headOnly = 0,
const bool& dontConjHead = 0 )
const;
36 std::map<std::string, unsigned>
getEventFormat(
const bool& outputNames =
false )
const;
40 std::pair<unsigned,unsigned>
count(
const unsigned& index)
const;
41 std::pair<double, double>
minmax(
const std::vector<unsigned>& indices)
const;
44 double mass(
const unsigned& index )
const;
53 std::string
label(
const unsigned& index,
bool isRoot =
true )
const;
54 std::string
label(
const std::vector<unsigned>& index,
bool isRoot =
true )
const;
56 Projection projection(
const unsigned& nBins,
const std::vector<unsigned>& indices,
const std::string& observable =
"mass2")
const;
59 bool has(
const std::string& name )
const;
68 std::pair<unsigned, unsigned>
dim()
const;
78 std::vector<std::string> m_particleNames;
79 std::vector<std::string> m_particleNamesPickled;
80 std::vector<double> m_particleMasses;
81 std::vector<bool> m_ignore;
83 std::vector<std::string> m_eventTypeExtensions;
84 std::pair<unsigned, unsigned> m_dim;
85 bool m_alt_part_names;
Encapsulates the final state particles of a single event.
Deals with final state configuration of events, specifically dealing with the ordering of particles i...
bool has(const std::string &name) const
std::pair< double, double > minmax(const std::vector< unsigned > &indices) const
EventType()=default
Default constructor.
unsigned eventSize() const
std::string label(const unsigned &index, bool isRoot=true) const
void extendEventType(const std::string &branch)
std::string mother() const
std::vector< std::string > finalStates() const
bool operator==(const EventType &other) const
std::pair< unsigned, unsigned > dim() const
Calculates the number of spin indices associated with the initial and final state,...
std::function< void(Event &)> symmetriser() const
Functor to randomly symmetrise data of this event type, using the Fisher-Yates shuffle.
std::string decayDescriptor() const
std::string operator[](const unsigned &index) const
std::vector< Projection > defaultProjections(const unsigned &nBins=100) const
std::pair< unsigned, unsigned > count(const unsigned &index) const
Counts the number of particles in this event type with the same name as the index'th name.
std::string label(const std::vector< unsigned > &index, bool isRoot=true) const
std::string constructor_string() const
std::map< std::string, unsigned > getEventFormat(const bool &outputNames=false) const
Returns the event format, that matches between expressions and the names used in Particle.
Projection projection(const unsigned &nBins, const std::vector< unsigned > &indices, const std::string &observable="mass2") const
std::function< bool(Event &, const std::vector< int > &ids)> automaticOrdering() const
double mass(const unsigned &index) const
EventType(const std::vector< std::string > &, const bool &isTD=false)
Takes a list of particles, beginning with the head of the decay and then then final state particles,...
EventType conj(const bool &headOnly=0, const bool &dontConjHead=0) const
Returns the CP-conjugated event type.
std::vector< double > masses() const
bool isTimeDependent() const
double motherMass() const
std::ostream & operator<<(std::ostream &os, const CompiledExpressionBase &expression)
unsigned python__EventType__dim(const char *eventType)