LDMX Software
LHEEvent.h
Go to the documentation of this file.
1
9#ifndef SIMCORE_LHEEVENT_H_
10#define SIMCORE_LHEEVENT_H_
11
12// LDMX
14
15// Geant4
16
17// STL
18#include <memory>
19#include <vector>
20
21namespace simcore::lhe {
22
33class LHEEvent {
34 public:
39 LHEEvent(std::string& data);
40
44 virtual ~LHEEvent() = default;
45
50 int getNumParticles() const;
51
56 int getProcessID() const;
57
62 double getEventWeight() const;
63
68 double getScaleQ() const;
69
74 double getCouplingQed() const;
75
80 double getCouplingQcd() const;
81
85 void setVertex(double x_, double y_, double z_);
86
90 void setVertex(const std::string& line);
91
96 const double* getVertex() const;
97
102 double getVertexTime() const;
103
108 void addParticle(std::unique_ptr<LHEParticle> particle);
109
114 const std::vector<std::unique_ptr<LHEParticle>>& getParticles() const;
115
116 private:
121
126
131
135 double scale_q_;
136
141
146
150 double vtx_[3];
151
155 double vtxt_{0.};
156
160 std::vector<std::unique_ptr<LHEParticle>> particles_;
161};
162
163} // namespace simcore::lhe
164
165#endif
Class defining a single particle record in an LHE event.
LHE event with a list of particles and information from the header block.
Definition LHEEvent.h:33
double getEventWeight() const
Get the event weight (XWGTUP).
Definition LHEEvent.cxx:47
LHEEvent(std::string &data)
Class constructor.
Definition LHEEvent.cxx:10
double vtx_[3]
Vertex location.
Definition LHEEvent.h:150
int getProcessID() const
Get the ID of the physics process (IDRUP).
Definition LHEEvent.cxx:45
void addParticle(std::unique_ptr< LHEParticle > particle)
Add a particle to the event.
Definition LHEEvent.cxx:59
double getCouplingQed() const
Get the value of the QED coupling (AQEDUP).
Definition LHEEvent.cxx:51
int num_particles_
Number of particles.
Definition LHEEvent.h:120
double getVertexTime() const
Get the vertex time.
Definition LHEEvent.cxx:57
void setVertex(double x_, double y_, double z_)
Set the vertex location (careful to match units as expected!)
Definition LHEEvent.cxx:68
double getCouplingQcd() const
Get the value of the QCD coupling (AQCDUP).
Definition LHEEvent.cxx:53
double event_weight_
The event weight.
Definition LHEEvent.h:130
virtual ~LHEEvent()=default
Class destructor.
double getScaleQ() const
Get the scale Q of parton distributions (SCALUP).
Definition LHEEvent.cxx:49
double coupling_qcd_
QCD coupling value.
Definition LHEEvent.h:145
int getNumParticles() const
Get the number of particles (NUP) in the event.
Definition LHEEvent.cxx:43
const double * getVertex() const
Get the vertex location (careful to match units as expected!)
Definition LHEEvent.cxx:55
std::vector< std::unique_ptr< LHEParticle > > particles_
The list of particles.
Definition LHEEvent.h:160
const std::vector< std::unique_ptr< LHEParticle > > & getParticles() const
Get the list of particles in the event.
Definition LHEEvent.cxx:63
double scale_q_
Scale Q of parton distributions.
Definition LHEEvent.h:135
double vtxt_
Vertex time.
Definition LHEEvent.h:155
int process_id_
The physics process ID.
Definition LHEEvent.h:125
double coupling_qed_
QED coupling value.
Definition LHEEvent.h:140