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
13#include "Framework/Exception/Exception.h"
15
16// Geant4
17#include "globals.hh"
18
19// STL
20#include <iostream>
21#include <memory>
22#include <sstream>
23#include <vector>
24
25namespace simcore::lhe {
26
37class LHEEvent {
38 public:
43 LHEEvent(std::string& data);
44
48 virtual ~LHEEvent() = default;
49
54 int getNumParticles() const;
55
60 int getProcessID() const;
61
66 double getEventWeight() const;
67
72 double getScaleQ() const;
73
78 double getCouplingQed() const;
79
84 double getCouplingQcd() const;
85
89 void setVertex(double x_, double y_, double z_);
90
94 void setVertex(const std::string& line);
95
100 const double* getVertex() const;
101
106 double getVertexTime() const;
107
112 void addParticle(std::unique_ptr<LHEParticle> particle);
113
118 const std::vector<std::unique_ptr<LHEParticle>>& getParticles() const;
119
120 private:
125
130
135
139 double scale_q_;
140
145
150
154 double vtx_[3];
155
159 double vtxt_{0.};
160
164 std::vector<std::unique_ptr<LHEParticle>> particles_;
165};
166
167} // namespace simcore::lhe
168
169#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:37
double getEventWeight() const
Get the event weight (XWGTUP).
Definition LHEEvent.cxx:43
LHEEvent(std::string &data)
Class constructor.
Definition LHEEvent.cxx:6
double vtx_[3]
Vertex location.
Definition LHEEvent.h:154
int getProcessID() const
Get the ID of the physics process (IDRUP).
Definition LHEEvent.cxx:41
void addParticle(std::unique_ptr< LHEParticle > particle)
Add a particle to the event.
Definition LHEEvent.cxx:55
double getCouplingQed() const
Get the value of the QED coupling (AQEDUP).
Definition LHEEvent.cxx:47
int num_particles_
Number of particles.
Definition LHEEvent.h:124
double getVertexTime() const
Get the vertex time.
Definition LHEEvent.cxx:53
void setVertex(double x_, double y_, double z_)
Set the vertex location (careful to match units as expected!)
Definition LHEEvent.cxx:64
double getCouplingQcd() const
Get the value of the QCD coupling (AQCDUP).
Definition LHEEvent.cxx:49
double event_weight_
The event weight.
Definition LHEEvent.h:134
virtual ~LHEEvent()=default
Class destructor.
double getScaleQ() const
Get the scale Q of parton distributions (SCALUP).
Definition LHEEvent.cxx:45
double coupling_qcd_
QCD coupling value.
Definition LHEEvent.h:149
int getNumParticles() const
Get the number of particles (NUP) in the event.
Definition LHEEvent.cxx:39
const double * getVertex() const
Get the vertex location (careful to match units as expected!)
Definition LHEEvent.cxx:51
std::vector< std::unique_ptr< LHEParticle > > particles_
The list of particles.
Definition LHEEvent.h:164
const std::vector< std::unique_ptr< LHEParticle > > & getParticles() const
Get the list of particles in the event.
Definition LHEEvent.cxx:59
double scale_q_
Scale Q of parton distributions.
Definition LHEEvent.h:139
double vtxt_
Vertex time.
Definition LHEEvent.h:159
int process_id_
The physics process ID.
Definition LHEEvent.h:129
double coupling_qed_
QED coupling value.
Definition LHEEvent.h:144