AmpGen 2.1
Loading...
Searching...
No Matches
Event.h
Go to the documentation of this file.
1#ifndef AMPGEN_EVENT_H
2#define AMPGEN_EVENT_H
3
4#include <vector>
5#include <complex>
6#include <cstring>
7#include <cstddef>
8#include <array>
9#include "AmpGen/Types.h"
10
11namespace AmpGen {
18
19 class Event {
20 public:
21 Event() = default;
22 Event(const unsigned &N);
23 Event(const real_t *data, const unsigned &N);
24
25 void set(const unsigned &i, const std::vector<real_t> &p);
26 void set(const unsigned &i, const real_t *p);
27 void set(const real_t *evt);
28 void set(const unsigned &i, const real_t &p);
29 void swap(const unsigned int &i, const unsigned int &j);
30
31 unsigned size() const { return m_event.size(); }
32
33 real_t *pWeight() { return &(m_weight); }
34 real_t *pGenPdf() { return &m_genPdf; }
35 const real_t *address(const unsigned &ref = 0) const { return &(m_event[ref]); }
36 real_t *address(const unsigned &ref = 0) { return &(m_event[ref]); }
37
38 real_t weight() const { return m_weight; }
39 real_t genPdf() const { return m_genPdf; }
40 real_t operator[](const unsigned &i) const { return m_event[i]; }
41 real_t &operator[](const unsigned &i) { return m_event[i]; }
42 operator const real_t *() const { return &(m_event[0]); }
43 operator real_t *() { return &(m_event[0]); }
44
45 void setWeight(const real_t &weight) { m_weight = weight; }
46 void setGenPdf(const real_t &genPdf) { m_genPdf = genPdf; }
47 void extendEvent(const real_t &value) { m_event.push_back(value); }
48
49 void print() const;
50 // void printCache() const;
51 void setIndex(const unsigned &index) { m_index = index; }
52 unsigned index() const { return m_index; }
53 real_t s(const unsigned &index) const;
54 real_t s(const unsigned &index1, const unsigned &index2) const;
55 real_t s(const unsigned &index1, const unsigned &index2, const unsigned &index3) const;
56 real_t s(const std::vector<unsigned> &indices) const;
57 void reorder(const std::vector<unsigned> &addresses);
58 const std::vector<real_t> &data() const { return m_event; }
59
60 private:
61 std::vector<real_t> m_event;
62 real_t m_genPdf = {1};
63 real_t m_weight = {1};
64 unsigned m_index = {0};
65 inline real_t get(const unsigned &index) const { return m_event[index]; };
66 };
67}
68
69#endif
void set(const unsigned &i, const real_t &p)
Event(const real_t *data, const unsigned &N)
Event(const unsigned &N)
real_t * pGenPdf()
Definition Event.h:34
real_t & operator[](const unsigned &i)
Definition Event.h:41
unsigned index() const
Definition Event.h:52
real_t s(const unsigned &index1, const unsigned &index2, const unsigned &index3) const
real_t s(const unsigned &index) const
Event()=default
real_t weight() const
Definition Event.h:38
void extendEvent(const real_t &value)
Definition Event.h:47
const real_t * address(const unsigned &ref=0) const
Definition Event.h:35
const std::vector< real_t > & data() const
Definition Event.h:58
void setGenPdf(const real_t &genPdf)
Definition Event.h:46
void set(const unsigned &i, const real_t *p)
real_t s(const std::vector< unsigned > &indices) const
real_t genPdf() const
Definition Event.h:39
real_t * pWeight()
Definition Event.h:33
void reorder(const std::vector< unsigned > &addresses)
unsigned size() const
Definition Event.h:31
void set(const real_t *evt)
real_t operator[](const unsigned &i) const
Definition Event.h:40
void setWeight(const real_t &weight)
Definition Event.h:45
void set(const unsigned &i, const std::vector< real_t > &p)
void print() const
void swap(const unsigned int &i, const unsigned int &j)
real_t s(const unsigned &index1, const unsigned &index2) const
void setIndex(const unsigned &index)
Definition Event.h:51
real_t * address(const unsigned &ref=0)
Definition Event.h:36
double real_t
Definition Types.h:6