EpIC 1.1.0
Monte Carlo generator for exclusive processes
Loading...
Searching...
No Matches
Event.h
1/*
2 * Event.h
3 *
4 * Created on: Feb 10, 2021
5 * Author: Pawel Sznajder (NCBJ)
6 */
7
8#ifndef BEANS_EVENT_H_
9#define BEANS_EVENT_H_
10
11#include <stddef.h>
12#include <map>
13#include <memory>
14#include <string>
15#include <utility>
16#include <vector>
17
18#include "../types/EventAttributeType.h"
19#include "../types/ParticleCodeType.h"
20
21namespace EPIC {
22class Particle;
23class Vertex;
24} /* namespace EPIC */
25
26namespace EPIC {
27
36class Event : public PARTONS::BaseObject {
37
38public:
43
47 Event(const Event &other);
48
52 virtual ~Event();
53
54 std::string toString() const;
55
60
61 //********************************************************
62 //*** SETTERS AND GETTERS ********************************
63 //********************************************************
64
68 const std::vector<std::pair<ParticleCodeType::Type, std::shared_ptr<Particle> > > &getParticles() const;
69
73 void setParticles(const std::vector<std::pair<ParticleCodeType::Type, std::shared_ptr<Particle> > > &particles);
74
78 void addParticle(const std::pair<ParticleCodeType::Type, std::shared_ptr<Particle> > &particle);
79
83 const std::vector<std::shared_ptr<Vertex> > &getVertices() const;
84
88 void setVertices(const std::vector<std::shared_ptr<Vertex> > &vertices);
89
93 void addVertex(std::shared_ptr<Vertex> vertex);
94
98 const std::map<EventAttributeType::Type, double> &getAttributes() const;
99
103 void
104 setAttributes(const std::map<EventAttributeType::Type, double> &attributes);
105
109 void addAttribute(EventAttributeType::Type type, double value);
110
111private:
112
113 std::vector<std::pair<ParticleCodeType::Type, std::shared_ptr<Particle> > > m_particles;
114 std::vector<std::shared_ptr<Vertex> > m_vertices;
115
116 std::map<EventAttributeType::Type, double> m_attributes;
117};
118
119} /* namespace EPIC */
120
121#endif /* BEANS_EVENT_H_ */
Type
Definition: EventAttributeType.h:32
Single event.
Definition: Event.h:36
const std::vector< std::shared_ptr< Vertex > > & getVertices() const
void setVertices(const std::vector< std::shared_ptr< Vertex > > &vertices)
void addVertex(std::shared_ptr< Vertex > vertex)
const std::vector< std::pair< ParticleCodeType::Type, std::shared_ptr< Particle > > > & getParticles() const
void setAttributes(const std::map< EventAttributeType::Type, double > &attributes)
virtual ~Event()
void setParticles(const std::vector< std::pair< ParticleCodeType::Type, std::shared_ptr< Particle > > > &particles)
Event(const Event &other)
const std::map< EventAttributeType::Type, double > & getAttributes() const
void alterParticleCode(size_t i, ParticleCodeType::Type code)
void addParticle(const std::pair< ParticleCodeType::Type, std::shared_ptr< Particle > > &particle)
void addAttribute(EventAttributeType::Type type, double value)
Type
Definition: ParticleCodeType.h:33